任意のリージョンへの書き込みモード (プライマリなし) - AWS 規範ガイダンス

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

任意のリージョンへの書き込みモード (プライマリなし)

次の図に示すリージョン書き込みモードへの書き込みは、完全にアクティブ/アクティブであり、書き込みオペレーションが発生する可能性のある場所に制限を課しません。どのリージョンでも、いつでも書き込みリクエストを受け入れることができます。これは最もシンプルなモードですが、一部のタイプのアプリケーションでのみ使用できます。このモードは、すべての MRSC テーブルに適しています。また、すべての書き込みオペレーションがべき等である場合の MREC テーブルにも適しています。べき等とは、ユーザーが問い合わせデータを更新するときなど、リージョン間で同時または繰り返しの書き込み操作が競合しないように、安全に反復可能であることを意味します。また、すべての書き込みオペレーションが決定論的なプライマリキーの一意の挿入である追加専用データセットにも適しています。これはべき等である特殊なケースです。最後に、このモードは、書き込みオペレーションの競合リスクが許容される MREC に適しています。

DynamoDB グローバルテーブルにプライマリ書き込みモードはありません。

任意のリージョンへの書き込みモードは、実装が最も簡単なアーキテクチャです。いつでも任意のリージョンを書き込み先にすることができるため、ルーティングが容易になります。MRSC テーブルでは項目は常に同期され、MREC テーブルでは最近の書き込みオペレーションを任意のセカンダリリージョンに何度でも再生できるため、フェイルオーバーが簡単になります。可能な限り、この書き込みモード向けの設計を行うようにします。

たとえば、いくつかの動画ストリーミングサービスでは、ブックマーク、レビュー、視聴ステータスフラグなどの追跡にグローバルテーブルを使用します。これらのデプロイでは、世界中に分散されたレプリカが必要であり、各レプリカは低レイテンシーの読み取りおよび書き込みオペレーションを提供するため、MREC テーブルを使用します。これらのデプロイでは、すべての書き込みオペレーションがべき等である限り、任意のリージョンモードへの書き込みを使用できます。これは、新しい最新のタイムコードの設定、新しいレビューの割り当て、新しい監視ステータスの設定など、すべての更新がユーザーの新しい状態を直接割り当て、項目の次の正しい値が現在の値に依存しない場合に当てはまります。ユーザーの書き込みリクエストが別のリージョンにルーティングされた場合、最後の書き込みオペレーションは保持され、グローバル状態は最後の割り当てに従って解決されます。このモードの読み取りオペレーションは最終的に一貫性が保たれ、最新のReplicationLatency値によって遅延します。

別の例として、ある金融サービス会社では、システムの一部としてグローバルテーブルを使用し、各顧客のデビットカード購入の累計を管理して、その顧客のキャッシュバック特典を計算しています。顧客ごとにRunningBalance項目を保持したいと考えています。この書き込みモードは、トランザクションがストリーミングされるときに、新しい正しい値が現在の値に依存するADD式を使用してバランスを変更するため、自然にはべき等ではありません。MRSC テーブルを使用すると、すべてのADD呼び出しが常に項目の最新の値に対して動作するため、任意のリージョンに書き込むことができます。

3 番目の例には、オンライン広告プレイスメントサービスを提供する会社が含まれます。この会社は、任意のリージョンモードへの書き込みの設計を簡素化するために、データ損失のリスクが低いことを許容できると判断しました。広告を提供する場合、表示する広告を決定するのに十分なメタデータを取得し、すぐに同じ広告を繰り返さないように広告インプレッションを記録するのに数ミリ秒しかかかりません。グローバルテーブルを使用して、世界中のエンドユーザー向けに低レイテンシーの読み取りオペレーションと低レイテンシーの書き込みオペレーションの両方を取得します。1 つの項目内のユーザーのすべての広告インプレッションが記録され、増加リストとして表されます。アイテムコレクションに追加せずに 1 つのアイテムを使用するため、削除オペレーションを支払うことなく、各書き込みオペレーションの一部として古い広告インプレッションを削除できます。この書き込みオペレーションはべき等ではありません。同じエンドユーザーが複数のリージョンから配信された広告をほぼ同時に見ると、広告インプレッションの 1 つの書き込みオペレーションが別の書き込みオペレーションを上書きする可能性があります。リスクは、ユーザーが広告を 1 回に 1 回繰り返す可能性があることです。これらは許容できると判断しました。