ZipファイルでElastic Beanstalkにデプロイ

記事タイトルとURLをコピーする

こんにちは、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は引き続き追いかけていこうと思います。