ブルーグリーンデプロイメント - 停止時間と切り戻しリスクを抑えるリリース

8分 で読める | 2025.01.10

公式ドキュメント

ブルーグリーンデプロイメントとは

現在稼働中のBlueを残し、新版Greenを検証してからトラフィックを切り替え、データ互換性がある間はBlueへ切り戻せる図

ブルーグリーンデプロイメントは、現在公開中の環境(Blue)を残したまま、新版(Green)を別に用意してからトラフィックを切り替える方法です。切り替えで停止時間を小さくできる可能性はありますが、無条件にゼロダウンタイムや即時ロールバックを保証するものではありません。

基本の流れ

  1. Greenへ新しいアプリを配置する
  2. ヘルスチェック、主要な操作、監視をGreenで確認する
  3. ルーティングやロードバランサーを切り替える
  4. エラー率、遅延、主要な業務指標を観測する
  5. 互換性が保たれる期間だけBlueを残す

ロールバックで戻せるもの・戻せないもの

アプリのトラフィックはBlueへ戻せても、データベースへの書き込み、外部メール送信、決済、キューの消費は自動では元に戻りません。Greenが新しい形式でデータを書いた後にBlueへ戻すなら、Blueもそのデータを読める必要があります。

そのため、データベース変更は新旧アプリが共存できるExpand/Contractで先に行います。アプリ切り替えと破壊的なスキーマ削除を同じタイミングにしません。

切り替え前に確認すること

  • Greenが本番に近い設定、秘密情報、権限、外部接続を持つか
  • セッション、キャッシュ、アップロード先をどう共有または分離するか
  • 接続を維持している利用者をどう扱うか
  • Greenで作成されたデータをBlueが読めるか
  • どの指標で中止または切り戻しを判断するか

カナリアリリースとの違い

Blue/Greenは環境を切り替える方法、カナリアは利用者の一部へ段階的に配る方法です。二つを組み合わせることもできます。環境を二重化するコストと、利用者ごとに段階配信したいかで選びます。

まとめ

Blue/Greenは、切り替える前に新環境を検証できる点が強みです。真の難しさは状態を持つデータと外部副作用にあるため、データ互換性、監視、切り戻せない操作を先に設計します。

参考リソース

関連記事

← 一覧に戻る
PR
PR
PR
PR