ホント今更ですが、Amazon EC2 少し触ってみました。
あまり情報収集もしていなかった所なので、中途半端な知識しかないので触っていくうちに覚えられたら良いなぁと。
開始方法については以下をメインに参考にしました。ほとんど CodeZine で書かれてあることの繰り返しになると思います。
Amazon EC2を動かしてみよう〜Amazon EC2/S3環境構築のすべて〜
証明書を取得
- EC2 を動かすためには証明書が必要らしいので、早速 Amazon Web Services から取ってきます。
- 「AWS」ページ上から [Your Account] - [Access Identifiers] をクリックします。
- 「Access Identifiers」ページに遷移するので、下の「X.509 Certificate」枠にある [Create New] をクリックします。
- 「Create A New Certificate」ページに遷移され、「You can only have one certificate associated with your AWS account.」と警告文がでますが、「1アカウントに対し、1証明しか発行できませんよ!」と言ってるらしいので、無視して [YES] をクリックします。
- 「Create Success」ページに遷移され、[Download Private Key File]と「Your X.509 Certificate file」ボタンをクリックして、プライベートキーとクリティカルファイルをローカルにダウンロードして、任意ディレクトリ*1に保管してください。
以上が、CodeZine の1ページ目の内容。いやー、まったく同じで読む価値ないです。それほど記事の内容が分かりやすいということですね。
Amazon EC2 を操作するためのコマンドラインツール
「Amazon EC2 API Tools」というツールで操作できるらしいので、こいつを取得します。EC2 サービスは全て API 経由での操作になるようなので、かなり大事なツールになるようですね。
- ここの [Download the Amazon EC2 API Tools] をクリックすると、ダウンロードが開始される。
- 解凍して、任意ディレクトリ*2に配置します。このツールを実行するために、Javaランタイムが必要らしい。だが、前回 java を最新にしていた俺に抜かりはなかった。
- ここで環境変数を設定する必要が出てきますが、私のマシンは Mac なので、他のプラットフォームだと違ってくる*3と思います。各々が配置したディレクトリを参照するよう、環境変数を設定してください。
export JAVA_HOME=/System/Library/Frameworks/JavaVM.framework/Versions/1.6/Home/ export EC2_HOME=/usr/local/ec2-api-tools export PATH=$JAVA_HOME/bin:$PATH:$EC2_HOME/bin export EC2_PRIVATE_KEY=~/key/pk-xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx.pem export EC2_CERT=~/key/cert-xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx.pem
最後にコマンド実行してエラーにならなければ、ツールのインストール&設定は完了。
$ ec2ver 1.3-34128 2009-03-01
環境変数の設定だけは、各プラットフォームに合わせての設定が必要ですが。それ以外は CodeZine にある記事通り進めれば問題なく設定できますね。
AMI の選択
公式や一般公開されてある分を以下のコマンドで一覧表示できます...が、公式や一般公開分を合わせると大変な数で、正直よく分かりません。
$ ec2-describe-images -x all
ザッと眺めた限りだと、Ubuntu8 は使ったことあるので、このイメージを使わせてもらう事にする。
IMAGE ami-ec48af85 alestic/ubuntu-8.10-intrepid-base-20090418.manifest.xml063491364108 available public i386 machine aki-a71cf9ce ari-a51cf9cc
この中で必要なデータは、IDである「ami-bbfe19d2」だけらしいので、これだけメモっておく。
インスタンス起動
ssh 接続するためのキーを作成します。
$ ec2-add-keypair ec2_instance_key | sed -e "1d" > ec2_instance_key.id $ chmod 400 ec2_instance_key.id
「ec2_instance_key」部分は任意の文字列で良いみたいです。
作成されたキーに対し、自分のみアスセス権限を与えます。
インスタンス起動
このコマンドを実行したタイミングから課金開始されるようです。
$ ec2-run-instances ami-ec48af85 -k ec2_instance_key RESERVATION r-8cf973e5 443600062368 default INSTANCE i-58600831 ami-ec48af85 pending ec2_instance_key 0 m1.small 2009-04-21T16:05:10+0000 us-east-1c aki-a71cf9ce ari-a51cf9cc
前述にある通り、AMI の ID と ssh キーを指定して実行しています。
特にオプションは付けていないので最小規模のsmallインスタンス(m1.small)で起動されたようですね。
インスタンス起動状態の確認
$ ec2-describe-instances RESERVATION r-8cf973e5 443600062368 default INSTANCE i-58600831 ami-ec48af85 ec2-75-101-208-31.compute-1.amazonaws.com domU-12-31-39-00-DD-05.compute-1.internal running ec2_instance_key 0 m1.small 2009-04-21T16:05:10+0000 us-east-1c aki-a71cf9ce ari-a51cf9cc
- AMIのIDは ami-ec48af85 ですよ。
- m1.small(最小規模)で起動しましたよ。
- 起動時間は 2009-04-21T16:05:10+0000(たぶん米タイム)ですよ。
くらいは分かりますね!確認すると言っても、これくらい分かってれば良さそうな気がします。
あと、「ec2-75-101-208-31.compute-1.amazonaws.com」というドメイン名が重要らしく、アクセスするときに必要になるようです。
アクセス可能ポートを設定
初期状態だと、どのポートも閉じてるらしいので開設作業を行います。
$ ec2-authorize default -p 22 GROUP default PERMISSION default ALLOWS tcp 22 22 FROM CIDR 0.0.0.0/0 $ ec2-authorize default -p 80 GROUP default PERMISSION default ALLOWS tcp 80 80 FROM CIDR 0.0.0.0/0
インスタンスへのアクセス
ここでドメイン名が登場します。
$ ssh -i ec2_instance_key.id root@ec2-75-101-208-31.compute-1.amazonaws.com The authenticity of host 'ec2-75-101-208-31.compute-1.amazonaws.com (75.101.208.31)' can't be established. RSA key fingerprint is 53:69:0c:76:a4:b2:a5:eb:4d:f6:65:60:5c:91:8f:1e. Are you sure you want to continue connecting (yes/no)? yes Warning: Permanently added 'ec2-75-101-208-31.compute-1.amazonaws.com,75.101.208.31' (RSA) to the list of known hosts. Linux domU-12-31-39-00-DD-05 2.6.21.7-2.fc8xen #1 SMP Fri Feb 15 12:39:36 EST 2008 i686 The programs included with the Ubuntu system are free software; the exact distribution terms for each program are described in the individual files in /usr/share/doc/*/copyright. Ubuntu comes with ABSOLUTELY NO WARRANTY, to the extent permitted by applicable law. To access official Ubuntu documentation, please visit: http://help.ubuntu.com/ Amazon EC2 Ubuntu 8.10 intrepid AMI built by Eric Hammond http://alestic.com http://ec2ubuntu-group.notlong.com root@domU-12-31-39-00-DD-05:~#
「信憑性を確立できません。」と Warning が出てましたが、無理に通しました。
これが正解か不正解かは不明ですが、とりあえずログインはできました。
本日は使わないのでログアウトします。
root@domU-12-31-39-00-DD-05:~# exit logout
CodeZine での注意書き
インスタンス停止
起動状態の確認
$ ec2-describe-instances RESERVATION r-8cf973e5 443600062368 default INSTANCE i-58600831 ami-ec48af85 ec2-75-101-208-31.compute-1.amazonaws.com domU-12-31-39-00-DD-05.compute-1.internal running ec2_instance_key 0 m1.small 2009-04-21T16:05:10+0000 us-east-1c aki-a71cf9ce ari-a51cf9cc
インスタンスID「i-58600831」をメモります。
停止
$ ec2-terminate-instances i-58600831 INSTANCE i-58600831 running shutting-down
shutting-down とあるので、正常に停止したようですね!
念のため起動状態を確認してみましょう。
$ ec2-describe-instances RESERVATION r-8cf973e5 443600062368 default INSTANCE i-58600831 ami-ec48af85 terminated ec2_instance_key 0 m1.small 2009-04-21T16:05:10+0000 aki-a71cf9ce ari-a51cf9cc
ドメイン名が表示されていた場所が、terminated に変わってますね。これは切断って意味なので、キチンと切断されていたようです。
以上で、Amazon EC2を動かしてみよう 〜Amazon EC2/S3環境構築のすべて〜分の内容は終了です。