SoLA2-TechBlog

退屈な作業はプログラムに任せましょう!日々の作業に少し工夫を足すだけであなたの時間はもっとクリエイティブになる。

AWS上にWEBサービスを公開してみる【part2】

インスタンスが消えた!?

日を改めて作業を再開した時の事です。この前作成したはずのインスタンスがコンソールから消えてしまったのです。まさかインスタンスを「停止」ではなく「削除」してしまったのか・・・とそんな風に思っていたのですが、ふとこのブログ用に取っていたスクリーンショットを確認すると、停止後のインスタンスも表示されています。

ということは誤操作というわけではなさそうです。ではなぜ消えてしまったのか。もしかすると停止したままのインスタンスは一定期間をすぎると消されてしまうのでしょうか?Google先生に聞いてみました。

「消えた」のではなく「見えない」だけだった

「Amazon EC2 のインスタンスが消えた!」の顛末 : まだプログラマーですが何か?答えはこのサイトにありました。原因を端的に言ってしまえば、リージョンの違いによるものでした。つい先日、音声合成サービス「Polly」を利用するため、リージョンを「東京」から「オハイオ」に変更していたのです。その為、コンソールの表示内容もオハイオリージョンのものになっており、東京に作ったインスタンスは表示されていないというオチでした。

いやーでもこの記事がなかったらすごく悩んでいたと思うんです。ほんと感謝です。

WEBサーバを構築する

HTTPでの通信を許可する

では気を取り直して作業を始めていきたいと思います。

まずは、セキュリティグループの設定です。インスタンス作成直後は、EC2に対してSSHでしかアクセスを許可していないため、HTTP通信も許可するように設定します。

f:id:gootor3030:20170819190616p:plain

PuTTYを使ってアクセス

セキュリティグループの設定が終わりましたら、クライアントからEC2にアクセスしたいと思います。手元にPuTTYがあったので、これを利用します。ちなみに、前回の記事秘密鍵をダウンロードしましたが、ここで使用します。

無事アクセスできると、Linuxをアップデートしてくださいとメッセージが表示されるので、下記コマンドを実行し最新版に更新します。

sudo yum -y update

f:id:gootor3030:20170819191823p:plain

ミドルウェアのインストール

Linuxが最新になりましたら、いよいよWEBサーバに必要となるミドルウェア類をインストールしていきます。下記コマンドを実行することで、「HTTPサーバ」「PHP」「データベース」がインストールされ、HTTPサーバが起動します。

sudo yum -y install httpd php mysql
sudo service httpd start

また、EC2起動後すぐにHTTPサーバも立ち上げたいので、下記コマンドを実行します。

sudo chkconfig httpd on
ドキュメントルートにindex.htmlを配置する

さてここまで作業すると、ブラウザからアクセスすることが出来るはずです。ただし、現状だとApacheのサンプルページが出てくるだけなので、どうせならphpファイルを作成してそれを表示するところまでやりましょう。

ファイルはサーバ上で直接作成しても良いのですが、どうもCUIが苦手なので、ローカルでindex.phpを作成し、CyberduckにてEC2のドキュメントルートに配置することにします。

<?php
echo '初めてのAWS';

では早速ブラウザで確認してみましょう。

f:id:gootor3030:20170819200814p:plain

きちんとindex.phpの内容が表示されています。これでWEBサービスを公開するための設定は完了です。

次回予告

次回はいよいよWEBサービスをEC2上にのせていこうと思います!お楽しみに!