はじめてのAmazon EC2&S3 ~これからの新サービスの公開の形~

第3回Amazon EC2でサーバを立てよう

Amazon EC2でサーバを立てよう

S3の環境も整ったことですし、次はEC2を使ってみましょう。

Amazon EC2 Command-Line Toolsの導入

EC2の操作にも専用のツールが必要です。

「Amazon Web Services Developer Connection」EC2のリソースページから、⁠Developer Tools⁠⁠→⁠Amazon EC2 Command-Line Tools⁠⁠→⁠Download the Amazon EC2 Command-Line Tools」と辿り、ec2-api-tools.zipをダウンロードし、適当なところに解凍してください。

そして、環境変数EC2_HOMEに解凍したディレクトリを設定し、EC2_HOMEのbinディレクトリにパスを通します。同時に、X.509証明書のPrivate KeyファイルのパスをEC2_PRIVATE_KEYに、Certi゙cateファイルのパスをEC2_CERTに設定しますリスト4⁠。

また、このコマンドツールはJavaで書かれているので、実行にはJavaが必要です。インストールしていない方はインストールしてください[7]⁠。

リスト4 Linuxの場合の設定
export EC2_HOME=/usr/local/ec2-tools
export PATH=$PATH:$EC2_HOME/bin/
export EC2_PRIVATE_KEY=/home/masuidrive/.ec2/<Private Keyファイル名>
export EC2_CERT=/home/masuidrive/.ec2/<Certificateファイル名>

インストールが終わったら、コマンドラインからバージョンを確認してみます。

$ ec2ver
1.2-11797 2007-03-01

イメージファイルの選択

EC2でサーバを起動するには、AMI(Amazon Machine Image)というイメージファイルが必要になります。AMIは、Linuxがインストールされた状態のディスクイメージです。まずはどのディスクイメージを起動するか選択する必要があります。

公開されているディスクイメージはec2-describe-imagesコマンドで見ることができます。

$ ec2-describe-images -x all

しかし、これらは一般のユーザが公開しているものも含んでいるため、どのような環境がインストールされるかわかりません。場合によってはセキュリティホールを含んだアプリがインストールされているイメージもあるかもしれません。

そこで、今回はAmazonが提供している公式イメージを使って起動してみましょう。公式イメージの一覧は図11のコマンドで取得できます。

図11 Amazon公式AMIの一覧
$ ec2-describe-images -o amazon
IMAGE   ami-20b65349   ec2-public-images/fedora-core4-base.manifest.xml         amazon  available  public
IMAGE   ami-22b6534b   ec2-public-images/fedora-core4-mysql.manifest.xml        amazon  available  public
IMAGE   ami-23b6534a   ec2-public-images/fedora-core4-apache.manifest.xml       amazon  available  public
IMAGE   ami-25b6534c   ec2-public-images/fedora-core4-apache-mysql.manifest.xml amazon  available  public
IMAGE   ami-26b6534f   ec2-public-images/developer-image.manifest.xml           amazon  available  public
IMAGE   ami-2bb65342   ec2-public-images/getting-started.manifest.xml           amazon  available  public
IMAGE   ami-36ff1a5f     ec2-public-images/fedora-core6-base-x86_64.manifest.xml  amazon  available  public
IMAGE   ami-bd9d78d4   ec2-public-images/demo-paid-AMI.manifest.xml             amazon  available  public  A79EC0DB

ちょっと古いものばかりですが、Fedora Core 4+Apache+MySQLを使ってみましょう(図11の出力の4行目⁠⁠。起動に必要なのは2列目の「ami」で始まるイメージ番号です(今回は「ami-25b6534c⁠⁠。

ログインキーの作成

起動には、ログイン用の鍵も必要です。ログイン用の鍵はec2-add-keypairコマンドで作成します。

今回はテスト用の環境なので「testmachine」という鍵を作ります。

$ ec2-add-keypair testmachine | sed -e "1d" > testmachine.id

鍵のパーミッションはほかの人が見れないものを設定します。

$ chmod 400 testmachine.id

インスタンスの起動

作成した鍵を使って、ami-25b6534cのイメージのインスタンスを起動します図12⁠。図12のようにオプションで特に指定しない場合には、一番小さな「Smallインスタンス」が起動されます。⁠Largeインスタンス」「Extra Largeインスタンス」を起動したい場合には、それぞれ「--instance-type m1.large」⁠--instance-type m1.xlarge」オプションを追加します。

起動後には図12のようにステータスが出ます。大事なのはINSTANCE行の2列目の「i-」で始まるIDです(ここでは「i-a09969c9⁠⁠。これは今起動したインスタンスのIDです。複数インスタンスを起動する場合には必ずメモするようにしましょう。

図12 インスタンスの起動
$ ec2-run-instances ami-25b6534c -k testmachine
RESERVATION   r-eac62d83  956688471479  default
INSTANCE         i-a09969c9  ami-25b6534c  pending  testmachine  0

起動と同時に課金が開始されます。課金は1時間単位になっていますので、短時間に何度も起動と停止を繰り返す場合は気をつけてください。起動するたびに最低でも1時間分の料金がかかります。

なお、インスタンスの起動には数分かかります。その間にポートの設定をしておきましょう。

ポートの設定

初期状態はすべてのポートが閉じられています。

SSHとHTTPだけ開けましょう。

$ ec2-authorize default -p 22
$ ec2-authorize default -p 80

起動の確認

そうこうしている間にインスタンスが起動したころでしょう。

ec2-describe-instancesコマンドで起動しているインスタンスを見ることができます図13⁠。INSTANCE行4列目の「.amazonaws.com」で終わる文字列が、起動したインスタンスのマシン名です(今回は「ec2-72-44-50-86.z-1.compute-1.amazonaws.com⁠⁠。

図13 起動されているインスタンスの確認
$ ec2-describe-instances
RESERVATION   r-eac62d83  956688471479 default
INSTANCE         i-a09969c9  ami-25b6534c ec2-72-44-50-86.z-1.compute-1.amazonaws.com  domU-12-31-36-00-29-D4.z-1.compute-1.internal running    testmachine 0

SSHとHTTPでも確認してみましょう。

ブラウザで「http://ec2-72-44-50-86.z-1.compute-1.amazonaws.com」にアクセスしてみてください。⁠Fedora Core Test Page」が表示されれば成功です図14⁠。

図14 ブラウザで起動確認
図14 ブラウザで起動確認

sshでもログインしてみましょう。先ほど作ったログイン用の鍵を使います。図15のように表示されれば成功です。

図15 sshで起動確認
$ ssh -i testmachine.id [email protected]

            __|  __|_  )   Rev: 2
            _|  (     /
           ___|\___|___|

 Welcome to an EC2 Public Image
                       :-)
    Apache 2+MySQL 4


    __ c __ /etc/ec2/release-notes.txt

[root@domU-12-31-36-00-29-D4 #

おすすめ記事

記事・ニュース一覧