OCI Cacheのリージョン間レプリケーション
OCI Cacheクロスリージョン・レプリケーションを使用すると、あるOCIリージョンのプライマリ・キャッシュ・クラスタから別のリージョンのセカンダリ・キャッシュ・クラスタにデータを非同期にレプリケートできます。プライマリ・クラスタは、読取り操作と書込み操作の両方をサポートします。セカンダリクラスタは読み取り専用であり、プライマリクラスタから継続的に更新を受信します。
リージョン間レプリケーションを使用して、次のことを行います。
- ディザスタ・リカバリの準備を改善します。
- グローバルに分散したアプリケーションに対して、低レイテンシの読取りを提供します。
- リージョン間の計画ワークロードの移行をサポートします。
セカンダリ・クラスタの作成または変換、計画されたスイッチオーバーの実行、障害回復のためのセカンダリ・クラスタからスタンドアロンへの変換、レプリケーションの詳細の表示、またはレプリケーション関係の削除を行うことができます。
リージョン間レプリケーションを管理するには、参加しているクラスタに対して必要な権限を持っている必要があります。必要な権限は、操作によって異なります。詳細は、OCI Cache IAMポリシーを参照してください。
クロスリージョン・レプリケーションのクラスタ・ロール
OCI Cacheクラスタには、次のいずれかのロールを設定できます。
- プライマリ: 読取りおよび書込みの操作を受け入れます。セカンダリクラスタにデータ変更を送信します。
- セカンダリ: プライマリ・クラスタから変更を受信します。読取り操作のみを受け入れます。書込み操作を受け入れるには、スイッチオーバーまたはスタンドアロンへの変換によってセカンダリ・クラスタがプライマリになる必要があります。
- スタンドアロン: リージョン間レプリケーション関係の一部ではありません。読取り操作と書込み操作の両方を受け入れます。
リージョン間レプリケーションの仕組み
クロスリージョン・レプリケーションを確立すると、OCI Cacheは2つの異なるリージョンのクラスタを安全に接続し、セカンダリ・クラスタをプライマリ・クラスタと同期します。
初期同期中に、セカンダリクラスタはプライマリクラスタからデータの完全なコピーを受信します。初期同期が完了すると、プライマリクラスタは後続の変更をセカンダリクラスタに継続的に送信します。
レプリケーションが中断された場合、OCI Cacheは、セカンダリ・クラスタで欠落した変更のみを転送しようとします。必要なレプリケーション履歴が使用できなくなった場合、OCI Cacheは別の完全同期を実行します。完全同期により、メモリー、CPUおよびネットワークの使用量が一時的に増加する可能性があります。
レプリケーション・トラフィックは転送中に暗号化され、プライベートOCIネットワーキングを使用します。
レプリケーション・ラグおよびデータ整合性
レプリケーションは非同期です。OCI Cacheがセカンダリ・クラスタに変更を適用する前に、プライマリ・クラスタで書込み操作を終了できます。この遅延はレプリケーション・ラグと呼ばれます。レプリケーション・ラグは、書込み率、データセット・サイズ、リソース使用率、ネットワーク待機時間およびリージョン間の距離に基づいて異なる場合があります。OCIリージョン間の現在のネットワーク・レイテンシを確認するには、リージョン間レイテンシを参照してください。
アプリケーションがセカンダリ・クラスタから読み取る場合は、最終的な一貫性を許容する必要があります。停止中は、最新の書き込みがセカンダリクラスタに存在しない可能性があります。
計画スイッチオーバー
スイッチオーバーは、クラスタのロールを元に戻します。セカンダリクラスタはプライマリになり、プライマリクラスタはセカンダリになります。
計画されたリージョンの移行またはメンテナンスにスイッチオーバーを使用します。スイッチオーバーを実行するには、クラスタと両方のリージョンの両方が使用可能である必要があります。
スイッチオーバーを開始する前にアプリケーションの書込みを停止して、データ損失のリスクを減らします。
ディザスタ・リカバリ
プライマリ・リージョンが使用できない場合は、両方のクラスタが通信する必要があるため、スイッチオーバーを使用できません。
プライマリ・リージョンの停止からリカバリするには、セカンダリ・クラスタをスタンドアロンに変換します。変換後、新しいエンドポイントを使用するようにアプリケーションを更新します。
元のリージョンが使用可能になると、新しいレプリケーション関係を設定できます。
クロス・リージョン・レプリケーションの考慮事項
OCI Cacheのリージョン間レプリケーションを構成する前に、次の考慮事項を確認してください。
- クロスリージョン・レプリケーションでは、1つのプライマリ・クラスタと1つのセカンダリ・クラスタを持つアクティブ- パッシブ構成が使用されます。
- プライマリクラスタのみが書き込み操作を受け入れます。セカンダリクラスタはレプリケーションのために読み取り専用であり、自動フェイルオーバーはサポートされていません。
- クロスリージョン・レプリケーションは、選択したOCIリージョンでのみ使用できます。サポートされているリージョンのリストは、クロスリージョン・レプリケーションでサポートされているリージョン・ペアを参照してください。
- プライマリ・クラスタとセカンダリ・クラスタは、異なるOCIリージョンに存在する必要があります。
- プライマリ・クラスタとセカンダリ・クラスタは、次のものと一致している必要があります。
- キャッシュ・エンジン・バージョン
- クラスタ・モード
- 1ノード当たりのメモリー
- プライマリ・クラスタとセカンダリ・クラスタの両方で、ノード当たりのメモリーは8 GB以上である必要があります。
- クロスリージョン・レプリケーションでは、非シャード・クラスタのみがサポートされます。
- プライマリ・クラスタとセカンダリ・クラスタは、異なるノード数を持つことができます。
- セカンダリ・クラスタは、別のレプリケーション関係のプライマリ・クラスタとして機能できません。
- クロスリージョン・レプリケーションを確立する前に、両方のクラスタでカスタムOCI Cache構成セットを使用する必要があります。プライマリおよびセカンダリ構成セットでは、次のパラメータに同じ値を使用します。
reserved-memory-percentagemaxmemory-policydatabases(デフォルト値の16以外の値に設定した場合のみ)
reserved-memory-percentage値は35以上である必要があり、maxmemory-policyはnoevictionに設定できません。- クロスリージョン・レプリケーションで一致する必要のある他の構成パラメータはありません。
- OCI Cache構成およびACLユーザーは、プライマリ・クラスタとセカンダリ・クラスタ間で自動的にコピーされません。両方のリージョンで必要な構成を作成します。
- ACLユーザーの場合、可能な場合は両方のクラスタで同じユーザーおよびアクセス権を使用します。このアプローチは、ロールの変更を簡素化し、スイッチオーバー後の認可の問題を回避するのに役立ちます。アプリケーションで必要な場合は、異なるACLユーザーを構成できます。OCI Cacheのサポートされる構成およびOCI Cacheユーザーを参照してください
- 既存のクラスタをセカンダリクラスタに変換すると、そのクラスタのデータが削除されます。
- レプリケーションは非同期であるため、セカンダリクラスタからの読み取りは古いデータを返す可能性があります。
- スイッチオーバーでは、プライマリ・クラスタとセカンダリ・クラスタの両方が使用可能である必要があります。
- クロスリージョン・レプリケーションを使用するクラスタでは、バックアップはサポートされていません。
- メモリーのサイズを変更する場合は、クラスタのサイズを次の順序で変更します。
- メモリーを増やすには、プライマリクラスタのサイズを変更する前に、セカンダリクラスタのサイズを変更します。
- メモリーを減らすには、セカンダリクラスタのサイズを変更する前に、プライマリクラスタのサイズを変更します。
- リージョン間レプリケーションでは、リージョンおよびデータ・ボリュームに応じてネットワーク・エグレス料金が発生します。