Amazon EC2を実際に利用する ~その2
インスタンス起動に必要となる設定
「Amazon EC2」上で起動したインスタンス(仮想サーバ)へのアクセスは基本的にSSH経由でのアクセスとなるので、ログインに必要となるキーを生成し、Amazon側に登録する必要があります。
キーの生成とAmazon側への登録には、次のコマンドを実行します。
$ ec2-add-keypair fedora_test | sed -e "1d" > fedora_test.id $ chmod 400 fedora_test.id
上記コマンド例では、仮にキーの名前を「fedora_test」としました。この部分は任意の文字列で構いません。
2行目のコマンドで、生成されたキー(上記例ではfedora_test.id)のパーミッションを自分のみがアクセスできるよう設定しています。
インスタンスの起動
ここまでの設定が完了した時点で、いよいよ「Amazon EC2」上でインスタンスを起動する準備できたことになります。
では、次のコマンドを実行してインスタンスを起動させてみましょう。なお、このタイミングから実際に課金が開始されます。
$ ec2-run-instances ami-2b5fba42 -k fedora_test RESERVATION r-8e0eaae7 xxxxxxxxxxxx default INSTANCE i-2222944b ami-2b5fba42 pending fedora_test 0 m1.small 2008-11-15T17:56:25+0000 us-east-1b aki-a71cf9ce ari-a51cf9cc
ec2-run-instancesは、EC2のインスタンスを起動するコマンドで、必須となる引数として「AMIのID」と「ログイン時に利用するキー」を指定します。この例では、先ほど準備した「ami-2b5fba42」と「fedora_test」となります。
上記コマンド例では、その他の任意のオプションを何もつけていないため、最も小規模なsmallインスタンス(m1.small)で起動しています。より大きいリソースを持つインスタンスで起動したい場合は--instance-typeオプションを使いましょう。
--instance-typeオプションで指定できるオプションは、現時点(2008/11)でm1.small、m1.large、m1.xlarge、c1.medium、c1.xlargeがあります。Instance Typeの詳細は、下記のリンク先を参照ください。
- Feature Guide: New Instance Types:Amazon Web Service Developer Community
- Feature Guide: Amazon EC2 High-CPU Instance Types:Amazon Web Service Developer Community
上記リンク先ページ内の「Instance Type name」の部分が指定できるオプション名となります(図5)。

数十秒程待つとインスタンスが起動します。インスタンスの状態を見るには、次のコマンドを実行します。
$ ec2-describe-instances RESERVATION r-8e0eaae7 xxxxxxxxxxxx default INSTANCE i-2222944b ami-2b5fba42 ec2-75-101-200-115.compute-1.amazonaws.com domU-12-31-39-02-62-31.compute-1.internal running fedora_test 0 m1.small 2008-11-15T17:56:25+0000 us-east-1b aki-a71cf9ce ari-a51cf9cc
「running」と表示されていれば、無事起動していることを意味します。
上記の例では、起動したインスタンスに「ec2-75-101-200-115.compute-1.amazonaws.com」というドメインネームが付与されています。アクセスする際に必要となるのでメモしておきましょう。
アクセス可能ポートの設定
初期状態では、起動しているすべてのインスタンスへのアクセスが不可能となっているので、ポートの設定を行いアクセス可能にする必要があります。
起動時に何も指定していない場合、インスタンスは「default」グループとなっています。下記コマンドで、defaultグループに所属するインスタンスに対して、SSH(22番ポート)のアクセスを許可する設定を行います。また、よく使うであろうHTTP(80番ポート)のアクセスを許可する設定も一緒に行っています。
$ 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にてアクセスします。接続先は、事前にメモしておいたドメインネームを利用します。
$ ssh -i fedora_test.id root@ec2-75-101-200-115.compute-1.amazonaws.com
__| __|_ ) Fedora 8
_| ( / 32-bit
___|\___|___|
Welcome to an EC2 Public Image
:-)
Base
--[ see /etc/ec2/release-notes ]--
[root@domU-12-31-39-02-62-31 ~]#
SSHコマンドを使用して上記例のようにログインできたら成功です。ここからは、普通のサーバと同じように扱えます。1つのサーバのroot権限を所有しているのと同じため、好きなソフトウェアをインストールしたり、自分の作ったサービスを公開したりと、さまざまな利用方法があります。
