【IT用語】ブルーグリーンデプロイメント

ブルーグリーンデプロイメント(Blue-Green Deployment)は、システムの新しいバージョンを安全に切り替えるための手法です。
「稼働中の環境(Blue)」と「新しい環境(Green)」の2つを用意して、切り替えによってダウンタイムやリスクを最小化します。


基本の流れ

  1. Blue環境(現行環境)
    ユーザーが現在アクセスしている安定した稼働中の環境。
  2. Green環境(新環境)
    新しいアプリケーションや設定をデプロイしてテストする環境。
    ここでは実際のユーザートラフィックはまだ流れない。
  3. 切り替え
    Green環境が正常に動くと確認できたら、ロードバランサーやDNS設定を切り替えて、ユーザーのアクセスをBlueからGreenへ移す。
  4. ロールバックが簡単
    万が一トラブルが起きたら、再びBlue環境に戻すだけで元に戻せる。

例で理解する

たとえば「オンラインショップ」のシステムを更新するケースを考えます。

  • Blue環境: 現在稼働している「バージョン1」のショップサイト。お客様は普通に買い物している。
  • Green環境: 開発チームが新しく作った「バージョン2」のサイトをデプロイし、動作確認している。
  • 切り替え: 問題ないと確認できたタイミングで、ロードバランサーを切り替えてGreen環境に本番トラフィックを流す。
  • トラブル時: もしバージョン2で決済エラーが発生しても、切り替えをBlueに戻せばすぐに「バージョン1」で稼働できる。

メリット

  • ダウンタイムをほぼゼロにできる
  • 問題があっても即座に元に戻せる
  • 新しい環境で事前にテストできる

イメージ図(シンプルな概念図)

        [利用者]
           │
      ┌────┴────┐
      │ロードバランサ│
      └────┬────┘
           │
   ┌───────┴────────┐
   │                        │
[Blue環境]          [Green環境]
 (現行Ver1)           (新Ver2)

ロードバランサーが、普段はBlue環境に流しているリクエストを、タイミングを見てGreen環境に切り替えるイメージです。

また、リリース手法として、カナリアリリースというものもあります。

カナリアリリース

  • 仕組み: 新しいバージョンを少数のユーザーだけに段階的に公開し、問題がなければ範囲を広げていく。
  • イメージ: 「炭鉱のカナリア」から来ていて、危険(バグ)を最初に見つけるために少人数で試す方法。
  • :
    1. まず新しいバージョンを社内の10人だけに使わせる
    2. 問題がなければ全体の10%ユーザーに展開
    3. 最終的に100%へ展開
  • メリット:
    • 問題があっても影響範囲を小さくできる
    • 本番ユーザーを使った「実地テスト」が可能
  • デメリット:
    • 段階的に展開するためリリース完了まで時間がかかる
    • Blue-Greenのように一瞬でロールバックできないケースもある

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

  • 仕組み: 2つの環境(Blue=現行、Green=新環境)を用意し、トラフィックを丸ごと切り替える。
  • イメージ: 「一気に道路を切り替える」ような感じ。旧道路(Blue)を閉じて、新しい道路(Green)に全ての車を流す。
  • メリット:
    • 切り替えが速い(即座に全ユーザーが新環境へ)
    • 問題があればすぐ元に戻せる
  • デメリット:
    • 2つの環境を常に用意するコストがかかる
    • 問題があった場合、すべてのユーザーに影響する

🚀 例で比べる

  • ブルーグリーン:
    ネットショップを「旧デザイン」から「新デザイン」に切り替えるとき、一斉に全顧客が新デザインに移る。問題があれば一瞬で戻せる。
  • カナリアリリース:
    まず社内テストユーザーや特定の地域の顧客だけ新デザインにして、問題がなければ徐々に全体に広げる。

まとめ

  • ブルーグリーン → 「一気に切り替え」「戻すのも一瞬」
  • カナリア → 「少しずつ展開」「影響範囲をコントロール」