こんにちは、CSチームのかわむらです。
以前のブログでWordPressをElastic Beanstalkで動かす記事を書きました。
『Elastic BeanstalkでWordPressをインストールしてみました』
この記事で書いた通り、GitHubからコマンド一つでElastic Beanstalkにデプロイできるのはとても快適です。しかし、まったくの新規案件なら別ですが、既存の案件ではSubversionが使われているケースが多いのではないでしょうか?
そこで今回は、Gitを使わずにElastic Beanstalkにデプロイする方法を調べてみました。
◆
SubversionからGitHubを経由してデプロイ
ふと、思いついたのは、Subversionリポジトリからexportしたものを一度GitHubに上げて、そこからElastic Beanstalkにデプロイするいうものでした。
実際にやってみたところ、当然といえば当然なのですが、スムーズにデプロイすることができました。とはいえ、この方法はデメリットが多く現実的ではありません。
・業務で使う以上公開リポジトリは使えないのでGitHubの有料プランが必須 ・デプロイ手順が増えて運用が面倒
この時点まですっかり忘れていたのですが、Elastic BeanstalkはZipファイルでデプロイすることができるのでした。
◆
では、実際にやってみましょう。今回は、より実案件らしくCakePHP2.2をElastic Beanstalkで動かしています。
1. Subversion
デプロイするブランチをエクスポートするところまでは、(きっと)普段のリリース手順と変わりはありません。
1. 任意のディレクトリで、リリースするタグを指定してsvn exportします。
2. exportしたディレクトリの中に入ります。
3. ディレクトリ内のファイルをすべて選択して、1つのZipファイルに圧縮します。
あとはこのZipファイルをアップロードするだけ!
2. Elastic Beanstalk
Upload New Versionをクリックします。
ダイアログボックスが開きます。
[Version Label]にラベルを入力、デプロイするZipファイルを選択したら、[Deployment]の[Deploy to an existing environment after upload]をクリックします。 最後に[Upload and Deploy New Version]を実行して数分待ちます。
できました!
次は、CakePHPのトップページに「Zipでデプロイしてみました。」と書き加えて、同じ手順でもう一度デプロイしてみます。
[拡大画像]
ちゃんと更新部分が反映されていました。
もし、ここでデプロイに失敗しても[Elastic Beanstalk Application Details]→[Versions]タブで、以前の状態に戻すことができます。
他にも[Environment Details]→[Edit Configuration]で、起動する最小~(Auto Scalingによる)最大のインスタンス数を指定できますし、[Existing Key Pair]でEC2に上げている自分の鍵を指定すればElastic Beanstalkで起動しているインスタンスにsshでログインできます。
先ほど起動したインスタンスにログインして確認すると、デプロイしたZipファイルは/var/www/htmlに展開されていました。
◆
今回の感想
前回の私のブログも含め、Elastic Beanstalkを扱った記事を読むと多くは「GitHubからデプロイ~」とあるので、Subversionを使っているから関係ないかな‥‥と思いがちですが、特にGitによるしばりがあるわけではないということが、実際にやってみてわかりました。
サポートする言語もJava→PHP→Pythonと来て、次はいよいよRubyかな?といった期待もあるので、Elastic Beanstalkは引き続き追いかけていこうと思います。