LoginSignup
3
2

More than 1 year has passed since last update.

DynamoDB Global Tables 概要

Last updated at Posted at 2022-03-21

概要

  • DynamoDB のリージョンレベルでのレプリカテーブルを作成する機能。

  • アプリケーションがあるリージョンのレプリカテーブルにデータを書き込むと、DynamoDB は書き込みを他の AWSリージョンのレプリカテーブルに自動的に伝播する。

    dynamodb.png

利点

  • ローカルの読み取りと書き込みで、グローバルなデータアクセスができる。

    • あるリージョンで発生した更新が他のリージョンにも伝播し、最終的に全リージョンのデータの一貫性が保たれる。

      =世界各地に分散しているアプリケーションそれぞれでローカルにアクセスされるテーブルが最新の状態が保たれる。

  • パフォーマンス

    • 1 桁ミリ秒のレイテンシーで提供される。

新しいレプリカテーブルを追加するための要件

新しいレプリカテーブルをグローバルテーブルに追加するには、以下の全ての条件を満たす必要がある。

  • その他すべてのレプリカと同じパーティションキーがテーブルに含まれている。
  • テーブルは、同じ指定した書き込みキャパシティー管理設定とする。
  • テーブル名が、その他全てのレプリカと同じ名前である。
  • 項目の新しいイメージと古いイメージの両方を含むストリーミングで、テーブルの DynamoDB Streams が有効になっている。
  • このグローバルテーブルの新規または既存のレプリカテーブルにデータが含まれていない。

CloudWatchモニタリング

  • ReplicationLatency
    • 更新された項目が1つのレプリカテーブルの DynamoDB ストリームに表示されてから、その項目がグローバルテーブルの別レプリカに表示されるまでの時間。
    • ミリ秒単位で表し、すべての送信元リージョンと送信先リージョンのペアに対して出力される。
  • PendingReplicationCount
    • 1 つのレプリカテーブルに書き込まれているが、グローバルテーブル内の別のレプリカにはまだ書き込まれていない項目の更新数。
    • 項目数で表し、全送信元と送信先のリージョンのペアに対して発行される。

AWS CLIを用いた作成方法

作成

  1. DynamoDB Streams を有効にして米国東部 (オハイオ)に新規テーブル (Music)を作成する。

    aws dynamodb create-table \
        --table-name Music \
        --attribute-definitions \
            AttributeName=Artist,AttributeType=S \
            AttributeName=SongTitle,AttributeType=S \
        --key-schema \
            AttributeName=Artist,KeyType=HASH \
            AttributeName=SongTitle,KeyType=RANGE \
        --billing-mode PAY_PER_REQUEST \
        --stream-specification StreamEnabled=true,StreamViewType=NEW_AND_OLD_IMAGES \
        --region us-east-2
    
  2. 米国東部 (バージニア北部) に同じ Music テーブルを作成する。

    aws dynamodb update-table --table-name Music --cli-input-json  \
    '{
      "ReplicaUpdates":
      [
        {
          "Create": {
            "RegionName": "us-east-1"
          }
        }
      ]
    }'
    
  3. ステップ 2 を繰り返して、欧州 (アイルランド) (eu-west-1) にテーブルを作成する。

動作確認

  1. 作成されたレプリカのリストを表示する。

    aws dynamodb describe-table --table-name Music --region us-east-2 
    
  2. 新しい項目を米国東部 (オハイオ) の Music テーブルに追加し、レプリケーションが機能していることを確認する。

    aws dynamodb put-item \
        --table-name Music \
        --item '{"Artist": {"S":"item_1"},"SongTitle": {"S":"Song Value 1"}}' \
        --region us-east-2
    
  3. 項目が米国東部 (バージニア北部) および欧州 (アイルランド) に正常にレプリケートされたかどうかを確認する。

    aws dynamodb get-item \
        --table-name Music \
        --key '{"Artist": {"S":"item_1"},"SongTitle": {"S":"Song Value 1"}}' \
        --region us-east-1
    
    aws dynamodb get-item \
        --table-name Music \
        --key '{"Artist": {"S":"item_1"},"SongTitle": {"S":"Song Value 1"}}' \
        --region eu-west-1
    

参考情報

3
2
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
3
2