[Amazon][EC2] アカウント作成~最初のインスタンスを作る 2/2


アマゾンウェブサービス (AWS) でインスタンスを作ります。今回はWEBサーバをインストールしてみましょう。今回はその後編、WEBサーバをインストールして動作確認を行うまでを取り上げます。インスタンスができあがるまでは、前回の記事を参考にしてください。

■ Apache (httpd) をインストールする

まずはsshでログインします。

[ (っ´∀`)っ@友の会 ~]$ ssh -i Downloads/coara.pem ec2-user@ec2-XXX-XXX-XXX-XXX.ap-southeast-2.compute.amazonaws.com

インスタンスにログイン後、Apacheが標準のリポジトリにあることを確認します。

[ec2-user@ip-XXX-XXX-XXX-XXX ~]$ yum list httpd
Loaded plugins: priorities, security, update-motd, upgrade-helper
amzn-main                                                                                   | 2.1 kB     00:00     
amzn-main/primary_db                                                                        | 2.2 MB     00:00     
amzn-updates                                                                                | 2.3 kB     00:00     
amzn-updates/primary_db                                                                     | 500 kB     00:00     
Available Packages
httpd.x86_64                                     2.2.23-1.25.amzn1                                     amzn-updates

それでは早速Apache(httpd)をインストールしてみましょう。

[ec2-user@ip-XXX-XXX-XXX-XXX ~]$ sudo yum install httpd

早速テストファイルを作成して動作確認してみましょう。

[ec2-user@ip-XXX-XXX-XXX-XXX ~]$ sudo touch /var/www/html/index.html && sudo chmod 666 $_
[ec2-user@ip-XXX-XXX-XXX-XXX ~]$ uname -n > /var/www/html/index.html ; cat /var/www/html/index.html
ip-XXX-XXX-XXX-XXX
[ec2-user@ip-XXX-XXX-XXX-XXX ~]$ chkconfig --list httpd
httpd          	0:off	1:off	2:off	3:off	4:off	5:off	6:off
[ec2-user@ip-XXX-XXX-XXX-XXX ~]$ sudo /etc/init.d/httpd start
httpd を起動中:                                            [  OK  ]
[ec2-user@ip-XXX-XXX-XXX-XXX ~]$ sudo chkconfig httpd on
[ec2-user@ip-XXX-XXX-XXX-XXX ~]$ chkconfig --list httpd
httpd          	0:off	1:off	2:on	3:on	4:on	5:on	6:off

sshで接続したアドレスをWEBブラウザのアドレスに入力してみましょう。ここで「ip-XXX-XXX-XXX-XXX」と表示されればOKです。ここまで確認できたところで、一旦AWSコンソールからインスタンスをシャットダウンします。

aws020

確認画面で「Yes, Stop」をクリックします。

aws021

もう一度AWSのコンソールから起動すると、グローバルIPアドレスが変わってしまいます。また、ログイン後のプロンプトを見てみると、こちらもDHCPで割り振られているため、先ほどと変わっていることがわかります。ちなみにこれは、OSのシャットダウンコマンドで再起動するぶんには発生しません。AWSコンソールやAPIからシャットダウンするとIPアドレスが変わってしまいます。これを防ぐために、Elastic IPを設定してあげましょう。

 

■ Elastic IPを設定する

AWSコンソールのダッシュボードより、「Elastic IPs」をクリックします。

aws022

まだ固定IPアドレスが割り当てられていないので、以下のような画面になるので、画面中央の「Allocate New Address」をクリックします。

aws023

新しいアドレスの割り当て画面が表示されるので、「EIP used in:」にEC2を選択して「Yes, Allocate」をクリックします。

aws024

AWSコンソール画面に戻るので、Elastic IPが割り当てられていることを確認します。

aws025

それでは、割り当てられたIPアドレスをインスタンスに関連付けましょう。先ほど割り当てられたElastic IPを右クリックして、「Associate」をクリックします。

aws026

先ほど作成したインスタンス「coara」に関連付けます。

aws027

ご覧のように、インスタンスcoaraにElastic IPが関連付けられたことがわかります。

aws028

先ほど取得したElastic IPでブラウザからアクセスしてみると、先ほどのコンテンツが見えると思います。それでは、AWSコンソールからインスタンスの状態を見てみましょう。コンソールからもElastic IPが関連付けられていることがわかります。

aws029

しかし、インスタンスをシャットダウンすると、これまで関連付けられていたElastic IPが関連付けられなくなってしまいます。

aws030

一つもインスタンスが起動していないときにElastic IPを関連付けようとしても、関連付けることができません。

aws031

なので、先に関連付けたいインスタンスを起動し、それからElastic IPを割り当てる必要があります。これらの作業はブラウザでもできますが、先日の記事のように、コマンドラインから行うこともできます。

 

■ 後片付け

Elastic IPはインスタンスに関連付けている間ではなく「どのインスタンスにも関連付けていない」状態だと課金されてしまいます。詳しくはAWSの公式サイトで確認していただきたいのですが、以下のように謳っています。

Elastic IP アドレス

実行中のインスタンスに関連付けられた Elastic IP(EIP)アドレスを無料で 1 つ取得できます。追加の EIP をそのインスタンスに関連付ける場合は、追加の EIP 毎に時間当たり(プロラタベース)の料金が請求されます。追加の EIP は Amazon VPC でのみ利用可能です。

Elastic IP アドレスを効率的に使用するため、これらの IP アドレスが実行中のインスタンスに関連付けられていない場合や、停止しているインスタンスやアタッチされていないネットワークインターフェイスに関連付けられている場合は、時間毎に小額の料金をご請求します。

なので、遊んだあとは必ずお片付けしましょう。インスタンスを停止またはTerminateし、Elastic IPをリリースします。いかがでしたでしょうか。実際に単一のEC2インスタンス作成からElastic IPの割り当て(Allocate)、インスタンスへの関連付け(Associate)までをやってみましたが、意外と簡単だったと思います。次回は、AWSのロードバランサを用いた同一リージョン内でのWEBサーバ構築をやってみたいと思います。

今年の更新はこれでおしまいです。早いもので、もう5年もこのブログやってるんですねー。札幌の自宅サーバ→tsukaeru.netのVPS→東京の自宅サーバ→さくらのVPSと引っ越したり、Movable TypeからWordpressに乗り換えたりしましたが、来年もまだまだ新たなチャレンジをしたいと思います。よいお年を~♪