kukai88

垢 - やったことを残す -

03. インスタンスに Web サーバーを構築する ー WordPress 構築ハンズオン ー

参考書



構築の流れ



1. Apache HTTP Server をインストールする


$ sudo yum -y install httpd
  • 3. インスタンスを再起動した際に、Apache HTTP Server が自動的に起動されるように設定します。
$ 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: