03. インスタンスに Web サーバーを構築する ー WordPress 構築ハンズオン ー
参考書
- Amazon Web Services 基礎からのネットワーク&サーバー構築 改訂版
- https://www.amazon.co.jp/dp/4822237443/ref=cm_sw_r_tw_dp_U_x_k3p3Cb7VX47T4
1. Apache HTTP Server をインストールする
$ sudo yum -y install httpd
$ sudo chkconfig httpd on
- 4. httpd を受け付けているポートが開いているか確認します。
$ sudo lsof -i -n -P | grep :80 httpd 23496 root 4u IPv6 34370 0t0 TCP *:80 (LISTEN) httpd 23498 apache 4u IPv6 34370 0t0 TCP *:80 (LISTEN) httpd 23499 apache 4u IPv6 34370 0t0 TCP *:80 (LISTEN) httpd 23500 apache 4u IPv6 34370 0t0 TCP *:80 (LISTEN) httpd 23501 apache 4u IPv6 34370 0t0 TCP *:80 (LISTEN) httpd 23502 apache 4u IPv6 34370 0t0 TCP *:80 (LISTEN) httpd 23503 apache 4u IPv6 34370 0t0 TCP *:80 (LISTEN) httpd 23504 apache 4u IPv6 34370 0t0 TCP *:80 (LISTEN) httpd 23505 apache 4u IPv6 34370 0t0 TCP *:80 (LISTEN)
→ これでインスタンスに Apache HTTP Server をインストールできました。また、ポートが開いていることを確認できました。しかし、このままでは Web サーバーにアクセスできません。
補足:httpd は全て IPv6 の 80番ポートばかりですが、IPv6 の仕様で IPv4 にも応答するようになっています。
2. ファイアフォールを設定する
- 1. AWS コンソールマネジメントコンソールから「EC2」をクリックします。
- 2. 左側のサイドメニューから「セキュリティグループ」をクリックし、インスタンスを作成する際に作成したセキュリティグループ(今回だと、グループ名が「WEB-SG」のもの)を選択します。
- 3. 画面下部のインバウンドタブ内にある「編集」をクリックして、「ルールの追加」をクリックします。
- 4. 追加された行に、タイプを「カスタム TCP」、プロトコルを「TCP」、ポート範囲を「80」、ソースを「0.0.0.0/0」として「保存」をクリックします。
→ これで、ファイアウォールを HTTP 通信を許可する設定に変更しました。その結果、「http://{インスタンスの固定パブリック IP アドレス}/」とすれば Web サーバーにアクセスすることができます。
3. DNS サーバーを構築する
Amazon VPC には VPC 上で名前解決をするオプションがあります。この機能を ON にすると、VPC 上のインスタンスにドメイン名が設定されます。
DNS を構築する
- 1. AWS コンソールマネジメントコンソールから「VPC」をクリックします。
- 2. 左側のサイドメニューから「VPC」をクリックし、作成した VPC を選択し、アクションメニュー内から「DNS ホスト名の編集」をクリックします。
- 3. DNS ホスト名の編集画面で、DNS ホスト名の「有効化」にチェックを入れて「保存」をクリックします。
→ これで、インスタンス(Web サーバー)にドメイン名が設定されました。確認してみます。
- 4. AWS コンソールマネジメントコンソールから「EC2」をクリックします。
- 5. 左側のサイドメニューから「インスタンス」をクリックし、Web サーバー用のインスタンスを選択します。
- 6. 画面下部の説明タブ内にある「パブリック DNS (IPv4)」に設定されたドメイン名(xxx.xxx.xxx.amazonaws.com)を確認できます。
→ このドメイン名でアクセスしても IP アドレスでアクセスしたときと同様のページが表示されます。適切に名前解決されていることが確認できます。
nslookup で DNS を確認する
ドメイン名 → IP アドレス、を確認(正引き)
$ nslookup xxx.xxx.xxx.amazonaws.com Server: 10.0.0.2 Address: 10.0.0.2#53 Non-authoritative answer: Name: xxx.xxx.xxx.amazonaws.com Address: 10.0.1.10
IP アドレス → ドメイン名、を確認(逆引き)
$ nslookup xxx.xxx.xxx.xxx Server: 10.0.0.2 Address: 10.0.0.2#53 Non-authoritative answer: xxx.xxx.xxx.xxx.in-addr.arpa name = xxx.xxx.xxx.compute.amazonaws.com. Authoritative answers can be found from: