翻訳は機械翻訳により提供されています。提供された翻訳内容と英語版の間で齟齬、不一致または矛盾がある場合、英語版が優先します。
マルチリージョンの基本 2: データについて
マルチリージョンアーキテクチャを採用する場合、データの管理は簡単な問題ではありません。リージョン間の地理的距離は、リージョン間でデータをレプリケートするのにかかる時間として現れる不可避のレイテンシーを課します。可用性、データ整合性、およびマルチリージョンアーキテクチャを使用するワークロードへのレイテンシーの増加のトレードオフが必要になります。非同期レプリケーションと同期レプリケーションのどちらを使用するかにかかわらず、レプリケーションテクノロジーが課す動作の変更を処理するようにアプリケーションを変更する必要があります。データ整合性とレイテンシーに関する課題により、単一のリージョン用に設計された既存のアプリケーションを取得し、マルチリージョンにすることは非常に困難です。特定のワークロードのデータ整合性要件とデータアクセスパターンを理解することは、トレードオフを比較検討するのに重要です。
2.a: データ整合性要件を理解する
CAP 定理は、データ整合性、可用性、ネットワークパーティション間のトレードオフについて推論するためのリファレンスを提供します。これらの要件のうち、ワークロードで同時に満たすことができるのは 2 つだけです。定義上、マルチリージョンアーキテクチャにはリージョン間のネットワークパーティションが含まれているため、可用性と整合性を選択する必要があります。
リージョン間でデータの可用性を選択した場合、トランザクション書き込みオペレーション中に大きなレイテンシーが発生することはありません。リージョン間でコミットされたデータの非同期レプリケーションに依存すると、レプリケーションが完了するまでリージョン間の一貫性が低下するためです。非同期レプリケーションでは、プライマリリージョンで障害が発生した場合、書き込みオペレーションがプライマリリージョンからのレプリケーションを保留中になる可能性が高くなります。これにより、レプリケーションが再開されるまで最新のデータが使用できなくなり、中断が発生したリージョンからレプリケートされなかった処理中のトランザクションを処理するための調整プロセスが必要になるシナリオが発生します。このシナリオでは、ビジネスロジックを理解し、トランザクションを再生したり、リージョン間でデータストアを比較したりする特定のプロセスを作成する必要があります。
非同期レプリケーションが優先されるワークロードでは、Amazon Aurora
イベント駆動型アーキテクチャを活用するようにワークロードをエンジニアリングすることは、マルチリージョン戦略の利点です。これは、ワークロードがデータの非同期レプリケーションを受け入れ、イベントを再生することで状態を再構築できることを意味します。ストリーミングおよびメッセージングサービスはメッセージペイロードデータを 1 つのリージョンでバッファするため、リージョンフェイルオーバーまたはフェイルバックプロセスには、クライアント入力データフローをリダイレクトするメカニズムを含める必要があります。このプロセスでは、中断が発生したリージョンに保存されている処理中または未配信のペイロードも調整する必要があります。
CAP 整合性要件を選択し、リージョン間で同期的にレプリケートされたデータベースを使用して、複数のリージョンから同時に実行されるアプリケーションをサポートする場合は、データ損失のリスクを排除し、リージョン間でデータを同期させます。ただし、書き込みは複数のリージョンにコミットする必要があり、リージョンは互いに数百マイルまたは数千マイルになる可能性があるため、レイテンシー特性は高くなります。アプリケーション設計では、このレイテンシー特性を考慮する必要があります。さらに、同期レプリケーションは、書き込みを成功させるために複数のリージョンにコミットする必要があるため、相関障害が発生する可能性があります。1 つのリージョン内に障害がある場合は、書き込みを成功させるためのクォーラムを作成する必要があります。これには通常、3 つのリージョンにデータベースを設定し、3 つのリージョンのうち 2 つのリージョンのクォーラムを確立する必要があります。Paxos
強固な整合性要件を満たすため、書き込みに複数のリージョン間での同期レプリケーションが含まれる場合、書き込みレイテンシーは桁違いに大きくなります。書き込みレイテンシーを長くすることは、アプリケーションのタイムアウトや再試行戦略を再検討するなど、大きな変更を加えることなく、通常アプリケーションに改良できるものではありません。理想的には、アプリケーションを最初に設計するときに考慮する必要があります。同期レプリケーションが優先されるマルチリージョンワークロードでは、 AWS Partner ソリューション
2.b: データアクセスパターンを理解する
ワークロードデータアクセスパターンは、読み込み多用または書き込み多用です。特定のワークロードのこの特性を理解することは、適切なマルチリージョンアーキテクチャを選択するのに役立ちます。
完全に読み取り専用の静的コンテンツなどの読み取り負荷の高いワークロードでは、書き込み負荷の高いワークロードと比較して、エンジニアリングの複雑さが少ないアクティブ/アクティブ
読み込みトラフィックの割合が書き込みトラフィックよりも多い読み込み負荷の高いワークロードでは、読み取りローカルの書き込みグローバル戦略
Aurora グローバルデータベース
書き込み負荷の高いワークロードでは、プライマリリージョンを選択し、スタンバイリージョンにフェイルオーバーする機能をワークロードに組み込む必要があります。アクティブ/アクティブアプローチと比較して、プライマリスタンバイ
回復力のためにマルチリージョンアプローチを使用するほとんどのワークロードでは、アクティブ/アクティブアプローチは必要ありません。シャーディング
シャーディングアプローチとプライマリスタンバイアプローチを組み合わせて、シャードのフェイルオーバー機能を提供できます。フェイルオーバー後のデータストアのトランザクション整合性を確保するために、テスト済みのフェイルオーバープロセスをワークロードに設計し、データ調整のプロセスも設計する必要があります。これらについては、このガイドの後半で詳しく説明します。
主なガイダンス
-
障害が発生すると、レプリケーション待ちの書き込みがスタンバイリージョンにコミットされない可能性が高くなります。レプリケーションが再開されるまで、データは使用できません (非同期レプリケーションの場合)。
-
フェイルオーバーの一環として、非同期レプリケーションを使用するデータストアに対してトランザクション整合性のある状態を維持するために、データ調整プロセスが必要になります。これには特定のビジネスロジックが必要であり、データストア自体によって処理されるものではありません。
-
強力な整合性が必要な場合は、同期的にレプリケートするデータストアの必要なレイテンシーを許容するようにワークロードを変更する必要があります。