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のインフラ基盤
適用可能なシステム
アーキテクチャの概要とメリット
- 必要なタイミングで検証環境を作成することができるので、コストを最小限にできます。
- 検証が完了し本番環境に切り替えるときは、ロードバランサのプール切り替えのみで対応できるので、システム停止時間を最小にできます。
- ログなどのサーバ固有のデータは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ストレージ上に設置します。
- 対応するデザインパターン
-
【コンテンツ配信】共有ストレージの利用
切り替えが難しいサーバの対応
- 切り替えが難しいサーバは共通サーバとして切り替え対象にはしないように構成します。
- 例えばデータベースサーバを共通サーバとして用意し、検証系作業時に利用する時はレプリケーションで検証用データベースを作成したうえで検証作業を実施します。
- [効果]
-
- サーバのローカルにはデータを持たせないことで、データを気にすることなくシステムの切り替えが可能です。
- 切り替えが難しいサーバは共通サーバとして切り出すことで、システム全体の切り替えを容易に行えるようになります。
- 対応するデザインパターン
-
【データベース】オンラインDBの複製
サーバ固有のデータはサーバ外に配置
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単位。ローカルバックアップ付。 |
※本構成は実際の性能を保証するものではありません。
関連情報
ベストプラクティス
その他のベストプラクティスを探す(一覧へ)