新米インフラエンジニアの研修日記

とある会社で研修させて頂いたことを書いてます。

Elastic Beanstalk

Elastic Beanstalk
発音は、「えらすてぃっく びーんすとーく」だそうです。
びーんずとーくだと思ってました(笑)

Beanstalkのイメージは下図な感じ↓
f:id:the-casket-of-star:20160406093300p:plain
Applicationの大枠があり、
environmentがありまして、それぞれにendpointがついており、cnameを設定できます。
Ex)test.example.com

environmentはいくつも作れます。

Versionという枠があり、ソースコードをバージョン毎に格納します。
裏側はS3のバケットです。

f:id:the-casket-of-star:20160406093314p:plain
仮に上を本番環境、下をステージング環境とします。
Ver.1.0を本番に、Ver.1.1をステージングにでデプロイして、開発を進めていくこととします。
ステージングの検証が問題ないので、Ver.1.1を本番にデプロイしたい!

そんな時もすぐできます!
そしてすぐ戻せるのです。

f:id:the-casket-of-star:20160405234035p:plain
environmentの中には大きく2種類あって、
①Web Server環境
②Worker環境
があります。

HTTPリクエストを処理するウェブアプリケーションならWebServer
バックグラウンドプロセスタスクを処理するアプリケーションならWorker
環境で作成します。

Worker環境のものをデプロイしてSQSに書き込める バックグラウンド処理タスクを実行できます。

また、Versionのファイルの中に.ebextensionsフォルダを置いて、
その下の各ファイルにコマンドやオプション設定を記述して、デプロイ時に実行するコードを入れておくことができます。

全体の裏側が実はCloudFormationで、別のリージョンにもすぐにコピーできたりするらしい。
すごい!