対象読者
本記事は、次の方を対象にしています。
- クラウドシステムがはじめての人
- 簡単なWebシステムのプログラミングを行ったことがある人
- システム基盤について勉強したいと思っている人
EC2のLinuxサーバ上にWebサーバを構築
前回、AWS上にEC2でLinuxサーバを構築し、そのサーバを起動/停止/再起動などの運用を行えるようにしました。今回は、このLinuxサーバの上にオープンソースのWebサーバである「Apache httpd」をインストールし、Webサーバを構築します。
ターミナルエミュレータのインストール
EC2のLinuxサーバをリモートで操作するときは、「ターミナルエミュレータ」というソフトウェアを使用します。本記事では、Windowsのターミナルエミュレータ「TeraTerm」を使用します(フリーソフトです)。こちらのTeraTermの配布サイトから最新版をダウンロードして、お手元のPCにインストールしてください。
TeraTermを起動すると、次の画面が表示されます。
ここで、ホスト(T)に、接続したいEC2インスタンスのPublic IPを指定して[OK]ボタンをクリックします。セキュリティの警告が出ますので、[続行]ボタンをクリックします。
SSH認証画面が表示されたら、以下を設定して[OK]ボタンをクリックします。
- ユーザ名:ec2-user
- RSA/DSA鍵を使う:秘密鍵にEC2インスタンスを生成したときにダウンロードしたアクセスキーのファイルを指定(AWSKey.pem)
なお、ここで、秘密鍵を選択するダイアログで、ファイル名を[すべてのファイル(*.*)]にしないと拡張子が.pemのファイルが表示されないので注意してください。
正しく接続されると、以下のようなEC2のインスタンスを操作するコンソールが開きます。
Apache httpdのインストール
それでは、Webサーバを構築するために、Apache httpdをインストールしましょう。作成したEC2インスタンスは、Amazon Linux AMIというRed HatをベースにしたLinux OSを使用して作成されています。そのため、Red Hatのコマンドがそのまま使用できます。
次のコマンドで、Apache httpdをインストールします。
$ sudo yum install httpd
インストールに成功すると [ Complete! ] と表示されます。そうしたら、次のコマンドで、httpdを起動します。
$sudo service httpd start
起動に成功すると、httpdのStartingステータスが [ OK ] と表示されます。
以上で、EC2インスタンス上でWebサーバが構築されました。動作確認をしましょう。ブラウザからEC2インスタンスのPublic IPまたはPublic DNSにアクセスします。下記のようなApache httpdのデフォルト画面が表示されれば、Webサーバの構築ができています。
なお、serviceコマンドでhttpdを起動した場合、インスタンスを停止または再起動したときにhttpdも停止されます。そのため、次のコマンドでインスタンス起動時にhttpdを自動起動させるように設定します。
$ sudo chkconfig httpd on
HTMLコンテンツのアップロード
Webサーバの構築ができたので、ここに任意のHTMLコンテンツをアップロードしてみましょう。TeraTermの[ファイル]-[SSH SCP]を選択し、index.htmlをEC2インスタンスにアップロードします。SCPをつかうと、SSHプロトコルを用いて安全にファイルをコピーできます。
[send]ボタンをクリックすると、デスクトップに保存したindex.htmlがEC2インスタンスのホームディレクトリ(/home/ec2-user/index.html)にアップロードされます。
アップロードファイルを、/var/www/htmlにコピーします。
$ sudo cp /home/ec2-user/index.html /var/www/html/
ブラウザから、EC2のインスタンスのPublic DNSまたはPublic IPにアクセスし、アップロードしたファイルが公開されているかを確認します。