AWS Elastic BeanstalkでBlue-Green Deployment

◆ Live配信スケジュール ◆
サイオステクノロジーでは、Microsoft MVPの武井による「わかりみの深いシリーズ」など、定期的なLive配信を行っています。
⇒ 詳細スケジュールはこちらから
⇒ 見逃してしまった方はYoutubeチャンネルをご覧ください
【5/21開催】Azure OpenAI ServiceによるRAG実装ガイドを公開しました
生成AIを活用したユースケースで最も一番熱いと言われているRAGの実装ガイドを公開しました。そのガイドの紹介をおこなうイベントです!!
https://tech-lab.connpass.com/event/315703/

こんにちは、サイオステクノロジー技術部 武井です。今回は、Elastic BeanstalkによるBule-Green Developmentを実践してみたいと思います。

Blue-Green Deploymentとは?

以下のように本番環境(図中ではProduction)とステージング環境(図中ではStaging)があるとします。文字通り本番環境では、現在ユーザーが利用中の本番向けのアプリ(Ver1.0.0)が稼働しているものとします。ステージング環境は次期バージョン(Ver2.0.0)が稼働しているものとします。そして、ステージング環境は十分にテストを重ねてリリースが可能となったものとします。

Screen Shot 2019-09-16 at 23.19.34

 

アプリケーションのエンドポイントURLはそのままに、ProductionとStagingをひっくり返します。すると下図のようになり、ユーザーはその後、Ver2.0.0のステージング環境にアクセスするようになります。このときから今までステージング環境だったものは実質上本番環境になります。これが、Blue−Green Deploymentです。

Screen Shot 2019-09-16 at 23.19.59

 

本番環境とステージング環境をひっくり返す手法は、DNSのCNAMEを変更するものだったり、色々あります。

Blue-Greenデプロイメントのメリットは以下のとおりです。

  • 本番環境に近いステージング環境でリリース前に十分テストできる。
  • リリースに伴うダウンタイムがほとんどない。
  • ステップバックが簡単にできる。(もう一度ひっくり返せばよい)

Elastic BeanstalkでBlue-Green Deployment

本来であれば、このBlue-Green Deploymentは、DNSのCNAMEを変更したりと何らかの複雑な作業をする必要がありますが、Elastic Beanstalkの場合、ものすごーく簡単に出来ます。これを実践してみたいと思います。

まず、以下のような2つのPHPのソースコード(hogeと表示するものとfugaと表示するもの)を作成して、同じアプリケーションの中に2つの環境を作成します。環境の作成方法は、「さくっとすぐに始めるAWS Elastic Beanstalk入門 」を参考にして下さい。

<?php
echo "hoge";
?>
<?php
echo "fuga";
?>

以下のようになるはずです。環境名「BlueGrenn-env1」がhogeと表示する方(先の図でいうところのProduction)、「BlueGrenn-env2」がfugaと表示する方(先の図でいうところのStaging)とします。ProductionとStagingを入れ替えてみましょう。期待値としては、BlueGrenn-env1にアクセスするとfugaと表示されるはずです。

Screen Shot 2019-09-16 at 23.20.35

 

2つの環境を表示させた状態で、画面右上の「アクション」をクリックし、さらに「環境URLのスワップ」をクリックします。

Screen Shot 2019-09-16 at 23.20.45

 

「環境に関する詳細」の「環境名」にはProductionに相当する環境名選択します。「スワップする環境の選択」の「環境名」にはStagingに相当する環境名選択します。最後に「スワップ」をクリックします。

Screen Shot 2019-09-16 at 23.21.10

 

すると一瞬でProductionとStagingが切り替わります。試しに環境名BlueGrenn-env1のURLにアクセスすると、fugaと表示されるはずです。

まとめ

本来なら手間のかかるBlue-Green Deploymentがこんなに簡単にできるなんてElastic Beanstalkすごいですね。Elastic Beanstalkバンザーイ。

アバター画像
About 武井 宜行 269 Articles
Microsoft MVP for Azure🌟「最新の技術を楽しくわかりやすく」をモットーにブログtech-lab.sios.jp)で情報を発信🎤得意分野はAzureによるクラウドネイティブな開発(Javaなど)💻「世界一わかりみの深いクラウドネイティブ on Azure」の動画を配信中📹 https://t.co/OMaJYb3pRN
ご覧いただきありがとうございます! この投稿はお役に立ちましたか?

役に立った 役に立たなかった

0人がこの投稿は役に立ったと言っています。


ご覧いただきありがとうございます。
ブログの最新情報はSNSでも発信しております。
ぜひTwitterのフォロー&Facebookページにいいねをお願い致します!



>> 雑誌等の執筆依頼を受付しております。
   ご希望の方はお気軽にお問い合わせください!

Be the first to comment

Leave a Reply

Your email address will not be published.


*


質問はこちら 閉じる