4
2

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?

OCI Full Stack Disaster Recovery (FSDR) が Load Balancer 対応になったので試してみた

Last updated at Posted at 2024-03-08

FSDRのLB対応について

OCI Full Stack Disaster Recovery (FSDR)は、2022年11月からOCIで利用ができるようになった Disaster Recovery as a Service (DRaaS)です。

2023年12月からはこのFSDRがLoad Balancer対応になり、DR対象のメンバとしてLoad Balancerが追加できるようになったのでLoad BalancerとコンピュートVM2台構成のシステムをFSDRのメンバーに追加し東京とソウルのリージョンを使って実際にDRさせて使ってみます。

image.png

事前準備

FSDRについては

フル・スタックの障害時リカバリを使用したOCIリージョン間での仮想マシンの移動
https://docs.oracle.com/ja/learn/full-stack-dr-to-move-vm/#introduction

などを参照し、事前にプライマリ・リージョン、スタンバイ・リージョンの両方

  • コンパートメント
  • VCN
  • サブネット
  • セキュリティ・リスト
  • オブジェクト・ストレージ・バケットの作成
  • Load Balancer
  • DR保護グループ

を準備する必要があります。
加えて、

  • コンピュートVMの準備
  • ボリューム・グループの準備

が必要です。

ちょっと準備が面倒だなと思った人は
こちらをこのまま実行していただければ、準備が整いますのでやってみてください。
OCI Load Balancer と Oracle Linux 9 でロードバランシングを体験
https://qiita.com/Assemble_EX-80/items/09d552f69e8b60e6f804

DR保護グループに関しては次のセクションで記述します。ここではコンピュートVMの準備とボリュームグループの準備について少し触れます。

  • コンピュートVMの準備

プライマリ・リージョンでコンピュートのVMをプロビジョニングします。VMをDR保護グループのメンバーとして追加するとき、移動インスタンス として追加するか、非移動インスタンス としてメンバーに追加するかを選択する必要があります。

移動インスタンスとしてメンバーに追加する場合はスタンバイリージョンにはVMインスタンスを用意しておく必要はありませんDR計画を実施することによりVMはスタンバイリージョンに移動し、指定のLoad Balancerのバックエンドセットに追加されます。

image.png

  • ボリュームグループの準備(とレプリケーション)

移動インスタンスを利用する場合は、事前にプライマリ・リージョンで、ボリュームグループを作成しておき、移動インスタンスとするVMのブートボリュームをボリュームグループに追加ボリュームグループはスタンバイ・リージョンに向けてレプリケーションさせておく必要があります。

ボリューム・グループ・レプリケーション に関しての詳細は、こちらのマニュアルを参照
https://docs.oracle.com/ja-jp/iaas/Content/Block/Concepts/volumegroupreplication.htm

実際の設定はこちらを参照
その5 オブジェクト・ストレージ、ブロック・ボリューム 作成・設定
https://qiita.com/Assemble_EX-80/items/b846a3ac8aa8de71301a

ボリューム・グループ設定

ボリューム・グループ

名前: vg_01
クロス・リージョン・レプリケーション: オン
ターゲット・リージョン: South Korea Central (Seoul)
ターゲット可用性ドメイン: TGjA:AP-SEOUL-1-AD-1
ブート・ボリューム
 instance-A1-01 (Boot Volume)   <--- instance-01 のブートボリュームを追加
 instance-E4-02 (Boot Volume)   <--- instance-02 のブートボリュームを追加

image.png

移動インスタンスとLoad Balancerを含むDR構成

今回は、上位に Load Balancerを配置、Load Balancerのバックエンドセットに2台のWebサーバのコンピュートVMが配置され動作しているWebシステムのDRを想定します。

東京とソウル、2つのリージョン利用のDR構成で、コンピュートVMは移動インスタンス としてFSDRのメンバに追加、DRaaS機能を動作させてみます。

image.png

VCNオブジェクトストレージVMLoad Balancerの作成方法についてはここでは触れませんが、事前に以下のような設定がされている想定です。

ここで用いるVCNオブジェクトストレージVMLoad Balancerをステップバイステップで準備ができるような記事をこちらに用意しましたのでご参照ください。
OCI Load Balancer と Oracle Linux 9 でロードバランシングを体験
https://qiita.com/Assemble_EX-80/items/09d552f69e8b60e6f804

Tokyo Region 設定情報

VCN
名前: vcn01
 IPv4 CIDRブロック: 10.0.0.0/16
public_subnet
 IPv4 CIDRブロック: 10.0.0.0/24
private_subnet
 IPv4 CIDRブロック: 10.0.1.0/24
セキュリティーリスト
 イングレスルール 追加
  ソースCIDR: 0.0.0.0/0
  宛先ポート範囲: Port 80,433
インターネット・ゲートウェイ
 internet_gw01
デフォルトルート
 internet_gw01
オブジェクト・ストレージ
 バケット 名前: bucket-01
VM
 instance-01
  Private IP: 10.0.0.101  
 instance-02
  Private IP: 10.0.0.102
Load Balancer
 名前: lb_01
 バックエンド・セット: bs_lb_01
 バックエンド: instance-01, instance-02

Seoul Region 設定情報

VCN
名前: vcn01_icn
 IPv4 CIDRブロック: 192.168.0.0/16
public_subnet
 IPv4 CIDRブロック: 192.168.0.0/24
private_subnet
 IPv4 CIDRブロック: 192.168.1.0/24
セキュリティーリスト
 イングレスルール 追加
  ソースCIDR: 0.0.0.0/0
  宛先ポート範囲: Port 80,433
インターネット・ゲートウェイ
 internet_gw01_icn
デフォルトルート
 internet_gw01
オブジェクト・ストレージ
バケット 名前: bucket-01-icn
VM
 instance-0
  Private IP: 10.0.0.203 
 instance-04
  Private IP: 10.0.0.204
Load Balancer
 名前: lb_01
 VCN: vcn01_icn
 バックエンド・セット: bs_lb_01_icn

VMの設定、Load Balancerの設定をテスト

VMにWebサーバ(apache+php等)を設定して、Load Balancerのバックエンドに配置、簡単にテストしてみましょう。トラフィック・分散ポリシーを 重み付けラウンド・ロビンにして、Load BalancerのパブリックIPにアクセスすると、アクセスするたびに違うサーバへアクセスに行っているのが確認できます。

プライマリリージョンの東京リージョンに、ネットワーク、VM、Load Balancerを配置して、アクセスして接続をテストしてみました。
移動インスタンスを利用する場合は、スタンバイ・リージョンとなるソウルリージョンにはVMはスタンバイさせる必要はありませんが、念のためLoad Balancerの動作テストは実施しました。(テスト後は不要なVMはLoad Balancerバックエンドから削除等しておきます。)

image.png

ブラウザで Load Balancer パブリック IP 131.186.61.113(例) にアクセスし、リロードすると Server IP が 10.0.0.101と、10.0.0.102 と交互に表示されトラフィック・分散ポリシーの設定通りバックエンドサーバにアクセスしていることがわかります。

image.png

ここまでが事前準備となります。

FSDRのDRメンバーに、Load BalancerとVMを移動インスタンスとして追加する。

DR保護グループ設定

プライマリ・リージョン、スタンバイ・リージョン両方でDR保護グループを作成する

DR保護グループ作成時に、ロールを指定する必要はありません。プライマリ・リージョン、スタンバイ・リージョン両方でDR保護グループを作成します。

Tokyo Region(プライマリ側)DR保護グループ名: FSDR01_NRT
Seoul Region(スタンバイ側)DR保護グループ名: FSDR01_ICN

としてDR保護グループを作成します。

Tokyo Region(プライマリ側)

image.png

Seoul Region(スタンバイ側)

image.png

DR保護グループ関連付けをする

プライマリ・リージョン、スタンバイ・リージョンどちらかのDR保護グループから [関連付け] ボタンを押し、ロールピア・リージョンピアDR保護グループを指定し、お互いの関連付けを行います。プライマリ・リージョン、スタンバイ・リージョンのどちら側からでもこの操作は可能なようでした。

ここでは、東京リージョンから、DR保護グループFSDR01_NRTを選び、[関連付け] ボタンを押します。

image.png

次に保護グループ FSDR01_NRT のロールピア・リージョンピア保護グループを選択、設定を行います。

ロール: プライマリ
ピア・リージョン: South Korea Central(Seoul)
ピアDR保護グループ FSDR01_ICN

として、関連付けを完了します。
最後にダイアログの下の方にある [関連付け] ボタンを押すと関連付けが行われます。

image.png

関連付け完了

関連付けが完了しDR保護グループの詳細を見ると、ピアDR保護グループ に対になるDR保護グループ、ピア・リージョン に対になるリージョンが表示されていることが確認できます。
image.png

DR保護グループからも対になっているDR保護グループやリージョンが確認できます。
image.png

ボリュームグループ、VM、Load Balancerリソース追加

こちらのドキュメントを参考にDR保護グループのメンバーにリソースを追加します。

ディザスタ・リカバリ保護グループへのメンバーの追加
https://docs.oracle.com/ja-jp/iaas/disaster-recovery/doc/add-members-protection-group.html

FSDR Load Balancer の追加についての Document
https://support.oracle.com/knowledge/Oracle%20Cloud/2984602_1.html

OCI Full Stack Disaster RecoveryによるOCI Load Balancerのサポート
https://blogs.oracle.com/oracle4engineer/post/ja-fullstackdr-support-load-balancer

プライマリ・リージョンDR 保護グループの詳細 画面上、左側のメニューの Resources から [メンバー] をクリックし、[メンバーの追加] をクリックでリソース追加ができます。

ここでは先程作成した DR 保護グループ FSDR01_NRT を選び 左下の [メンバー] メニューをクリック。

[メンバーの追加] ボタンをクリックし ボリューム・グループVMLoad Balancer リソースを追加していきます。

image.png

ボリューム・グループ追加

メンバーの追加

リソース・タイプ:[ボリューム・グループ] を選択

image.png

画面が下のように遷移する

☑ チェックボックスチェック
すべての既存プランが削除されることを承認します に同意する。

リソース・タイプ: ボリューム・グループ
ボリューム・グループ: vg_01

を選択します。

image.png

ボリューム・グループ追加確認

ボリューム・グループ が正しくメンバーとして追加されていることを確認します。

image.png

VM追加

1つ目のVMをメンバーに追加(移動インスタンス)

メンバーの追加

リソース・タイプ: コンピュート
を選択

image.png

画面が下のように遷移する

☑ チェックボックスチェック
すべての既存プランが削除されることを承認します に同意する。

リソース・タイプ: コンピュート
インスタンス: instance-01
コンピュート・インスタンス・タイプ: 移動インスタンス

を選択する。

image.png

VNIC マッピング

[VNICマッピング] ボタンを押す。
VNICマッピングのダイアログが表示される。

VNIC: instance-01
宛先VCN: vcn01_icn
宛先のサブネット: public_subnet(リージョナル)
宛先のプライマリ・プライベートIPアドレス: 192.168.0.101

[追加] ボタンを押してVNIC情報の追加を行います。

image.png

設定確認とVM追加

必要な情報が問題なく設定されている事を確認し [追加] ボタンを押してVMの追加を行います。
image.png

2つ目のVMをメンバーに追加(移動インスタンス)

追加の手順は1つ目と同じなので省略します。

☑ チェックボックス を チェック
リソース・タイプ: コンピュート
インスタンス: instance-02
コンピュート・インスタンス・タイプ: 移動インスタンス

VNIC マッピング
VNIC: instance-02
宛先VCN: vcn01_icn
宛先のサブネット: public_subnet(リージョナル)
宛先のプライマリ・プライベートIPアドレス: 192.168.0.102

設定確認とVM追加
必要な情報が問題なく設定されている事を確認し [追加] ボタンを押してVMの追加を行います。
image.png

VM追加確認

2つのVMが コンピュート・インスタンス(移動) メンバーとして正しく追加されていることを確認します。

image.png

プライマリ・リージョンで Load Balancer 追加

メンバーの追加

リソース・タイプ: [ロード・バランサー] を選択

image.png

画面が下のように遷移する

☑ チェックボックスチェック
すべての既存プランが削除されることを承認します に同意する。

リソース・タイプ: [ロード・バランサー]
ロード・バランサ: lb_01
宛先ロード・バランサ: lb_01_icn
ソース・バックエンド・セット: bs_lb_01
宛先バックエンド・セット: bs_lb_01_icn

[追加] ボタンを押してLoad Balancerの追加を行います。

image.png

Load Balancer 追加確認

Load Balancer が正しくメンバーとして追加されていることを確認します。

image.png

必要なリソースがメンバーに追加されているか確認

lb_01 ロード・バランサ
vg_01 ボリューム・グループ
instance-02 コンピュート・インスタンス(移動)
instance-01 コンピュート・インスタンス(移動)

全てリソースが登録されており、状態に問題ないことを確認します。

image.png

ここまで問題なければ、スタンバイ・リージョンに移動して、スタンバイ・リージョン側の DR保護グループのメンバー設定に入ります。

スタンバイ・リージョンで Load Balancer 追加

リージョン: South Korea Central(Seoul) に行き
左上のナビゲーションメニューから [移行とディザスタ・リカバリ] をクリック
DR保護グループ: FSDR01_ICN
をクリックして開きます。

image.png

メンバーの追加

リソース・タイプ: [ロード・バランサー] を選択

image.png

画面が下のように遷移する

☑ チェックボックスチェック
すべての既存プランが削除されることを承認します に同意する。

リソース・タイプ: [ロード・バランサー]
ロード・バランサ: lb_01_icn

宛先ロード・バランサ: lb_01
ソース・バックエンド・セット: bs_lb_01_icn
宛先バックエンド・セット: bs_lb_01

最後に [追加] ボタンを押してLoad Balancerの追加を行います。

image.png

Load Balancer 追加確認

Load Balancer が正しくメンバーとして追加されていることを確認します。

image.png

ここまで問題なければ、プライマリ・リージョン、スタンバイ・リージョンでのメンバーの追加は完了で、次は DR計画 の設定に入ります。

DR計画

スタンバイ・リージョンで、スタンバイロールの、DR保護グループを確認します。
(先ほど、スタンバイ・リージョンで、Load Balancer をメンバーに追加したDR保護グループです)

リージョン: South Korea Central(Seoul)
ピアDR保護グループ FSDR01_ICN

をクリックして開きます。

image.png

計画の作成

[計画の作成] ボタンを押し、DR計画を作成します。

image.png

計画の作成
名前: SwitchOverPlan01
プラン・タイプ: スイッチオーバー(計画済み)

名前を付け、プラン・タイプを選択したら、
[作成] ボタンを押し計画作成を完了します。

image.png

ディザスタ・リカバリ計画のプラン・タイプに関しては下記マニュアルを参照ください。

ディザスタ・リカバリ計画のタイプ
https://docs.public.oneportal.content.oci.oraclecloud.com/ja-jp/iaas/disaster-recovery/doc/dr-plans-type.html#GUID-C36FF3CC-4702-40E3-B41C-38F53199A492

計画の詳細

計画の名前(Name)をクリックすると、計画の詳細を確認することができます。計画の詳細では、事前チェックの実行DR計画の実行が可能です。

計画グループ の [グループの追加] からは ユーザー定義の計画グループおよびステップの追加が可能です。

計画作成確認

計画作成が正常に完了すると、状態が「アクティブ」になります。
もし、計画作成がエラーで終了したら、エラーログを手掛かりに設定を見直します。

DR計画の実行

DR計画の詳細画面から実行

計画の名前(Name)をクリックし、DR計画の詳細画面から DR計画の実行 ボタンを押すことで、計画の実行 することができます。

image.png

「3つのドット」メニューから実行

計画の右端にある「3つのドット」メニューをクリックすることで、DR計画の実行 をクリックし計画を実行をすることも可能です。

image.png

事前チェックの有効化

DR計画実行時に、☑事前チェックの有効化 にチェックボックスがされていると事前にチェックを実施、問題がなければ 計画を実行 します。

image.png

DR計画実行中のステータス

DR計画実行中は、DR計画実行の詳細画面より、計画実行グループの実行状況が随時アップデートされます。

image.png

DR計画完了

DR計画完了状態

問題なくDR計画が完了すると成功のステータスが表示されます。

image.png

計画の実行からDR計画完了状態確認

Resourcesの計画の実行メニューより、計画実行のサマリーを見ることができます。計画実行の記録はここからたどれます。

image.png

スタンバイロールだったDR保護グループが、プライマリロールになっていることを確認

リージョン: South Korea Central(Seoul)
DR保護グループ: FSDR01_ICN
ロール: プライマリ

になっていることを確認します。

image.png

サービス復旧確認

リカバリサイト側の Load Balancer にアクセス

リカバリサイト側 Load Balancer 情報を確認

リカバリサイト側の Load Balancerの状態を確認します。

リージョン: South Korea Central(Seoul)
名前: lb_01_icn
IPアドレス: 129.154.209.20(パブリック)
状態: アクティブ

問題なく動作しているようです。

image.png

Load Balancerの パブリックIPアドレスにブラウザからアクセス

ソウルリージョンの Load Balancer IP 129.154.209.20 にブラウザからアクセスしてみます。
東京の Load Balancer にアクセスした時と同じように、ブラウザをリロードするたびに、192.168.0.101、192.168.0.102 と別のプライベートIPアドレスを返してきていることから、期待通りの処理をしていることが確認できました。

image.png

まとめ

Disaster発生時、手動で他リージョンにVM等を移行を実施し、短時間でサービスを回復
させるのは容易な事ではありません。人手を介せば誤りが発生しスタンバイサイトを興
すことが難しくなるなるのはよくある事です。

DRサイトを構築していても、日頃からDR切り替えドリル(演習)を定期的に実施せずただ祈
るだけでは災対側にきちんと切り替わるか確信は持てません。自動で切替わってくれと願
うケースも多いのはないでしょうか。

DRは構築や運用コストがかかりすぎてハードルが高いし無理と言うのもよく聞く話です。

FSDRなどのDRaaSの利用はそのような現状に一石を投じるソリューションとなるかもしれません。未来に備えるために。

2024/3/11

4
2
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
4
2

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?