開発: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