ディザスタリカバリと Amazon DocumentDB グローバルクラスター - Amazon DocumentDB

翻訳は機械翻訳により提供されています。提供された翻訳内容と英語版の間で齟齬、不一致または矛盾がある場合、英語版が優先します。

ディザスタリカバリと Amazon DocumentDB グローバルクラスター

グローバルクラスターを使用すると、リージョンの障害などの災害から迅速に復旧できます。ディザスタからの復旧は通常、 RTOと の値を使用して測定されますRPO。

  • 目標復旧時間 (RTO) — ディザスタ発生後にシステムが動作状態に戻るのにかかる時間。つまり、 はダウンタイムRTOを測定します。グローバルクラスターの場合、 は分単位でRTO指定できます。

  • 目標復旧時点 (RPO) — 失われる可能性のあるデータの量 (時間単位で測定)。グローバルクラスターの場合、 RPOは通常秒単位で測定されます。

  • 予期しない停止から復旧するには、グローバルクラスター内のセカンダリの 1 つのクロスリージョンフェイルオーバーを実行できます。グローバルクラスターに複数のセカンダリリージョンがある場合、プライマリ AWS リージョン が停止したら、すべてのセカンダリリージョンをデタッチしてください。次に、これらのセカンダリリージョンの 1 つを新しいプライマリ AWS リージョンに昇格させます。最後に、他の各セカンダリリージョンに新しいクラスターを作成し、それらのクラスターをグローバルクラスターにアタッチします。

  • セカンダリクラスターをプライマリクラスターに昇格させる場合は、アプリケーションがグローバルクラスターへの接続に使用するエンドポイントも更新する必要があります。新しく昇格したクラスターから新しい書き込みエンドポイントを取得するには、エンドポイント文字列から -ro を削除することで、以前のリーダーエンドポイントを変換できます。たとえば、以前のリーダーエンドポイントが global-16rr-test-cluster-1.cluster-ro-12345678901.us-west-2.docdb.amazonaws.com である場合、昇格された新しい書き込みエンドポイントは global-16rr-test-cluster-1.cluster-cps2igpwyrwa.us-west-2.rds.amazonaws.com です。

Amazon DocumentDB グローバルクラスターのフェイルオーバー

1 つの 内のクラスター全体が使用 AWS リージョン できなくなった場合は、グローバルクラスター内の別のクラスターを昇格させて読み取り/書き込み機能を持たせることができます。

別の AWS リージョン にあるクラスターがプライマリクラスターとしてより適格である場合は、フェイルオーバー機能を手動で有効にすることができます。たとえば、セカンダリクラスターの 1 つの容量を増やして、プライマリクラスターに昇格させることができます。または、 間のアクティビティのバランスが AWS リージョン 変わる可能性があるため、プライマリクラスターを別のクラスターに切り替えると、書き込みオペレーションのレイテンシーが短 AWS リージョン くなる可能性があります。

次の手順では、DocumentDB グローバルクラスターのセカンダリクラスターの 1 つを昇格させる手順の概要を説明します。

セカンダリクラスターを昇格させるには

  1. 停止 AWS リージョン 時に、 のプライマリクラスターへのDMLステートメントやその他の書き込みオペレーションの発行を停止します。

  2. 新しいプライマリクラスター AWS リージョン として使用するセカンダリからクラスターを特定します。グローバルクラスター AWS リージョン に 2 つ (またはそれ以上) のセカンダリがある場合は、ラグタイムが最も短いセカンダリクラスターを選択します。

  3. 選択したセカンダリクラスターをグローバルクラスターからデタッチします。

    グローバルクラスターからセカンダリクラスターを削除すると、プライマリからこのセカンダリへのレプリケーションが直ちに停止され、完全な読み取り/書き込み機能を備えたスタンドアロンのプロビジョニングクラスターに昇格されます。停止しているリージョン内のプライマリクラスターに関連付けられたその他のセカンダリクラスターは引き続き利用可能で、アプリケーションからの呼び出しを受け付けることができます。また、リソースを使用することになります。グローバルクラスターを再作成するため、スプリットブレインなどの問題を回避するために、以下のステップで新しいグローバルクラスターを作成する前に、他のセカンダリクラスターを削除します。

    アタッチ解除の詳細なステップについては、Amazon DocumentDB グローバルクラスターからのクラスターの削除 を参照してください。

  4. 新しいエンドポイントを使用して、このスタンドアロンクラスターにすべての書き込みオペレーションを送信するように、アプリケーションを再設定します。グローバルクラスターの作成時に指定された名前を受け入れた場合は、アプリケーション内のクラスターのエンドポイント文字列から -ro を削除することで、エンドポイントを変更できます。

    例えば、セカンダリクラスターのエンドポイント my-global.cluster-ro-aaaaaabbbbbb.us-west-1.docdb.amazonaws.com は、そのクラスターが グローバルクラスターからデタッチされたときに my-global.cluster-aaaaaabbbbbb.us-west-1.docdb.amazonaws.com になります。

    このクラスターは、次のステップでリージョンを追加すると、新しいグローバルクラスターのプライマリクラスターになります。

  5. クラスター AWS リージョン に を追加します。これを行うと、プライマリからセカンダリへのレプリケーションプロセスがスタートされます。

  6. アプリケーションをサポートするために必要なトポロジを再作成するために、 AWS リージョン 必要に応じてさらに を追加します。グローバルクラスター内 (スプリットブレインの問題) のクラスター間のデータの不整合を避けるために、これらの変更を行う前、最中、および後に、アプリケーションの書き込みが正しいクラスターに送信されていることを確認してください。

  7. 停止状態が解決されて元の AWS リージョン をプライマリクラスターとして再度割り当てる準備が完了したら、同じステップを逆に実行します。

  8. グローバルクラスターからセカンダリクラスターの 1 つを削除します。これにより、読み取り/書き込みトラフィックを提供できるようになります。

  9. 元の AWS リージョンのプライマリクラスターにすべての書き込みトラフィックをリダイレクトします。

  10. を追加して AWS リージョン 、以前 AWS リージョン と同じ に 1 つ以上のセカンダリクラスターを設定します。

Amazon DocumentDB グローバルクラスターは を使用して管理できるため AWS SDKs、ディザスタリカバリとビジネス継続性計画のユースケースのグローバルクラスターフェイルオーバープロセスを自動化するソリューションを作成できます。そのようなソリューションの 1 つは、Apache 2.0 ライセンスに基づいてお客様に提供されており、こちらのツールリポジトリからアクセスできます。このソリューションは、エンドポイント管理に Amazon Route53 を活用し、適切なイベントに基づいてトリガーできる AWS Lambda 関数を提供します。