【ぶるーぐりーんでぷろい】

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

💡 青と緑を切り替えるだけの「スイッチ一発デプロイ」
📌 このページのポイント
Router / LB 切替 Blue 環境 (現行) v1 v1 サーバー群 トラフィックなし Green 環境 (新版) v2 v2 サーバー群 本番トラフィック ルーターがトラフィックをBlueからGreenへ瞬時に切り替える
ブルーグリーンデプロイメントの仕組み
ひよこ ひよこ

ブルーグリーンデプロイって何のためにあるの?

ペンギン先生 ペンギン先生

普通のデプロイは「動いているサーバーを止めて→新しいコードを入れて→再起動」という手順で、その間はサービスが止まる。ブルーグリーンは別の環境で新バージョンを準備しておいて、スイッチ一つで切り替えるからダウンタイムがゼロなんだよ。

ひよこ ひよこ

切り替えた後に問題が出たらどうするの?

ペンギン先生 ペンギン先生

スイッチを元に戻すだけで即ロールバックできる。青→緑に切り替えた後に障害が出たら、数秒で青に戻せる。問題ないことが確認できてから古い青環境を削除するんだよ。

ひよこ ひよこ

2つの環境を用意するって、コストが2倍になるってこと?

ペンギン先生 ペンギン先生

デプロイ期間中は確かに2倍のコストがかかる。でも「切り替え→確認→古い環境を削除」のサイクルを短くすれば、実質的なコスト増はわずかで済む。2倍のコストより「本番で障害を出して復旧する手間」の方がはるかに高くつくという判断だね。

ひよこ ひよこ

DBのスキーマ変更があるときのブルーグリーンってどうするの?アプリとDBが同時に切り替えられないんだけど。

ペンギン先生 ペンギン先生

これがブルーグリーンで一番難しい問題で、「DBはアプリと違って簡単に2つ持てない」んだよね。定番の解決策は「後方互換性のある変更を先にマイグレーションする」パターン。例えば列を追加するなら、まず新列を追加(青も緑もどちらでも動く状態にする)→アプリを緑に切り替え→古い列を削除、という2ステップに分けるんだ。カラムのリネームのような非互換変更は特に難しくて、展開戦略を慎重に設計する必要があるよ。

ペンギン
まとめ:ざっくりこれだけ覚えればOK!
「ブルーグリーンデプロイ」って出てきたら「2つの環境をスイッチで切り替えるダウンタイムなしデプロイのことだな」と思えればだいたいOK!
📖 おまけ:英語の意味
「Blue-Green Deployment」 = 青と緑の2色で表した2環境を使うデプロイ手法
💬 特に深い意味はなく、2つの環境を区別するために任意に選んだ2色。赤・黒などで表現することもあるよ
← 用語集にもどる