1. ホーム
  2. 法人のお客様
  3. クラウド
  4. IIJ GIOベストプラクティス
  5. Blue-Green Deployment

IIJ GIOベストプラクティス - リファレンスアーキテクチャ

Blue-Green Deployment

Blue-Green Deploymentは、検証環境をそのまま本番環境として利用することで、システムの停止時間を最小にするデプロイ手法です。
Blue-Green Deploymentをクラウドで実現するには、容易に検証環境を用意できることや、システムを簡単に切り替えられることが重要です。IIJ GIOインフラストラクチャーP2(以下、IIJ GIO P2)ではBlue-Green Deploymentに最適なクラウドを提供します。

その他の
ベストプラクティス
を探す(一覧へ)

最適な利用シーン

IIJ GIOで実現するBlue-Green Deploymentのインフラ基盤

適用可能なシステム

  • Webサービス

アーキテクチャの概要とメリット

アーキテクチャ概要図

  • 必要なタイミングで検証環境を作成することができるので、コストを最小限にできます。
  • 検証が完了し本番環境に切り替えるときは、ロードバランサのプール切り替えのみで対応できるので、システム停止時間を最小にできます。
  • ログなどのサーバ固有のデータはNASのサービスを利用し、サーバとは別に保管することで、切り替えを容易に行えます。
  • コンテンツなどの共有データはNAS等共有ストレージ上に配置します。また、データベースなどの切り替えが難しいサーバは共通サーバとして別に用意します。

アーキテクチャ解説

必要な時のみサーバを契約することでコストを最適化

取得したカスタムOSイメージを利用することで、本番環境を検証環境へ容易に複製することができます。

必要なタイミングで検証環境を作成

  • バージョンアップや変更作業が必要になったタイミングで、前回作業時に取得したカスタムOSイメージより検証環境を作成します。
  • 検証環境はIIJ GIO P2 パブリックリソースの仮想サーバ(ベストエフォートタイプ)を契約します。ベストエフォートタイプの仮想サーバは起動している時間に応じた課金となるため、作業をしない時は電源をOFFにして無駄な課金を避けられます。
  • 検証完了後、切り替えの前に検証環境のサーバを本番環境相当の適切なスペックに変更します。
  • 切り替え完了後、正常な動作を確認した後に元の環境を解約します。
[効果]
  • カスタムOSイメージを利用することで、容易に検証環境を作成できます。
  • ベストエフォートタイプの仮想サーバを利用し、夜間などの作業しない時間帯にサーバを停止することで、サーバ利用のコストを最適化できます。
システム概要図
対応するデザインパターン

ロードバランサを利用した検証環境と本番環境の切り替え

Blue-Green Deploymentは、検証環境をそのまま新しい本番環境として利用することで、システムの停止時間を最小にします。IIJ GIOではロードバランサを利用して環境の切り替えを行います。

本番環境と検証環境の容易な切り替え

  • 切り替えの前に、データベース等検証用の設備を本番用に切り替えます。この作業では、DNSやアプリケーションの設定値変更が必要になる可能性があります。
  • ロードバランサの新しいプール設定に検証環境のサーバを登録します。その後、現在設定されている本番プールを新しく作成した検証プールに切り替えます。
[効果]
  • 実施する作業はロードバランサのプール切り替えのみとなるので、停止時間を最小限にすることが可能です。
  • 切り替え後に問題が発生した場合は、容易に元のプールへの切り戻しができます。
システム概要図

共通のデータは共通の場所に配置

Blue-Green Deploymentでは基本的にサーバは使い捨てとなるため、固有のデータ(コンテンツなど)を仮想サーバに持たせないことが重要となります。
IIJ GIOはBlue-Green Deploymentの基盤として、各種データの格納場所をサービスで提供します。

共有コンテンツ設置先

  • 共通となる静的コンテンツなどは、IIJ GIO P2 ストレージリソースのNFSストレージ上に設置します。
システム概要図
対応するデザインパターン

切り替えが難しいサーバの対応

  • 切り替えが難しいサーバは共通サーバとして切り替え対象にはしないように構成します。
  • 例えばデータベースサーバを共通サーバとして用意し、検証系作業時に利用する時はレプリケーションで検証用データベースを作成したうえで検証作業を実施します。
[効果]
  • サーバのローカルにはデータを持たせないことで、データを気にすることなくシステムの切り替えが可能です。
  • 切り替えが難しいサーバは共通サーバとして切り出すことで、システム全体の切り替えを容易に行えるようになります。
システム概要図
対応するデザインパターン

サーバ固有のデータはサーバ外に配置

Blue-Green Deploymentでは基本的にサーバは不変(Immutable)となることが重要であるため、固有のデータ(ログなど)を個々のサーバに持たせないことが重要となります。
これは動作するアプリケーションの工夫も必要ですが、IIJ GIOはBlue-Green Deploymentの基盤としてサービスでデータの格納場所を提供します。

固有のデータ保管先

  • IIJ GIO P2 ストレージリソースでは、NFSタイプのNASを提供します。この領域にサーバ固有のデータを配置するようにします。
  • 例えばログファイルは通常、一定期間保持しておく必要がありますが、サーバごとにログを保持している場合、切り替えのタイミングでログはすべて失われてしまいます。ログ保管先をNASにすることで、サーバを切り替えた際にもログを失うことはありません。
[効果]
  • サーバ固有のデータをNASに外部保管することで、サーバに状態を持たせなくてすみます。これによりサーバを容易に切り替えることが可能になります。
システム概要図

構成サンプル

サンプル例

用途 サービス品目 数量 備考
本番系Webサーバ IIJ GIOインフラストラクチャーP2 パブリックリソース VG4-12 2
S30GB/CentOS 7 :64bit 2
本番系APサーバ VG4-12 2
S30GB/CentOS 7 :64bit 2
検証系Webサーバ VB2-6 2
S30GB/CentOS 7 :64bit 2
検証系APサーバ VB2-6 2
S30GB/CentOS 7 :64bit 2
データベースサーバ VG4-24 2
S30GB/CentOS 7 :64bit 2
G1000GB:IOPS5000 2
検証用データベースサーバ VB4-12 1
S30GB/CentOS 7 :64bit 1
B1000GB 1
FW+LB FW+LB/D 100Mbps 1
ネットワーク プライベートネットワーク/V 2
アーカイブ ストレージアーカイブオプション 24 1契約あたり10GB分
コンテンツ用NAS IIJ GIOインフラストラクチャーP2 ストレージリソース プライマリNFSサーバ 1
プライマリNFSサーバ(帯域) 10 10Mbps単位
NFSボリューム PL 10 100GB単位。ローカルバックアップ付。

※本構成は実際の性能を保証するものではありません。

関連情報

ベストプラクティス
その他のベストプラクティスを探す(一覧へ)