Amazon VPC シリーズAmazon VPC上にシンプルなWordpress環境を構築する:Webサーバー構築編
はじめに
前回の準備編で、構築に必要なセキュリティグループやサブネットの準備ができました。今回は踏み台用サーバーやWebサーバーを構築してSSH接続とELBからWebサーバーに接続できるところまで進めます。
SSH接続用踏み台サーバー(EC2)の作成
まずは踏み台サーバーを作ります。ほぼ立てるだけなので簡単です。
AMIを選択
Amazon Linux AMIを選択します。
Choose an Instance Type
SSHで接続するだけに使うのでインスタンスサイズはt2.microにします。
Configure Instance Details
NetworkでVPCを選択しSubnetを踏み台サーバー用にします。
Add Storage
ストレージはデフォルトのままでOK。
Tag Instance
タグもvpc-wordpress: jump hostとかTunnelとか適当に付けます。
Configure Security Group
SSH用のセキュリティグループを選択し、Review and Launchを教えて作成したKey Pairを選択します。
踏み台サーバーにEIPを割り当てる
踏み台サーバーが起動できたらEIPを割り当てます。メンテナンスをしない時はインスタンスをStopしておくことで不正アクセスされるリスクを減らすことができます。EIP(Elastic IPs)の作成はEC2のメニューからElastic IPsを選択し、Allocate New Addressをクリックします。
EIPができたら先ほど作った踏み台用サーバーにAssociate Addressで割り当てます。
踏み台サーバーへの接続
踏み台サーバーへの接続は予め.ssh/config
ファイルに接続情報を記述しておくことで、$ ssh vpc-wp
といったような非常に短いコマンドでアクセスできるようになります。
$ vi ~/.ssh/config
Host vpc-wp
HostName xxx.xxx.xxx.xxx
Port 22
User ec2-user
IdentityFile ~/.ssh/projects/vpc-wordpress.pem
これで一度踏み台サーバーに接続してみます。
$ ssh vpc-wp
__| __|_ )
_| ( / Amazon Linux AMI
___|\___|___|
https://aws.amazon.com/amazon-linux-ami/2014.09-release-notes/
7 package(s) needed for security, out of 18 available
Run "sudo yum update" to apply all updates.
[ec2-user@ip-10-82-3-243 ~]$
このように表示されたら踏み台サーバーへのアクセスは成功。Webサーバーへの接続はWebサーバーを用意してから行います。
接続時のエラー:UNPROTECTED PRIVATE KEY FILE!
こんなエラーが出たらパーミッションを0600に変更することで解決します。
@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@
@ WARNING: UNPROTECTED PRIVATE KEY FILE! @
@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@
Permissions 0640 for '/Users/nonakaryuichi/.ssh/projects/xxx/vpc-wordpress.pem' are too open.
It is required that your private key files are NOT accessible by others.
This private key will be ignored.
$ chmod 600 vpc-wordpress.pem
Webサーバー(EC2)の作成
踏み台サーバーとほぼ同じ流れで、Webサーバー用のサブネットとセキュリティグループを設定します。
Public IPの設定
Webサーバーなので外とデータのやりとりを行えるようPublic IPを設定します。これはConfigure InstanceのAuto-assign Public IPをEnableにすることで有効化できます。これを有効化して置かないと外とのやりとりが行えないためyum update
などが行えません。
インスタンスができたらPrivate IPをメモしておいてください。このPrivate IPは踏み台サーバーからWebサーバーに接続する際に必要になります。
踏み台サーバー経由でWebサーバーにSSH接続
ssh configにWebサーバーの情報を記述します。踏み台サーバー経由のSSH接続はこちらを参考にしました。ProxyCommand
を使って踏み台サーバーを意識することなく、WebサーバーへSSH接続できるようになります。.ssh/config
に接続情報を追記します。xxx.xxx.xxx.xxx
の部分はメモしたPrivate IPを指定します。
$ vi ~/.ssh/config
Host app.vpc-wp
Hostname xxx.xxx.xxx.xxx
User ec2-user
IdentityFile ~/.ssh/projects/vpc-wordpress.pem
ProxyCommand ssh vpc-wp -W %h:%p
踏み台サーバーを経由したSSH接続をテスト
SSH接続を試してみましょう。
以下のように接続できたら踏み台経由のアクセス成功です。
$ ssh app.vpc-wp
__| __|_ )
_| ( / Amazon Linux AMI
___|\___|___|
https://aws.amazon.com/amazon-linux-ami/2014.09-release-notes/
[ec2-user@ip-10-82-1-19 ~]$
これでWebサーバーの準備は完了です。
Wordpress環境の構築
続けてWebサーバーにWordpressをインストールします。
ApacheやPHPをyumでインストール
yumで必要なモジュールをインストールしましょう。
$ yum update
$ yum -y install httpd php php-pear php-mysql php-mbstring php-gd php-xml php-mcrypt php-pecl-apc
Apacheの自動起動
Apacheの自動起動を設定、httpd.confの設定はとりあえず置いておきます。
$ chkconfig httpd on
Wordpressのダウンロード
以下のコマンドを順番に実行して、WordpressのダウンロードとWebサーバーを起動します。
$ cd /var/www
$ rm -f -r html/
$ wget http://ja.wordpress.org/latest-ja.tar.gz
$ tar -xzvf latest-ja.tar.gz
$ rm -f latest-ja.tar.gz
$ mv wordpress html
$ chown -R apache:apache html/
$ chown -R ec2-user html/wp-content/themes/
$ service httpd start
これで、WebからアクセスできればWordpressのインストールを行える状態になりました。 Load Balancerを設定してWebサーバーにアクセスしてみましょう。
Load Balancerの設定
EC2のメニューからLoad Balancersに移動し、Create Load Balancerをクリックします。Load Balancer nameを適当に入力して、Create LB Insideで対象のVPC(vpc-wordpress)を選択します。Listener ConfigurationはHTTPのみで大丈夫です。
Configure Health Checkの指定
Ping Pathを/readme-ja.html
に書き換えます。あとはデフォルトで問題ありません。
Select Subnets
Public subnet: ELBの左側に並んでいる+ボタンを押してSelected Subnetsに含めます。
Assign Security Groups
ELB用のセキュリティグループを選択します。
Add Instances to Load Balancer
作成したWebサーバー用のEC2インスタンスにチェックを入れます。
ELBの起動
あとはタグを適当に設定しレビューをチェックした後、Createボタンを押してELBを起動します。起動したELBのStatusが1 of 1 instances in serviceになれば正常に動作しています。DNS NameでWebブラウザからWordpressのインストール画面が表示されればうまくいっています。
今回はここまで。
次回はRDSを立ててWordpressをインストールします。
シリーズ
- Amazon VPCを作成しEC2にHTTP接続する
- Amazon VPC上にシンプルなWordpress環境を構築する:準備編
- Amazon VPC上にシンプルなWordpress環境を構築する:Webサーバー構築編