ブルーグリーン・デプロイメント
- 稼働中の環境(ブルー)とは別に新しい環境(グリーン)を構築する。このとき、新しい環境にはエンドユーザーからアクセスできないようにしておく。
- 新バージョンのアプリケーションを新しい環境にデプロイする。
- 新しい環境でテストを行う。
- テスト結果に問題があった場合はアプリケーションを修正し、2に戻って再度デプロイ。問題がなければ新しい環境をエンドユーザーに開放し、古い環境にはアクセスできないようにする。(古い環境の削除はしない)
- エンドユーザーの利用中にアプリケーションの問題が発見された場合は、再度古い環境を開放し、新しい環境にアクセスできないように切り戻す。
メリット
・切り替え・切り戻しのダウンタイムが短い
・本番環境でテストが行える
・デプロイ時にサービスを提供するインスタンス数が減らない
デメリット
・一時的に通常の2倍のリソースが必要となる
ローリングデプロイ
前提条件:稼働中の環境がLBに複数台のインスタンスが接続されていること
- 1台もしくは複数台のインスタンスをロードバランサーから切り離し、切り離したインスタンスに対して新しいアプリケーションをデプロイ。
- 新バージョンのアプリケーションのテストを行う。
- テスト結果に問題があればアプリケーションを修正し、再度デプロイ。問題がなければインスタンスをロードバランサーに接続。
- デプロイを行っていないインスタンスに対しても、順次切り離しとデプロイを繰り返す。
メリット
・切り替え・切り戻しのダウンタイムが短い
・本番環境でテストが行える
・デプロイ時にリソースを増やす必要がない
デメリット
・デプロイ時にサービスを提供するインスタンス数が減る
・新しいアプリケーションと古いアプリケーションが混在するタイミングがある
終わりに
備忘録として投稿します。
切替時に、本番環境がセッション情報持っていて、ELBの切り替えがうまく行かないとかありそうですが、、、どうなのでしょうか。
勉強を進める中で分かったら更新しようと思います。