1 つのリージョンへの書き込みモード (単一プライマリ) - AWS 規範ガイダンス

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

1 つのリージョンへの書き込みモード (単一プライマリ)

1 つのリージョンへの書き込みモードはアクティブ/パッシブで、すべてのテーブル書き込み操作を 1 つのアクティブリージョンにルーティングします。(DynamoDB には 1 つのアクティブリージョンという概念はありません。DynamoDB の外側のレイヤーがこれを管理します)。1 つのリージョンへの書き込みモードは、書き込み操作が一度に 1 つのリージョンにのみ流れるようにすることで、書き込みの競合を回避します。この書き込みモードは、条件式やトランザクションを使用する場合に役立ちます。これらの式は、最新のデータに対してアクションを実行していることがわかっていない限り使用できないため、すべての書き込みリクエストを最新のデータを含む 1 つのリージョンに送信する必要があります。

最終的には、どのレプリカリージョンでも一貫性のある読み取り操作を行って、レイテンシーを低くすることができます。一貫性のある読み取り操作は、単一のプライマリリージョンに対して行われる必要があります。

シングル・プライマリー・ライト・モード

後で説明するように、リージョンの障害に対応してアクティブリージョンを変更する必要がある場合があります。一部のユーザーは、follow-the-sunデプロイメントの実装など、現在アクティブなリージョンを定期的に変更します。これにより、アクティブなリージョンが最もアクティビティの多い地域 (通常は昼間、つまり名前) の近くに配置され、読み取り/書き込み操作のレイテンシーが最も低くなります。また、リージョンを変更するコードを毎日呼び出して、障害復旧の前に十分にテストされていることを確認できるという副次的な利点もあります。

パッシブリージョンは、アクティブリージョンになった場合にのみ構築される DynamoDB を取り巻くダウンスケールされたインフラストラクチャを維持する場合があります。このガイドでは、パイロットライトとウォームスタンバイの設計については説明していません。詳細については、ブログ記事「ディザスタリカバリ(DR)アーキテクチャ(パート III:パイロットライトとウォームスタンバイ)」を参照してください。AWS

グローバルテーブルを使用して低レイテンシーでグローバルに分散された読み取り操作を行う場合は、1 つのリージョンへの書き込みモードを使用すると効果的です。一例として、世界中のすべての地域で同じ参照データを利用できるようにする必要がある大規模なソーシャルメディア企業があります。データを頻繁に更新することはありませんが、更新する場合は書き込みの競合を避けるため、1 つのリージョンのみに書き込みます。読み取り操作は、どのリージョンからでも常に許可されます。

別の例として、先ほど説明した日次キャッシュバック計算を実装した金融サービス会社を考えてみましょう。残高の計算には任意の地域への書き込みモードを使用していましたがキャッシュバックの支払いを追跡するには1つの地域への書き込みモードを使用していました。10 ドル使うごとに 1 セントの報酬を得たい場合は、前日のすべての取引について支出総額を計算し、キャッシュバックの決定を新しいテーブルに書き込み、クエリした項目セットを削除して消費済みとしてマークし、Query翌日の計算に必要な残りを格納する単一の項目に置き換える必要があります。この作業にはトランザクションが必要なので、1 つのリージョンへの書き込みモードの方が効果的です。ワークロードが重複しない限り、アプリケーションは同じテーブルであっても書き込みモードを混在させることができます。