ニュース&ブログ
基礎からすぐできるAWS 簡易ブログシステムの構築3
この記事は最終更新から10年以上経過しています。内容が古くなっている可能性があります。
投稿日:2015/2/16

前回はルートテーブル作成~Webサーバーのインスタンスを作成しました。
今回はWebサーバーインストール~ファイアウォール設定~DNS名前解決設定を行います。
参考文献
今回実施する内容は下記文献を参考としております。手順の詳細などは本書籍を参照してください。・Amazon Web Services 基礎からのネットワーク&サーバ構築
検証で構築する環境と実施する内容
AWS上にVPCを一つ作成し、その中に公開用のVPCサブネットとプライベートのVPCサブネットを作成します。公開用のVPCサブネットにはWebサーバとDBサーバのインターネット接続用NATサーバを構築します。プライベートのVPCサブネットにはDBサーバを構築します。作業は検証環境の作業端末から接続します。
・検証環境の構成図
図1 構成図

AWSにアカウントが作成されているものとします。(今回は⑦~⑨まで。)
① VPC作成
② VPCサブネット作成
③ インターネットゲートウェイ作成
④ ルートテーブル作成
⑤ インスタンス作成(Webサーバ)
⑥ インスタンス接続
⑦ Webサーバーインストール
⑧ ファイアウォール(セキュリティグループ)設定
⑨ DNS名前解決設定
⑩ インスタンス作成(DBサーバ)
⑪ インスタンス接続(Webサーバ経由)
⑫ インスタンス作成(NATサーバ)
⑬ NATインスタンス起動
⑭ NATインスタンス疎通確認
⑮ MySQLインストール(DBサーバ)
⑯ WordPressインストール(Webサーバ)
⑰ WordPress設定
では⑦から見ていきます。
⑦ Webサーバーインストール
今回はWebサーバーとして代表的なApacheをインストールします。(1)TeraTermからWebサーバーインスタンスに接続します
手順は前回の「⑥ インスタンス接続」を参照してください。
(2)Apacheが起動していないことを確認します
[ec2-user@ip-10-0-1-10 ~]$ ps ax | grep httpd
2237 pts/0 S+ 0:00 grep httpd
(3)Apacheをインストールします
[ec2-user@ip-10-0-1-10 ~]$ sudo yum -y install httpd
Loaded plugins: priorities, update-motd, upgrade-helper
amzn-main/latest | 2.1 kB 00:00
amzn-updates/latest | 2.3 kB 00:00
Resolving Dependencies
--> Running transaction check
---> Package httpd.x86_64 0:2.2.29-1.4.amzn1 will be installed
(中略)
Dependencies Resolved
===================================================================================================================================================================================
Package Arch Version Repository Size
=============================================================================================================================================================================================
Installing:
httpd x86_64 2.2.29-1.4.amzn1 amzn-main 1.2 M
Installing for dependencies:
apr x86_64 1.5.0-2.11.amzn1 amzn-main 115 k
apr-util x86_64 1.4.1-4.14.amzn1 amzn-main 87 k
apr-util-ldap x86_64 1.4.1-4.14.amzn1 amzn-main 17 k
httpd-tools x86_64 2.2.29-1.4.amzn1 amzn-main 79 k
mailcap noarch 2.1.31-2.7.amzn1 amzn-main 27 k
Transaction Summary
=============================================================================================================================================================================================
Install 1 Package (+5 Dependent packages)
Total download size: 1.5 M
Installed size: 3.6 M
Downloading packages:
(1/6): apr-1.5.0-2.11.amzn1.x86_64.rpm | 115 kB 00:00
(2/6): apr-util-1.4.1-4.14.amzn1.x86_64.rpm | 87 kB 00:00
(3/6): apr-util-ldap-1.4.1-4.14.amzn1.x86_64.rpm | 17 kB 00:00
(4/6): httpd-2.2.29-1.4.amzn1.x86_64.rpm | 1.2 MB 00:00
(5/6): httpd-tools-2.2.29-1.4.amzn1.x86_64.rpm | 79 kB 00:00
(6/6): mailcap-2.1.31-2.7.amzn1.noarch.rpm | 27 kB 00:00
---------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------
Total 3.0 MB/s | 1.5 MB 00:00:00
Running transaction check
Running transaction test
Transaction test succeeded
Running transaction
Installing : apr-1.5.0-2.11.amzn1.x86_64 1/6
Installing : apr-util-1.4.1-4.14.amzn1.x86_64 2/6
(中略)
Verifying : httpd-tools-2.2.29-1.4.amzn1.x86_64 6/6
Installed:
httpd.x86_64 0:2.2.29-1.4.amzn1
Dependency Installed:
apr.x86_64 0:1.5.0-2.11.amzn1 apr-util.x86_64 0:1.4.1-4.14.amzn1 apr-util-ldap.x86_64 0:1.4.1-4.14.amzn1 httpd-tools.x86_64 0:2.2.29-1.4.amzn1 mailcap.noarch 0:2.1.31-2.7.amzn1
Complete!
(4)Apacheを起動します
「OK」が表示されることを確認します。
[ec2-user@ip-10-0-1-10 ~]$ sudo service httpd start
Starting httpd: httpd: apr_sockaddr_info_get() failed for ip-10-0-1-10
httpd: Could not reliably determine the server's fully qualified domain name, using 127.0.0.1 for ServerName
[ OK ]
(5)Apacheが起動していることを確認します
[ec2-user@ip-10-0-1-10 ~]$ ps ax | grep httpd
2300 ? Ss 0:00 /usr/sbin/httpd
2302 ? S 0:00 /usr/sbin/httpd
2303 ? S 0:00 /usr/sbin/httpd
2304 ? S 0:00 /usr/sbin/httpd
2305 ? S 0:00 /usr/sbin/httpd
2306 ? S 0:00 /usr/sbin/httpd
2307 ? S 0:00 /usr/sbin/httpd
2308 ? S 0:00 /usr/sbin/httpd
2309 ? S 0:00 /usr/sbin/httpd
2311 pts/0 S+ 0:00 grep httpd
(6)Apacheサービスの自動起動設定を確認します
全て「off」となっており、自動起動設定がされていないこと確認します。
[ec2-user@ip-10-0-1-10 ~]$ sudo chkconfig --list httpd
httpd 0:off 1:off 2:off 3:off 4:off 5:off 6:off
(7)ランレベルを確認します
ランレベルが3であることを確認します。
[ec2-user@ip-10-0-1-10 ~]$ runlevel
N 3
(8)Apacheサービスの自動起動設定をします
[ec2-user@ip-10-0-1-10 ~]$ sudo chkconfig httpd on
(9)Apacheサービスの自動起動設定を確認します
ランレベル3の箇所がonとなっており、自動起動の設定が確認できます。
[ec2-user@ip-10-0-1-10 ~]$ sudo chkconfig --list httpd
httpd 0:off 1:off 2:on 3:on 4:on 5:on 6:off
⑧ ファイアウォール(セキュリティグループ)設定
次にWebサーバーに接続するためのファイアウォールルールを追加します。現状ではポートが許可されていないため接続できません。
(1)Apacheで使用しているポートを確認します
httpdがポート80でLISTENしていることが確認できます。
[ec2-user@ip-10-0-1-10 ~]$ sudo lsof -i -n -–P
COMMAND PID USER FD TYPE DEVICE SIZE/OFF NODE NAME
dhclient 1879 root 5u IPv4 8568 0t0 UDP *:68
sshd 2072 root 3u IPv4 9141 0t0 TCP *:22 (LISTEN)
sshd 2072 root 4u IPv6 9143 0t0 TCP *:22 (LISTEN)
ntpd 2089 ntp 16u IPv4 9211 0t0 UDP *:123
ntpd 2089 ntp 17u IPv4 9215 0t0 UDP 127.0.0.1:123
ntpd 2089 ntp 18u IPv4 9216 0t0 UDP 10.0.1.10:123
sendmail 2112 root 4u IPv4 9286 0t0 TCP 127.0.0.1:25 (LISTEN)
sshd 2196 root 3u IPv4 9629 0t0 TCP 10.0.1.10:22->XXX.XX.XX.XX:54477 (ESTABLISHED)
sshd 2198 ec2-user 3u IPv4 9629 0t0 TCP 10.0.1.10:22->XXX.XX.XX.XX:54477 (ESTABLISHED)
httpd 2300 root 4u IPv6 10230 0t0 TCP *:80 (LISTEN)
httpd 2302 apache 4u IPv6 10230 0t0 TCP *:80 (LISTEN)
httpd 2303 apache 4u IPv6 10230 0t0 TCP *:80 (LISTEN)
(中略)
httpd 2309 apache 4u IPv6 10230 0t0 TCP *:80 (LISTEN)
[ec2-user@ip-10-0-1-10 ~]$
(2)セキュリティグループにルールを追加します
Security Groups > 作成したセキュリティグループ名選択 >inboundタブ >「Edit」をクリック
図2:Editをクリック

Edit inbound rules 画面で、「Add Rule」をクリック
図3:Add Ruleをクリック

Type列で「HTTP」を選択し、Source列で「Anywhere」を選択後、「0.0.0.0/0」を入力します。
設定後、「Save」をクリックします。
図4:インバウンドルール追加設定

(3)Webサーバーにブラウザアクセスします
ブラウザURLにWebサーバーのパブリックIPを入力し、エンターを押します。
Apacheのデフォルトページが表示されることが確認できます。
図5:Webサーバーにアクセス

⑨ DNS名前解決設定
Webサーバにアクセスする際に入力するドメイン名を名前解決する設定を行います。Amazon VPCでは、名前解決する設定を有効化することでDNSホスト名が取得されます。
詳細は以下を参照してください。
VPC での DNS の使用
http://docs.aws.amazon.com/ja_jp/AmazonVPC/latest/UserGuide/vpc-dns.html
Amazon DNS サーバ
http://docs.aws.amazon.com/ja_jp/AmazonVPC/latest/UserGuide/VPC_DHCP_Options.html#AmazonDNS
(1)以下のデフォルト設定を確認します
VPCダッシュボード > Your VPCs > [作成したVPC]を選択 > Summaryタブ
・DNS resolution : yes (VPCに対してDNSサーバーで名前解決されているかどうか)
・DNS hostnames : no (起動インスタンスがDNSホスト名を取得するか)
図6:DNS名前解決設定

(2)以下の設定を変更します
・DNS hostnames : yes (起動インスタンスがDNSホスト名を取得するか)
Actions > 「Edit DNS Hostnames」
図7:DNS名前解決設定

「Edit DNS Hostnames」画面 > 「DNS Hostnames」 で 「Yes」を選択 > 「Save」をクリック
図8:DNS名前解決設定

Your VPCs 画面 で 設定したVPCを選択し、「Summary」タブをクリック。
「DNS hostnames」 が 「yes」に変更されていることを確認します。
図9:DNS名前解決設定

(3)インスタンス画面でPublic DNS名が取得されていることを確認します
図10:DNS名前解決設定

(4)Webサーバーにブラウザアクセスします
ブラウザURLにWebサーバのパブリックDNSホスト名を入力し、エンターを押します。
Apacheのデフォルトページが表示されることが確認できます。
図11:Webサーバーにアクセス

以上で、Webサーバーインストール~ファイアウォール設定~DNS名前解決設定が完了となります。
次回はDBサーバーインスタンス作成~NATインスタンス作成までを行います。
以上