アマゾンウェブサービス (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コンソールからインスタンスをシャットダウンします。
確認画面で「Yes, Stop」をクリックします。
もう一度AWSのコンソールから起動すると、グローバルIPアドレスが変わってしまいます。また、ログイン後のプロンプトを見てみると、こちらもDHCPで割り振られているため、先ほどと変わっていることがわかります。ちなみにこれは、OSのシャットダウンコマンドで再起動するぶんには発生しません。AWSコンソールやAPIからシャットダウンするとIPアドレスが変わってしまいます。これを防ぐために、Elastic IPを設定してあげましょう。
■ Elastic IPを設定する
AWSコンソールのダッシュボードより、「Elastic IPs」をクリックします。
まだ固定IPアドレスが割り当てられていないので、以下のような画面になるので、画面中央の「Allocate New Address」をクリックします。
新しいアドレスの割り当て画面が表示されるので、「EIP used in:」にEC2を選択して「Yes, Allocate」をクリックします。
AWSコンソール画面に戻るので、Elastic IPが割り当てられていることを確認します。
それでは、割り当てられたIPアドレスをインスタンスに関連付けましょう。先ほど割り当てられたElastic IPを右クリックして、「Associate」をクリックします。
先ほど作成したインスタンス「coara」に関連付けます。
ご覧のように、インスタンスcoaraにElastic IPが関連付けられたことがわかります。
先ほど取得したElastic IPでブラウザからアクセスしてみると、先ほどのコンテンツが見えると思います。それでは、AWSコンソールからインスタンスの状態を見てみましょう。コンソールからもElastic IPが関連付けられていることがわかります。
しかし、インスタンスをシャットダウンすると、これまで関連付けられていたElastic IPが関連付けられなくなってしまいます。
一つもインスタンスが起動していないときにElastic IPを関連付けようとしても、関連付けることができません。
なので、先に関連付けたいインスタンスを起動し、それから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に乗り換えたりしましたが、来年もまだまだ新たなチャレンジをしたいと思います。よいお年を~♪