よろずやIT
用語辞典

ブルーグリーンデプロイとは?止めずに安全にリリースする方法

執筆・監修:よろずやIT編集部|編集方針を見る

結論:まずここだけ読めばOK

詳しい手順・原因は、この下で解説しています。

用語辞典のイラスト

一言でいうと

ブルーグリーンデプロイとは、「現行の環境(ブルー)」と「新しい版の環境(グリーン)」の2つを用意し、準備ができたら、利用者の向き先を切り替えてリリースする方法です。

名前の由来は、2つの環境を、青と緑の色で区別したことにあります。

たとえ話:舞台の入れ替え

劇場で、同じ舞台のセットを、2つ用意しておくとします。

公演を止めずに、新しい演出に変えられます。これが、ブルーグリーンデプロイの考え方です。

利用者の向き先を、ブルーからグリーンへ切り替えるブルーグリーンデプロイの図解

流れ

段階 内容
① 準備 現行(ブルー)と同じ構成の環境(グリーン)を用意する
② デプロイ グリーンに、新しい版を反映する
③ 確認 グリーンで、動作確認や、テストを行う
④ 切り替え 利用者のアクセスの向き先を、ブルーからグリーンへ切り替える
⑤ 見守る 問題がないかを確認する。あれば、すぐにブルーへ戻す
⑥ 後始末 問題がなければ、古い環境を、一定期間後に整理する

良い点

注意点

注意点 内容
費用 環境が、一時的に2倍必要になる
データベースの変更 新旧の版が、同じデータを扱うため、変更の仕方に工夫が必要
利用中のデータ ログイン状態や、処理の途中のデータが、切り替え時にどうなるか
切り替えの判断 「問題なし」と判断する基準や、元に戻す条件を、事前に決めておく必要がある

特に、データベースの変更が、最も難しい部分です。元に戻せない変更(列の削除など)をしてしまうと、切り戻しができなくなります。そのため、新旧のどちらの版でも動く形で、段階的に変更するのが基本です。

「2つ用意すれば、必ず安全」ではない

ブルーグリーンデプロイは、問題があった時に、元の環境へ戻しやすくなる方法です。しかし、環境を2つ用意すれば、必ず安全になるわけではありません。

リリースの事故を防ぐ基本は、問題が起きてから慌てて調べるのではなく、事前に構成と手順を把握し、起きた時に対応できる状態を作っておくことです。ブルーグリーンは、その手段の一つにすぎません。

他のリリース方法との違い

方法 切り替え方 特徴
ブルーグリーン 環境をまるごと一度に切り替える 戻しやすい。環境が2倍必要
カナリアリリース 一部のユーザーから、少しずつ新版へ誘導する 影響範囲を小さく試せる(カナリアリリースとは)
ローリングアップデート 複数のサーバーを、順番に新版へ入れ替える 追加の環境が少なくて済む。戻すのに時間がかかる
フィーチャーフラグ 機能のオンオフを、設定で切り替える デプロイと公開を、分けて考えられる(フィーチャーフラグとは)

これらは、排他的ではなく、組み合わせて使うことも多くあります。

向いているケースと、向かないケース

向いている 向かない
止まることの影響が大きいサービス 小規模で、短時間の停止が許されるサービス
リリースのたびに、不安がある リリースの頻度が、ごく少ない
環境を、コードで再現できる(同じ構成を、簡単に作れる) 環境の構築が、手作業で、再現が難しい
データベースの変更を、段階的に進められる データ構造を、頻繁に大きく変える

小さく始めるなら、手動での切り替えからでも、考え方は試せます。たとえば、新しい版を、別の場所に置いて確認したうえで、向き先の設定を切り替えるだけでも、ブルーグリーンの利点の一部は得られます。

新しい手法は、「運用できるか」で選ぶ

ブルーグリーンのように、新しいリリースの手法は、魅力的に見えます。しかし技術選定では、**「最新かどうか」より、「5年後も、自分たちで運用できるか」**を見るようにしています。

たとえば、コンテナとVM(仮想マシン)の選択でも、「新しいからコンテナ」ではなく、次のような場合は、VMを続けるほうが、現実的なことがあります。

ブルーグリーンも同じです。切り替えと切り戻しを、実際に行える人と手順があることが、導入の前提です。手順を理解している人が、担当者1人だけという状態では、手法だけが新しくなっても、運用の負債が増えてしまいます(コンテナとVMの違い、フレームワークは「流行っているから」で選ばない)。

導入の前に確認したいこと

リリースの自動化とあわせて考えると、効果が出やすくなります(CI/CDとは)。コンテナの技術(Dockerとは)を使うと、同じ構成の環境を、用意しやすくなります。

まとめ

関連記事:ストラングラーパターンとは

関連記事:DevOpsとは/ロードバランサーとは

PRCircleCI実践入門──CI/CDがもたらす開発速度と品質の両立 【電子書籍】[ 浦井 誠人 ]

CircleCI実践入門──CI/CDがもたらす開発速度と品質の両立 【電子書籍】[ 浦井 誠人 ]

¥3,278

楽天で見る
SHAREXLINEはてブ

よくある質問

Q.ブルーグリーンデプロイと、カナリアリリースの違いは何ですか?

A.ブルーグリーンは、環境をまるごと切り替える方法で、切り替えの瞬間に、全ユーザーが新版に移ります。カナリアリリースは、一部のユーザーだけを、先に新版に誘導し、問題がなければ、徐々に広げる方法です。どちらも、リリースのリスクを減らす目的ですが、段階の踏み方が違います。

Q.データベースを変更する時は、どうすればよいですか?

A.ここが最も難しい点です。新旧の両方のバージョンが、同じデータベースを使うことがあるため、データ構造の変更は、新旧のどちらでも動くように、段階的に行うのが基本です。切り戻す可能性を考え、元に戻せない変更は、慎重に扱う必要があります。

Q.小さなサービスにも必要ですか?

A.必須ではありません。サービスが止まることの影響が大きい場合や、リリースのたびに不安がある場合に、検討する価値があります。まずは、リリースの手順を整え、元に戻す方法を決めておくことから始めるのが現実的です。

関連記事

最新のIT関連書籍 トップ10

PR / 楽天市場の売れ筋ランキングを定期的に取得しています。価格は変動する場合があるため、購入前に各ストアでご確認ください。