みたろーのさんどぼっくす

やってみたあんなことやそんなこととかを、気が向いたらまとめてみるよ。

Deploying AWS Elastic Beanstalk Applications in PHP Using Git / 1日目

面白そうなので、やってみました*1
Deploying AWS Elastic Beanstalk Applications in PHP Using Git( http://docs.amazonwebservices.com/elasticbeanstalk/latest/dg/create_deploy_PHP.html )。

Get Set Up

For more information on prerequisites and installation instructions for AWS DevTools, see Get Set Up.

http://docs.amazonwebservices.com/elasticbeanstalk/latest/dg/create_deploy_PHP.html

というわけで、セットアップ( http://docs.amazonwebservices.com/elasticbeanstalk/latest/dg/GettingStarted.GetSetup.html )から。

AWS DevTools

ダウンロードと展開

これまでの作業で、GitとRubyは入手済みだったので、AWS Dev Toolsをダウンロード。
f:id:mitaro:20120814113222j:plain
「AWS Sample Code & Libraries」のリンクから、
f:id:mitaro:20120814113719j:plain
これをダウンロード。展開すると、こんな感じ。
f:id:mitaro:20120814113935j:plain

リポジトリの初期化

Gitのリポジトリとしての初期化と、
f:id:mitaro:20120814114144j:plain
AWS Elastic Beanstalk Application のリポジトリとしての初期化を行って、
f:id:mitaro:20120814114229j:plain
AWS DevToolsのセットアップは完了。

AWS Elastic Beanstalk Command Line Interface

ダウンロード自体は、既にすんでいる *2 ので、環境の設定のみ。

環境変数設定

http://docs.amazonwebservices.com/elasticbeanstalk/latest/dg/usingCLI.html では、一時的な設定について書いてある。せっかくなので、永続的に対処する。
調べてみたところ、「~/.MacOSX/environment.plist (be careful it's case sensitive) に書くとよい( http://developer.apple.com/library/mac/#qa/qa1067/_index.html )」らしく、現在では、Xcodeで編集するのがよいらしい。これについては、気が向いたら別記事にまとめる。*3

Develop, Test, and Deploy

引き続き、「Develop, Test, and Deploy」( http://docs.amazonwebservices.com/elasticbeanstalk/latest/dg/create_deploy_PHP.sdlc.html )に従って進める。

Develop Locally・Test Locally

ここまでは、まだローカルでの作業なので省略。

(横道)GitHubへの登録

アプリの配置の前に、GitHubに登録することができる。前記事から引き続き、GitHubアプリでの操作を主に記録しておく。

まず、「My Repositories」にローカルリポジトリを追加。
f:id:mitaro:20120814140021j:plain
リポジトリの中を見ると、右上のボタンが「Push to GitHub」になっている。これを押す。
f:id:mitaro:20120814140207j:plain
次に登録内容を入力し、「Push Repository」。
f:id:mitaro:20120814140329j:plain
右上のボタンの変化に注目。
f:id:mitaro:20120814140517j:plain
この時点で、Web上に空のリポジトリができている。
f:id:mitaro:20120814140619j:plain
アプリに戻り、右上の「Publish Branch」を押す。すると、GitHubにブランチが登録され、ボタンも「Sync Branch」にかわる。
f:id:mitaro:20120814140917j:plain
これで、GitHub上への登録が完了。
f:id:mitaro:20120814141025j:plain

Deploy to AWS Elastic Beanstalk

アプリの格納先を用意する

手っ取り早くすませるには「running PHP」のサンプルアプリを選択することが大切。


f:id:mitaro:20120814141521j:plain
最初の起動にはしばらく時間がかかる。落ち着くまで放置。
f:id:mitaro:20120814141641j:plain
安定すると、以下のようなページを拝むことができる。
f:id:mitaro:20120814141803j:plain

To configure your Git environment

GitでAWS Elastic Beanstalk アプリを配置するための事前設定を行う。
ここは秘匿しておいた方が安全な情報もあるので、画面は省略。

アプリケーション名と環境名

はまったポイントなので、一応書いておく。
サンプルアプリケーションを配置したため、「「アプリケーション名」と「環境名」に何を入力すればよいかわからない」という自体にはまった。一旦わかってしまえば、なんということはないですね…
f:id:mitaro:20120814142823j:plain

To update the sample application with your local application

では、「aws.push」。すると、コンソールも反応する。
f:id:mitaro:20120814143105j:plain
しばらくすると、gitバージョンで安定。
f:id:mitaro:20120814143235j:plain
この時点で、サンプルのバージョンと今回リリースしたバージョンの2つのバージョンが確認できる。
f:id:mitaro:20120814143603j:plain
ここで、動作させるバージョンを切り替えることも可能。
f:id:mitaro:20120814143710j:plain

1日目、まとめ

細かな話をすっ飛ばして、AWSにアプリケーションを配備することができました。
AWS の Account Activityによると、現時点でこれだけのサービスを使っていました。

思った以上に手軽でびっくり。*4

*1:実際にやったのは、2012/8/13

*2: AWS DevTools と同一のZipファイル。紛らわしい。

*3:Gitで公開するだけなら、この設定は不要であるようなので。

*4:無料期間終了後の料金については横においておく。