2012年3月22日木曜日

AWS Elastic Beanstalk for PHP #1

AWS Elastic Beanstalk が PHP 環境をサポートしたようなので、とりあえず試してみる。

どうやってデプロイすんのかなと思ってたんだけど、どうやら Git を使用するらしい。「Git を知らないのが許されるのって高校生までだよねー」とか言われそうだけど、Git 使ったことないぞ……。

とりあえず、Windows 7 環境で試してみた。(Windows XP Professional SP3 で試したらうまく行かなかったよ……。)

Getting Started Using AWS Elastic Beanstalk > Get Set Up > AWS DevTools のところに、Windows は次のような手順でやってねって書いてあった。
  1. 必要なソフトウェアのインストール
  2. AWS DevTools のダウンロード
  3. セットアップスクリプトの実行
  4. Git リポジトリディレクトリの作成
  5. リポジトリセットアップスクリプトの実行
では、順番にやっていこう。

1. 必要なソフトウェアのインストール

必要なソフトウェアのインストールということで、次の2つをインストールした。とりあえず、git コマンドのパスを通すところ(画像参照)以外はデフォルトインストールだね。

2. AWS DevTools のダウンロード

AWS Elastic Beanstalk Command Line Tool をダウンロードする。ダウンロードしたら、ZIP ファイルを解凍する。

3. セットアップスクリプトの実行

解凍したディレクトリ内の elasticbeanstalk-cli¥AWSDevTools¥Windows¥AWSDevTools-OneTimeSetup.bat をダブルクリックして実行する。

4. Git リポジトリディレクトリの作成

デスクトップにある Git Bash アイコンをダブルクリックして Shell を起動する。下記のコマンドをホームディレクトリで実行する。

$ mkdir sample $ cd sample $ git init .

5. リポジトリセットアップスクリプトの実行

解凍したディレクトリ内の elasticbeanstalk-cli¥AWSDevTools¥Windows¥AWSDevTools-RepositorySetup.bat を sample ディレクトリにコピーし、ダブルクリックして実行する。



ここまでで、AWS DevTools の設定は完了した。
早速、サンプルの PHP ファイルをデプロイしてみよう。

作成した sample ディレクトリで下記のような感じで作業し、サンプルとなる PHP ファイルを作成した。(Hello, World と表示するだけのサンプルw)すべてのコマンドは、Git Bash から実行した。

$ vim index.php
$ git add .
$ git commit -m "initial check-in"

次に、AWS Management Console > AWS Elastic Beanstalk > Create New Applicationで適当なアプリケーションを作成する。僕は、Hello というアプリケーションを作成した。環境は HelloEnv にしといた。

その内容で、下記コマンドを実行し、デプロイの設定をする。

$ git aws.config
AWS Access Key: (アクセスキーを入力する。)
AWS Secret Key: (シークレットキーを入力する。)
AWS Region [default to us-east-1]: (デフォルトのまま Enter を入力する。)
AWS Host [default to git.elasticbeanstalk.us-east-1.amazonaws.com]: (デフォルトのまま Enter を入力する。)
AWS Elastic Beanstalk Application: Hello
AWS Elastic Beanstalk Environment: HelloEnv

最後に、下記コマンドでデプロイ!

$ git aws.push

そして、下記の URL をブラウザで開いて実行されていることを確認する。

http://(環境の名前).elasticbeanstalk.com/index.php

環境構築には手間取ったけど、慣れてしまえば効率的に開発環境も本番環境も作成できるね。シンプルな Web アプリケーションだったら、サーバーエンジニアの仕事はなくなっていくな。AWS がわかるエンジニアが居ればね。

参考文献:
AWS Developers Guide Elastic Beanstalk

追記(2012年3月22日):
ELB のヘルスチェックを sample/index.php に設定してやらないとダメみたい。
追記(2012年4月19日):
Git を理解してなかったためにいろいろと間違ってたので修正。ELB のヘルスチェックも index.php になってれば大丈夫。

0 件のコメント: