はじめに
Blue-Greenデプロイとは?
Blue-Greenデプロイ(ブルーグリーンデプロイ)とは、
ダウンタイムを回避するデプロイ手法です。
Blue環境:現行の環境
Green環境:新しい環境
と見立てて、
事前にGreen環境をデプロイしておき、
URLをスワップするかトラフィックをBlue環境からGreen環境へルーティングする
ことによりダウンタイムを回避してスムーズなデプロイを実施できます。
今回はBlue-GreenデプロイをElastic Beanstalkを使って試してみたいと思います!
本題
Blue環境を作成する
Elastic Beanstalkのコンソールに移動します。
Create Applicationをクリックします。
アプリケーションの情報を入力します。
- アプリケーション名:Blue-Green-Sample
- プラットフォーム:PHP
他の設定はデフォルトで大丈夫です。
設定が完了したらアプリケーションの作成をクリックします。
初期環境が作成されるのを待ちます。
※5〜10分ほどかかります。
作成が完了したらURLをクリックしてデプロイされた環境を確認します。
これでBlue環境の作成は完了です。
Green環境を作成する
Blue-Green-Sampleをクリックし、アプリケーション情報画面に遷移します。
新しい環境の作成をクリックします。
ウェブサーバー環境を選択して、選択をクリックします。
環境の情報を入力します。
- 環境名:GreenSample-env
- プラットフォーム:Node.js
他の設定はデフォルトで大丈夫です。
設定が完了したら環境の作成をクリックします。
Blue環境作成時と同様に環境が作成されるのを待ちます。
作成が完了したらURLをクリックしてデプロイされた環境を確認します。
Green環境の作成は完了です。
Blue環境とGreen環境をスワップする
最初に作成したBlueGreenSample-envのダッシュボードに移動します。
アクション→環境URLのスワップをクリックします。
スワップする環境を選択します。
- 環境名:GreenSample-env
スワップをクリックします。
スワップが完了したら最初に作成した環境のURLを確認します。
Green環境作成時に確認したURLになっていたら成功です。
最初に作成したBlue環境のURLも確認してみましょう。
Green環境に最初に作成したBlue環境のURLが反映されています。
Blue環境のURLをクリックしてGreen環境のアプリが表示されることも確認できました。
おわりに
Blue-Greenデプロイメントを使用してダウンタイムのないデプロイができるようになりました。
他のデプロイ手法やロールバック手法も色々あるので是非調べて試してみてください!