AWSでARM Linux仮想マシン

開発:AWSでは何度か作っては放置し破棄して来ましたが、そろそろ実用のVMを作りましょう。主な用途はDNSサーバとARMの性能評価。

基盤:そうですね。要件はこれだけですか。
・CPUは ARM
・OSはUbuntu できれば 20.04 LTS
・ディスクは最小限
・固定IPv4アドレス
・月間料金2,000円以内

開発:そうですね。

基盤:では始めます。EC2ダッシュボードからかな。あれ?作成というメニューが無いですね?

開発:どうもその「インスタンスを起動」ってやつじゃないですか?

基盤:普通起動って言うと、既にあるのを起動するって言う意味ですよね。日本語が変なのかな。英語に切り替えましょう。あ「Launch instance」ですね。それなら納得。なんで「作成」とか「作成して起動」って訳さないんでしょう。しかも「開始」じゃなんだかわからないけど「get started」なら感じが出ます。さあ始めましょう的な。まあ進めましょう。

開発:それにしてもなんでオレゴンなんですかね。理由が説明されてない。

基盤:あ、これはアカウントの隣でOregonを選んでるからみたいですね。これは何を選んでいるのやら、Azureには無いやり方。

開発:メニューなりonmouseoverに、これはなにを選択するものなのか一行説明があればね。Tokyoにしましょう。割高かもしれないですが、Azureもアジアにしてるし、てぷこ支援の一環です。

基盤:電気を大切にね…

基盤:Launch!てのも変なんですが。これから Launch の準備するんで。

開発:おっ、Ubuntu 20.04 LTS / ARM ありますね。リストのえらく下に。

基盤:じゃこれを Select ポチッと。

基盤:さて、どれでしょう。最安ので、2.3GHz、メモリ2GBです。ラズパイクラスですね。でもラズパイと違ってSSD付きだし大丈夫かな?

開発:Azureでは1GBのx86で普通にUbuntu18動いてますしね。

基盤:ではこれで確認と作成

開発:無料利用枠とかどうでもいいですね。計算がわからなくなる。今後はこれを表示しない、と。

基盤:インスタンスタイプの編集ってなんですかね。プチッ。… げげっ、振り出しに戻ってしまった!?さっき選んだやつをリストの一番上に出してくれないかなあ。

開発:English / 日本語の切り替えでも振り出しに戻ってしまいますね。何なんでしょうこれ。

基盤:8GBのディスクがデフォで付いてますね。これ削れるのかな?

基盤:だめでした。なら選ばせるなってーの。SSDじゃなくてHDDに出来ますかね?

開発:何言ってるんだかわかりません。HDDを選んだら使いものになるのかとか、おいくらくらい違うのか、知りたいのはそこなんですが。

基盤:Azure で仮想マシンを作る時は、今の構成ですとおいくらですっ、っていつも言ってくれるんですけどね。

開発:ところがどっこい、オプションで付けたディスクの値段を加算してくれないので勘違いしてひどい目にあう人も出る(笑)

基盤:そもそもこないだ試作した t2.micro ってやつだと、立ち上がりが40秒とか50秒とかかかりました。あれは話にならないですね。Azureのb1sだって30〜40秒で起動するんですが。

開発:まあ、デフォのgp2というのにしときましょう。8GBだし、そうぼられないでしょう。

開発:基本、全てデフォルトで良さそうです。というか選択の余地が無い。

開発:それでは「起動」ボタンを…

基盤:なんか違和感あるなあ。英語に切り替えてやり直し。Launch をポチッ!

基盤:・・・

開発:ここでこれを聞いてきますか。

基盤:若干シラケますね。じゃま、心機一転、鍵ペアを生成して、Launch Instance !

開発:これって確か5分くらいかかりまよね。

基盤:この画面て忘れちゃうんですよね。キャプチャ。

基盤:あ、この画面消してしましました。再表示する方法がわからん…

開発:Azure だとバックグラウンドで何やってるかいつも表示されてますよね。

基盤:プロビジョニングがどうとか。あれはあれでうざいんですけどね。カタカナに変換するだけなら機械でもできるだろって。

開発:Google翻訳によると provisioning は中国語で「供應」ですね。で人語「供応」をGoogleさんは「Servant」と訳す。お・も・て・な・し?こういうの、一つの単語で表現しようとするのが無理なんですよね。

基盤:ここに出てくる running が 1 って、以前作ったやつのことですよね。

開発:なんかもう15分くらい経ったけど出来てこないですね… あ、メールが。

基盤:何言ってるんだか、さっぱりかわかりませんね。「お客様は」って私らのことですか?そんなリクエストした覚えはありませんが。

開発:「お客様のリクエストが検証されました」って、検証に成功したって意味ですかね?

基盤:「引き続き問題が発生する場合」ってありますから、何か問題が発生したんでしょうね。いつどういう操作をして何が起きたみたいなログは見られないんですかね。

開発:あ。これっって、Tokyo リージョンには running が1つって意味じゃないですか?

基盤:確かに。オレゴンに一つ。東京に一つ。東京で実行中のインスタンスは…

基盤:おお、さっき立ち上がったってわけですね。じゃあこれか。

開発:SSHでログインしましょう。

基盤:あれ?ログイン名って何なんでしょう?Azureだと自分で決めるのですが。

開発:キーペアを提供しているところになんか説明がないですかね。

基盤:無いですね。AWSのヘルプを検索してもよくわからんですね… なんだあこの検索は。具体的には何なんですかねこの instance-user-name て文字列は。

開発:ぐぐりましょう。aws instance user name ...

開発:答え一発カシオミニ。ですが ubuntu とか一言も。meta description のせいですかね。

基盤:そのページの実体、こうなってます。

https://docs.aws.amazon.com/AWSEC2/latest/UserGuide/managing-users.html
Managing user accounts on your Amazon Linux instance

Each Linux instance launches with a default Linux system user account. The default user name is determined by the AMI that was specified when you launched the instance. For Amazon Linux 2 or the Amazon Linux AMI, the user name is ec2-user. For CentOS, the user name is centos. For Debian, the user name is admin or root. For Fedora, the user name is ec2-user or fedora. For RHEL, the user name is ec2-user or root. For SUSE, the user name is ec2-user or root. For Ubuntu, the user name is ubuntu. Otherwise, if ec2-user and root don't work, check with your AMI provider.

基盤:EC2、ドキュメントが腐ってますね。儲かってないのかな?

開発:あなたのところでは Fedora だ CentOS だって今もサポートしているんすかって20ぺんくらい聞いてみたいですね。まあでも、ユーザ名は ubuntu だ、ということで。

基盤:やれやれ。

MacMini% ssh -i aws-xxx-xxx.pem ubuntu@18.180.xxx.xxx
Welcome to Ubuntu 20.04 LTS (GNU/Linux 5.4.0-1009-aws aarch64)
...

$ uptime
20:47:25 up 41 min,  1 user,  load average: 0.11, 0.03, 0.01

基盤:起動してからログインするまで41分も無駄にしてしまいました。まあでも、普通っぽいですね。ディスクも十分空いていると思います。

開発:Azure の Ubuntu っていきなり8GB以上詰まってませんでしたっけ?

$ df /
Filesystem      1K-blocks    Used Available Use% Mounted on
/dev/root         7959716 1295456   6647876  17% /

基盤:とりあえず g++ だけはインストールしましょう。sudo apt install make g++ ...

$ df /
Filesystem     1K-blocks    Used Available Use% Mounted on
/dev/root        7959716 1423948   6519384  18% /

基盤:無問題ですね。でとりあえず cc hello.c。

$ ./a.out
Hello World!

開発:OKですね。

基盤:いやはやしかし、時間を無駄にしてしまいました。さてそれではめっちゃ楽しみにしていた DeleGate の make 所要時間測定を。。むむー、これは遅いですね。ラズパイと同等なの?…

real	4m32.267s
user	4m4.947s
sys	0m25.348s

開発:うーむ。ラズパイ4で6分でしたから、30%以上は速いというとこですかね。ほぼCPUタイム。では、openssl で乱数の生成ベンチマーク。

arm@aws$ time openssl rand 1000000000 > /dev/null

real	0m3.307s
user	0m3.066s
sys	0m0.240s

基盤:一方その頃 Azure 上の x86 では。

x86@azure$ time openssl rand 1000000000 > /dev/null

real	0m3.596s
user	0m3.321s
sys	0m0.088s

開発:なるほど。コンパイラが使うようなCPU命令はx86に比べて遅いけど、randが使う命令はx86と同等ってことかな。あるいはキャッシュのサイズとアプリのメモリアクセスの相性とか。まあうち的にはこの性能で良さそうですね。少なくとも DNS サーバとして使うには無問題。ところでリブートは?

基盤:50秒以上かかりますね。1分半かかったり。どうも AWS は、少なくとも安物マシン同士で比べると、起動が Azure に比べて2倍近く遅い感じがあります。再起動が60秒以上というのは、使い方に制約がかかりますね。これはあきらめるしかないような。

基盤:無駄なところで疲れてしまいました。料金はあとで確認しましょう。いずれにしてもこれが実質最少料金。デフォの8GB SSDにもVM料金とは別に課金があるのかということと、固定 IP アドレスの料金ですね。

開発:でもまあ一日50円では行けそうな。

-- 2020-0622 SatoxITS

コメントを残す

メールアドレスが公開されることはありません。 * が付いている欄は必須項目です