CSチームの馬場です。
使ってみたシリーズ、PHP Fogに続き第二弾は『AWS Elastic Beanstalk』です。
AWS Elastic Beanstalkは、Amazon Web Servicesの一つとして提供されているクラウド上のアプリケーションを簡単に管理できる機能です。ロードバランサーとオートスケーリング機能も標準装備となっていて、これらの機能は自動で提供されます。
サービスの追加はAWS Management ConsoleからAWS Elastic Beanstalkを選択して追加するだけで、機能の利用自体には料金が発生しないため手軽に利用できます。課金は起動したEC2インスタンスやその他サービスの利用に応じておこなわれます。
2012年3月からPHPもサポートが開始され、2012年4月には東京リージョンでもAWS Elastic Beanstalkが利用可能となりました。Gitも利用できるため、アプリケーションのデプロイも簡単におこなうことができます。
早速、Gitを利用してAWS Elastic Beanstalkにデプロイをおこなってみたいとおもいます。
事前準備
Windows環境でGitを利用するため、以下のツールを使用します。- GitGit-1.7.10-preview20120409.exe をインストールします。インストールの際はコマンドプロンプトを使用するため『Run Git from the Windows Command Prompt』を選択します。
- AWS Elastic Beanstalk Command Line Tool ダウンロードしたディレクトリ内のelasticbeanstalk-cliAWSDevToolsWindowsAWSDevTools-OneTimeSetup.bat を実行します。これで、AWS Elastic Beanstalk アプリケーションのプッシュに必要なものがすべてインストールされます。
手順
1) AWS Elastic BeanstalkでEnvironmentを作成 2) リポジトリの作成 3) リポジトリセットアップ 4) Gitでデプロイ1) AWS Elastic BeanstalkでEnvironmentを作成
AWS Management Console > AWS Elastic Beanstalk > Create New Application で新しいアプリケーションを作成します。Environmentを作成します。
今回作成したサンプル
- Application:sample
- Environment:samplephp
以上、数分でセットアップが完了します。
http://***Environment名***.elasticbeanstalk.com/ にアクセスすると デフォルトのアプリケーショントップページが表示されます。
http://***Environment名***.elasticbeanstalk.com/ にアクセスすると デフォルトのアプリケーショントップページが表示されます。
URLはEnvironment Details > URLでも確認できます。
ちなみにEC2のインスタンス一覧を確認すると、インスタンスが起動していることがわかります。
ちなみにEC2のインスタンス一覧を確認すると、インスタンスが起動していることがわかります。
2) リポジトリの作成
ローカル環境にて、事前準備でインストールしたGit BashアイコンからShellを起動し作業用のディレクトリを作成します。
$ mkdir test $ cd test $ git init .
3) リポジトリセットアップ
解凍したAWS Elastic Beanstalk Command Line Toolのelasticbeanstalk-cli¥AWSDevTools¥Windows¥AWSDevTools-RepositorySetup.bat をtestディレクトリ以下にコピーし、ダブルクリックして実行します。※この作業は作成したリポジトリ毎に実行が必要ですバッチファイルの実行後、デプロイ用の設定をおこないます。
$ git aws.config AWS Access Key: **************** // アクセスキーを入力 AWS Secret Key: ******************************** // シークレットキーを入力 AWS Region [default to us-east-1]: ap-northeast-1 // 東京リージョンを指定 AWS Elastic Beanstalk Application: sample // アプリケーション名を入力 AWS Elastic Beanstalk Environment: samplephp // Environment名を入力
4) Gitでデプロイ
コミット用のファイルを作成し、Gitでデプロイをおこないます。$ vi index.php <?php phpinfo(); ?> $ git add $ git commit -m "first commit" $ git aws.push
http://***Environment名***.elasticbeanstalk.com/ にアクセスします。
無事反映されました!
まとめ
環境設定まわりは最初手間取りましたが、セットアップが完了すれば数分で最適な環境が構築できました。試しにBeanstalkで起動したインスタンスを停止してみたところ、数分で復旧しヘルスチェックもグリーンに戻りました。 今後も対応環境は増えるようなので、更に使い勝手が良くなりそうですね。