HAPPY HACKING Oouchi's BLOG

PSE(ポンコツエンジニア)の技術ブログ

Blue-Greenデプロイとは何かElastic Beanstalkで学ぶ

はじめに

Blue-Greenデプロイとは?

Blue-Greenデプロイ(ブルーグリーンデプロイ)とは、
ダウンタイムを回避するデプロイ手法です。

Blue環境:現行の環境
Green環境:新しい環境
と見立てて、

事前にGreen環境をデプロイしておき
URLをスワップするトラフィックをBlue環境からGreen環境へルーティングする
ことによりダウンタイムを回避してスムーズなデプロイを実施できます。

今回はBlue-GreenデプロイをElastic Beanstalkを使って試してみたいと思います!

本題

Blue環境を作成する

Elastic Beanstalkのコンソールに移動します。

f:id:ooooouchi:20200622013343p:plain

Create Applicationをクリックします。

アプリケーションの情報を入力します。

  • アプリケーション名:Blue-Green-Sample
  • プラットフォーム:PHP

他の設定はデフォルトで大丈夫です。

f:id:ooooouchi:20200622013349p:plain

設定が完了したらアプリケーションの作成をクリックします。

初期環境が作成されるのを待ちます。

f:id:ooooouchi:20200622013356p:plain

※5〜10分ほどかかります。

作成が完了したらURLをクリックしてデプロイされた環境を確認します。

f:id:ooooouchi:20200622013401p:plain

f:id:ooooouchi:20200622013405p:plain

これでBlue環境の作成は完了です。

Green環境を作成する

Blue-Green-Sampleをクリックし、アプリケーション情報画面に遷移します。

f:id:ooooouchi:20200622013409p:plain

新しい環境の作成をクリックします。

ウェブサーバー環境を選択して、選択をクリックします。

f:id:ooooouchi:20200622013415p:plain

環境の情報を入力します。

  • 環境名:GreenSample-env
  • プラットフォーム:Node.js

他の設定はデフォルトで大丈夫です。

f:id:ooooouchi:20200622013419p:plain

設定が完了したら環境の作成をクリックします。

Blue環境作成時と同様に環境が作成されるのを待ちます。

f:id:ooooouchi:20200622013423p:plain

作成が完了したらURLをクリックしてデプロイされた環境を確認します。

f:id:ooooouchi:20200622013428p:plain

f:id:ooooouchi:20200622013433p:plain

Green環境の作成は完了です。

Blue環境とGreen環境をスワップする

最初に作成したBlueGreenSample-envのダッシュボードに移動します。

アクション→環境URLのスワップをクリックします。

f:id:ooooouchi:20200622013437p:plain

スワップする環境を選択します。

  • 環境名:GreenSample-env

スワップをクリックします。

スワップが完了したら最初に作成した環境のURLを確認します。

f:id:ooooouchi:20200622013442p:plain

Green環境作成時に確認したURLになっていたら成功です。

最初に作成したBlue環境のURLも確認してみましょう。

f:id:ooooouchi:20200622013445p:plain

Green環境に最初に作成したBlue環境のURLが反映されています。

f:id:ooooouchi:20200622013449p:plain

Blue環境のURLをクリックしてGreen環境のアプリが表示されることも確認できました。

おわりに

Blue-Greenデプロイメントを使用してダウンタイムのないデプロイができるようになりました。

他のデプロイ手法やロールバック手法も色々あるので是非調べて試してみてください!