※ 本記事は、Suraj Rameshによる”OCI Full Stack Disaster Recovery Support for OCI Load Balancer“を翻訳したものです。
2023年12月20日
OCI Full Stack Disaster RecoveryでDR保護グループのメンバーとして「OCI Load Balancer」を追加する新機能を発表できることを嬉しく思います。
OCI Full Stack Disaster Recovery (Full Stack DR)は、インフラストラクチャ、データベース、アプリケーションなど、フルスタック・クラウド・アプリケーションのすべてのレイヤーに対して、完全に自動化された包括的なディザスタ・リカバリ・オーケストレーション・ソリューションを提供します。Full Stack DRを使用すると、OCIリージョン全体または同じリージョン内の複数の可用性ドメインにわたってフル・スタック・アプリケーションをリカバリできます。

OCI Load Balancerの概要
OCI Load Balancerは、単一のアクセス・ポイントから、仮想クラウド・ネットワーク(VCN)内でアクセス可能な多数のサーバーへの自動トラフィック分散を提供します。使用可能なロード・バランサには2つのタイプがあることに注意してください。
Load Balancer – 高度で柔軟なオプションでネットワーク・トラフィックをルーティングするレイヤー4およびレイヤー7 (TCPおよびHTTP)のロード・バランシングを提供します。ロード・バランシングにより、リソース使用率が向上し、スケーリングが容易になり、高可用性の確保に役立ちます。Load Balancerはパブリックまたはプライベートにできることに注意してください。
Network Load Balancer – レイヤー3およびレイヤー4 (TCP/UDP/ICMP)ワークロードのパススルー・ロード・バランシングを実行する非プロキシ・ロード・バランシング・ソリューションを提供します。レイヤー4 ロード・バランサは、パケットの内容を調べることなく、アップストリーム・サーバーとの間でネットワーク・パケットを転送します。Network Load Balancerはパブリックまたはプライベートにできることに注意してください。
Load BalancerとFull Stack DRの統合
OCI Load Balancerを保護グループのメンバーとして追加する新機能により、Full Stack DRは、DRオーケストレーション用のLoad BalancerとNetwork Load Balancerの両方に対する組込みサポートを提供します。
前提条件として、プライマリ・リージョンとスタンバイ(DR)リージョンの両方でロード・バランサをプロビジョニングおよび構成します。次に、Load Balancerを設定するステップの概要を示します。
- VCNおよびその他の関連ネットワーキング関連リソースの作成
- ロード・バランサ・タイプ(パブリックまたはプライベート)、IPアドレスおよびシェイプを使用したロード・バランサまたはネットワーク・ロード・バランサのプロビジョニング
- バックエンド・セット、ロード・バランシング・ポリシーおよびヘルス・チェック・ポリシーの構成
- リスナーの構成、アクセスおよびエラー・ログの有効化
- 目的のトラフィックを許可するようにロード・バランサ・サブネット・セキュリティ・ルールを構成
- オプションで、リスナーをSSLサーバー証明書バンドルに関連付けて、システムがSSLトラフィックを処理する方法を管理します。
詳細は、OCI Load BalancerおよびNetwork Load Balancerのドキュメントを参照してください。
OCI Full Stack DRは、構成されるDR計画のタイプ(スイッチオーバー、フェイルオーバー、開始および停止ドリル)に基づいて、ロード・バランサ・バックエンド・セットの組込み計画グループおよびステップを自動的に生成します。DR保護グループにComputeをメンバー・タイプとして追加する場合、コンピュートを移動インスタンスまたは非移動インスタンスとして追加することを選択します。既存のDR保護グループ・ペアのOCI Load Balancerを統合するために実行する必要があるステップの概要を次に示します。
- ロード・バランサをプライマリおよびスタンバイ(DR)保護グループのメンバーとして追加します。
- プライマリおよびスタンバイDR保護グループのメンバーとして、依存コンピュート(移動および非移動)インスタンスを追加します。
- スタンバイ(DR)保護グループにスイッチオーバー、フェイルオーバー、ドリル開始およびドリル停止計画を作成します。
- Full Stack DRは、選択したプラン・タイプおよびプラン・メンバー・オプションに応じて、プラン・グループを自動的に生成
- DR計画の実行中、移動インスタンスの場合、バックエンド・サーバーはバックエンド・セットから削除/追加されます。非移動インスタンスの場合、バックエンド・セットでは、バックエンド・サーバーのドレイン状態/オフライン状態がtrue/falseに設定されます。
- インスタンスの移動オプションと非移動オプション用に個別のバックエンド・セットを作成します。同じバックエンド・セット内で移動インスタンスと非移動インスタンスを混在させて一致させることはできません。
OCI Load Balancerのバックエンド・セットおよびバックエンド・サーバーの概念を理解しましょう。
バックエンド・セット – バックエンド・セットは、ロード・バランシング・ポリシー、ヘルス・チェック・ポリシーおよびバックエンド・サーバーのリストによって定義された論理エンティティです。
バックエンド・サーバー – バックエンド・サーバーは、バックエンド・セットに追加されるコンピュート・インスタンスです。ロード・バランサは、バックエンド・セットに指定されたポリシーに基づいて、受信トラフィックをこれらのバックエンド・サーバーにルーティングします。
Full Stack DRは、移動インスタンスのバックエンド・セットを更新するために、次のプラン・グループおよびステップを自動的に生成します。
- バックエンドの削除 – プライマリ・ロード・バランサのバックエンド・セットからバックエンド・サーバーを削除します。
- バックエンドの追加 – バックエンド・サーバーをスタンバイ・ロード・バランサのバックエンド・セットに追加します。
Full Stack DRは、非移動インスタンスのバックエンド・セットを更新するために、次のプラン・グループおよびステップを自動的に生成します。
- ドレイン状態 – サーバーのドレイン・ステータスをtrueに設定すると、プライマリ・ロード・バランサは、このバックエンド・サーバーへの新しいTCP接続およびスティッキーではない新しいHTTPリクエストの転送を停止します。この設定により、管理者は保守目的でサーバーをローテーションから外すことができます。サーバーのドレイン・ステータスをfalseに設定すると、スタンバイ・ロード・バランサでトラフィックが許可されます。
- オフライン状態 – サーバーのオフライン・ステータスをtrueに設定すると、プライマリ・ロード・バランサは、このバックエンド・サーバーにイングレス・トラフィックを転送しません。サーバーのオフライン・ステータスをfalseに設定すると、スタンバイ・ロード・バランサはトラフィックを転送します。
ロード・バランサ計画グループのステップと、すべてのDR計画タイプのステップのサマリーを次に示します。
移動インスタンス:
| DR Plan |
プライマリ |
スタンバイ |
| Switchover |
バックエンド・セットからバックエンドを削除 |
バックエンド・セットへのバックエンドの追加 |
| Failover |
NA |
バックエンド・セットへのバックエンドの追加 |
| Start Drill |
NA |
バックエンド・セットへのバックエンドの追加 |
| Stop Drill |
NA |
バックエンド・セットからバックエンドを削除 |
非移動インスタンス用:
| DR Plan |
プライマリ |
スタンバイ |
| Switchover |
バックエンド・セットのバックエンドのオフライン状態をtrueにドレインして設定 |
バックエンド・セットのバックエンドのオフライン状態をドレインし、falseに設定 |
| Failover |
NA |
バックエンド・セットのバックエンドのオフライン状態をドレインし、falseに設定 |
| Start Drill |
NA |
バックエンド・セットのバックエンドのオフライン状態をドレインし、falseに設定 |
| Stop Drill |
NA |
バックエンド・セットのバックエンドのオフライン状態をtrueにドレインして設定 |
ステップバイステップの例
この例では、アッシュバーン(IAD)がプライマリ・リージョン、フェニックス(PHX)がDRリージョンです。移動仮想マシンのトポロジと移動しない仮想マシンのトポロジの両方を使用します。

次のリソースをプロビジョニングおよび構成しました。
- IADリージョンに2つのVM (instance-1およびinstance-2)を作成します。これら2つのVMは、インスタンスをIADからPHXに移動しています。
- IADリージョンにVM (non-moving-iad)を作成します。このVMは非移動インスタンスです。
- 仮想マシンinstance-1およびinstance-2のブート・ボリュームについて、IADリージョンにクロス・リージョン・レプリケーション(IADからPHX)を使用するボリューム・グループ(vg-inst)を作成します。
- 必要な構成を使用して、IADリージョンにロード・バランサ(lbr-iad)を作成します。バックエンド・セット(iad-moving-bset)を作成し、VM (instance-1およびinstance-2)をバックエンド・サーバーとして追加します。バックエンド・セット(iad-non-moving-bset)を作成し、VM (non-moving-iad)をバックエンド・サーバーとして追加します。
- PHXリージョンにVM (non-moving-phx)を作成します。このVMは非移動インスタンスです。
- 必要な構成で、PHXリージョンにロード・バランサ(lbr-phx)を作成します。バックエンド・セット(phx-moving-bset)のみを作成します。バックエンド・セット(phx-non-moving-bset)を作成し、VM (non-moving-phx)をバックエンド・サーバーとして追加します。

詳細は、OCI Compute、Block Storage、OCI Load BalancerおよびNetwork Load Balancerのドキュメントを参照してください。
このDRトポロジのDR計画を作成します。
1.DR保護グループの作成および関連付け、移動および非移動コンピュートおよびボリューム・グループをメンバーとして追加
- アッシュバーン(IAD)リージョンで、DR保護グループを「lbr-iad-drpg」として作成します。
- フェニックス(PHX)リージョンで、DR保護グループを「phx-iad-drpg」として作成します。
- 「lbr-iad-drpg」DR保護グループをプライマリ役割として、および「lbr-phx-drpg」DR保護グループをスタンバイ役割として関連付けます。
- 「lbr-iad-drpg」DR保護グループで、移動インスタンス・オプションで2つのコンピュート・インスタンス(instance-1およびinstance-2)をメンバーとして追加します。
- 「lbr-iad-drpg」DR保護グループで、非移動インスタンス・オプションでコンピュート・インスタンス(non-moving-iad)をメンバーとして追加します。
- 「lbr-phx-drpg」DR保護グループで、非移動インスタンス・オプションでコンピュート・インスタンス(non-moving-phx)をメンバーとして追加します。
詳細は、OCI Full Stack DRのドキュメントおよびFull Stack DR move VMチュートリアルを参照してください。
2.ロード・バランサをメンバーとして追加
- 「lbr-iad-drpg」DR保護グループで、ロード・バランサとしてリソース・タイプを選択し、追加するメンバーとして「lbr-iad」を選択します。
- ソース・バックエンド・セットおよび宛先バックエンド・セットのマッピングを指定します。
- ソース・バックエンド・セットを「iad-moving-bset」に、宛先バックエンド・セットを「phx-moving-bset」に選択します。
- +をクリックして、別のバックエンド・セット・マッピングを追加
- ソース・バックエンド・セットを「iad-non-moving-bset」に、宛先バックエンド・セットを「phx-non-moving-bset」に選択します。これは非移動コンピュート・インスタンス用であるため、「Is for non-movable-compute instance only」チェック・ボックスを選択する必要があります。
- 入力を確認し、「Add」をクリック

- 「lbr-phx-drpg」DR保護グループで、ロード・バランサとしてリソース・タイプを選択し、追加するメンバーとして「lbr-phx」を選択します。
- 宛先ロード・バランサで、宛先ロード・バランサを「lbr-iad」として選択します。
- ソース・バックエンド・セットおよび宛先バックエンド・セットのマッピングを指定します。
- ソース・バックエンド・セットを「phx-moving-bset」として、宛先バックエンド・セットを「iad-moving-bset」として選択します。
- +をクリックして、別のバックエンド・セット・マッピングを追加
- ソース・バックエンド・セットを「phx-non-moving-bset」として、宛先バックエンド・セットを「iad-non-moving-bset」として選択します。これは非移動コンピュート・インスタンス用であるため、「Is for non-movable-compute instance only」チェック・ボックスを選択する必要があります。
- 入力を確認し、「Add」をクリック

3.「lbr-iad-drpg」と「lbr-phx-drpg」のメンバーを確認


4. DR計画の作成ステップ
フェニックス・リージョンの「DR保護グループ」ページにナビゲートします。
- 「lbr-phx-drpg」DR保護グループで、「Create Plan」ボタンをクリックします。
- プランの名前として「Switchover-IAD to PHX」を指定します。
- プラン・タイプとして「Switchover」を選択します。
- 「Create」をクリックして、スイッチオーバー計画の作成を終了します。
- 同様に、「Failover-IAD to PHX」としてフェイルオーバー計画を作成し、「Start Drill-PHX」としてドリル計画を開始
- 「Start Drill-PHX」計画の実行が成功しないかぎり、Full Stack DRではドリル停止計画を作成できません。
3つのプランすべてをアクティブとして表示できます。

5.作成した「Switchover-IAD to PHX」プランを見てみましょう。

Full Stack DRでは、DR保護グループに追加したメンバーに基づいて、複数の組込み計画グループが作成されています。ロード・バランサの組込み計画グループを確認できます。プランをカスタマイズし、独自のユーザー定義プラン・グループを追加するオプションがあります。ただし、この例では、このスイッチオーバー・ドリル・プランはカスタマイズしません。
- ソース・ロード・バランサのバックエンド・セットの更新 – バックエンド・セット「iad-moving-bset」からバックエンド・サーバー(instance-1 an instance-2)を削除し、バックエンド・セット「iad-non-moving-bset」でバックエンド・サーバー(non-moving-iad)ドレイン状態およびオフライン状態をtrueに設定
- ターゲット・ロード・バランサのバックエンド・セットの更新- バックエンド・セット「phx-moving-bset」にバックエンド・サーバー(新しく起動されたVM)を追加し、バックエンド・セット「iad-non-moving-bset」でバックエンド・サーバー(non-moving-phx)のドレイン状態およびオフライン状態をfalseに設定
6.「Switchover-IAD to PHX」プランの事前チェックを実行します。

しばらくすると、「Switchover-IAD to PHX」事前チェック計画の実行が成功します。

7.次に、「Switchover-IAD to PHX」計画を実行し、ステータスを監視します。

しばらくすると、「Switchover-IAD to PHX」計画の実行が成功します。

8.IADリージョンでロード・バランサ・バックエンド・セットを確認します。バックエンド・サーバーは「iad-moving-bset」から削除され、バックエンド・サーバーは「iad-non-moving-bset」でドレイン/オフライン・ステータスが「true」に設定

9.PHXリージョンのロード・バランサ・バックエンド・セットを確認します。バックエンド・サーバーは「phx-moving-bset」に追加され、バックエンド・サーバーのドレイン/オフライン・ステータスは「iad-non-moving-bset」でfalseに設定

まとめ
Full Stack Disaster Recovery (DR)は、OCI Load BalancerとNetwork Load Balancerの両方に対する組込みサポートを提供し、完全なビジネス・アプリケーションのコンテキストでこれらのコンポーネントのリカバリ・プロセスを簡素化します。この自動化により、障害または停止が発生した場合のOCI Load Balancerのリカバリが合理化され、アプリケーションの継続的な機能および可用性が保証されます。
その他のリソース
Full Stackディザスタ・リカバリの開始に役立つ追加リソースを次に示します:
