Elastic BeanstalkでWordPressをインストールしてみました

記事タイトルとURLをコピーする

こんにちは、CSチームのかわむらです。 Elastic Beanstalkネタが続きますが、Elastic BeanstalkとRDSを使ってWordPressのインストールをしてみました。 環境ができてしまえば、この図のようにGitHubにgit pushして、それをElastic Beanstalkにpush(git aws.push)するだけなのですが、まったくのゼロから始めるとなると環境構築に相応の手間が必要です。 『AWS Elastic Beanstalkを使ってみた』も参考にしてみてください。 インストールにあたってのポイントは、こんな感じです。 Amazon Linux
以下を使えるようにします。
・git
・Ruby 1.8.7
・Python 2.7
・AWS-ElasticBeanstalk-CLI-2.0
Elastic Beanstalk
・PHP 5.3 64bitを選択
・アクセスキーとシークレットキーが必要 RDS
・AWS Management ConsoleでMySQL 5.5.20を選択
・セキュリティーグループはelasticbeanstalk-defaultを指定 では、インストールの流れを追っていきます。

1. Amazon Linux

AWS-ElasticBeanstalk-CLI-2.0をダウンロードして/optに置きます。
Pythonのバージョンが2.6だったので2.7をインストールして、/usr/bin/pythonのシンボリックリンクの向き先をPython 2.7に変えます。
/opt/AWS-ElasticBeanstalk-CLI-2.0/eb/linux/python2.7にPATHを通します。

これでElastic Beanstalkのebコマンドが使えるようになりました。

2. GitHub

Elastic BeanstalkはGitHub上のリポジトリからデプロイされるため、GitHubのアカウントが使える状態になっている必要があります。
心苦しいのですが、GitHubを使える状態にするだけでひとつの記事になってしまうので、ここでは省略します。

3. 再びAmazon Linux

http://ja.wordpress.org/からWordPressをダウンロードします。最新バージョンの3.4.1をダウンロードしました。
解凍したwordpressディレクトリに移動して、GitHubにリポジトリを作成したらcommitします。 ebコマンドを使ってElastic Beanstalkを実行していきます。まずは初期化。

$ eb init
To get your AWS Access Key ID and Secret Access Key,
  visit "https://aws-portal.amazon.com/gp/aws/securityCredentials".
Enter your AWS Access Key ID: アクセスキーを入力します
Enter your AWS Secret Access Key: シークレットキーを入力します
Select an AWS Elastic Beanstalk service region.
Available service regions are:
1) "US East (Virginia)"
2) "EU West (Ireland)"
3) "Asia Pacific (Tokyo)"
Select (1 to 3): 3 ← 東京リージョンを選びます
Enter an AWS Elastic Beanstalk application name (auto-generated value is "wordpress"): デフォルト値のまま
Enter an AWS Elastic Beanstalk environment name (auto-generated value is "wordpress-env"): デフォルト値のまま
Select a solution stack.
Available solution stacks are:
1) "32bit Amazon Linux running Tomcat 7"
2) "64bit Amazon Linux running Tomcat 7"
3) "32bit Amazon Linux running Tomcat 6"
4) "64bit Amazon Linux running Tomcat 6"
5) "32bit Amazon Linux running PHP 5.3"
6) "64bit Amazon Linux running PHP 5.3"
7) "64bit Windows Server 2008 R2 running IIS 7.5"
Select (1 to 7): 6 ← Amazon Linux, PHP 5.3, 64bitを選びます
Successfully updated AWS Credential file at "/home/ユーザー名/.elasticbeanstalk/aws_credential_file".

これで準備ができました。まだインスタンスは起動していません。eb startするとインスタンスが立ち上がります。

$ eb start
Starting application "wordpress".
Waiting for environment "wordpress-env" to launch.
2012-06-28 17:28:35 INFO    createEnvironment is starting.
2012-06-28 17:28:46 INFO    Using elasticbeanstalk-ap-northeast-1-020833910461 as Amazon S3 storage bucket for environment data.
2012-06-28 17:28:47 INFO    Created Auto Scaling launch configuration named: awseb-wordpress-env-3RiMfhep0L.
2012-06-28 17:28:48 INFO    Created load balancer named: awseb-wordpress-env.
2012-06-28 17:28:49 INFO    Created Auto Scaling group named: awseb-wordpress-env-C9fk6D6lFc.
2012-06-28 17:28:50 INFO    Created Auto Scaling trigger named: awseb-wordpress-env-C9fk6D6lFc.
2012-06-28 17:28:52 INFO    Waiting for an EC2 instance to launch.
2012-06-28 17:29:37 INFO    Adding EC2 instances to the load balancer. This may take a few minutes.
2012-06-28 17:31:47 INFO    Application available at wordpress-env-pjtcknj2qy.elasticbeanstalk.com.
Application is available at "wordpress-env-pjtcknj2qy.elasticbeanstalk.com".

インスタンスが立ち上がるまで少し時間がかかります。起動状況はeb statusで確認できます。

$ eb status
URL : wordpress-env-hqpph9fuxh.elasticbeanstalk.com
Status  : Ready
Health  : Green

git pushしてWordPressのファイルをGitHubに上げます。 次はいよいよgit aws.pushでElastic Beanstalkにデプロイします。
※git aws.pushはRuby 1.9系だとエラーになるので1.8.7を使います。

4. RDS

上記のポイントでも書きましたが、AWS Management ConsoleでMySQL 5.5.20を選択しました。
セキュリティーグループはelasticbeanstalk-defaultを指定します。

5. WordPress

「5分間インストール」を参照しながら、wp-config.phpを書き換えます。
wp-config.phpの変更を適用するためにGitHubにpushし、再度git aws.pushを実行します。

6. ELB

ELBのヘルスチェックで使用するファイルを適当なものに変更してELB経由でアクセスができるようにします。 7. WordPress仕上げ /wp-admin/install.php にアクセスしてWordPressのインストールを行います。
終了したら、/wp-admin にアクセスして記事のポストを行ってみてください。
これでWordPressが動きました。

感想


Elastic BeanstalkとRDSを使って何か動かしてみたいと思い、今回はWordPressをインストールしてみました。 比較的まだ新しいサービスなので使いどころをつかめていませんが、Elastic Beanstalkを選択することでGitHub経由でデプロイすることが前提になるところが個人的にうれしい部分です。