AWS Elastic Beanstalkを使ってみた

記事タイトルとURLをコピーする
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
ここで作成したsamplephpがデプロイ環境になります。
以上、数分でセットアップが完了します。
http://***Environment名***.elasticbeanstalk.com/ にアクセスすると デフォルトのアプリケーショントップページが表示されます。
URLはEnvironment Details > URLでも確認できます。
ちなみに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で起動したインスタンスを停止してみたところ、数分で復旧しヘルスチェックもグリーンに戻りました。 今後も対応環境は増えるようなので、更に使い勝手が良くなりそうですね。