グローバルテーブルの作成 - Amazon DynamoDB

グローバルテーブルの作成

重要

このドキュメントはグローバルテーブルのバージョン 2017.11.29 (レガシー) を対象としています。新しいグローバルテーブルでは使用しないでください。可能な限り、グローバルテーブルバージョン 2019.11.21 (現行) を使用してください。2017.11.29 (レガシー) よりも柔軟性と効率が高く、消費する書き込みキャパシティが少ないためです。

ご使用のバージョンを確認するには、「使用しているグローバルテーブルのバージョンを確認する」を参照してください。既存のグローバルテーブルを 2017.11.29 (レガシー) からバージョン 2019.11.21 (現行) に更新する方法については、「グローバルテーブルのアップグレード」を参照してください。

このセクションでは、Amazon DynamoDB コンソールまたは AWS Command Line Interface (AWS CLI) を使用してグローバルテーブルを作成する方法について説明します。

グローバルテーブルの作成 (コンソール)

コンソールを使用してグローバルテーブルを作成するには、次の手順に従います。以下の例では、レプリカテーブルを持つグローバルテーブルを米国およびヨーロッパに作成します。

  1. DynamoDB コンソール (https://console.aws.amazon.com/dynamodb/home) を開きます。この例では、us-east-2 (米国東部オハイオ) リージョンを選択します。

  2. コンソールの左側のナビゲーションペインで、[テーブル] を選択します。

  3. [テーブルの作成] を選択します。

    [テーブル名] に「Music」と入力します。

    [プライマリキー] に Artist と入力します。[Add sort key (ソートキーの追加)] を選択し、SongTitle と入力します (ArtistSongTitle はいずれも文字列で入力します)。

    テーブルを作成するには、[Create (作成)] を選択します。このテーブルは、新しいグローバルテーブルの最初のレプリカテーブルとして機能します。これは、後で追加する他のレプリカテーブルのプロトタイプです。

  4. [グローバルテーブル] タブを選択後、[バージョン 2017.11.29 (レガシー) レプリカを作成] を選択します。

    [バージョン 2017.11.29 (レガシー) レプリカを作成] ボタンを示すコンソールのスクリーンショット。
  5. [利用できるレプリケーションリージョン] ドロップダウンで、米国西部 (オレゴン) を選択します。

    コンソールは、選択したリージョンに同一名のテーブルが存在しないことを確認します。同一名のテーブルが存在する場合は、そのリージョンで新しいレプリカテーブルを作成する前に既存のテーブルを削除する必要があります。

  6. [レプリカを作成] を選択します。これにより、米国西部 (オレゴン) でテーブル作成プロセスが開始されます。

    選択したテーブル (およびその他すべてのレプリカテーブル) の [グローバルテーブル] タブに、そのテーブルが複数のリージョンでレプリケートされたことが示されます。

  7. ここで、別のリージョンを追加して、グローバルテーブルがレプリケートされ、米国およびヨーロッパに同期されるようにします。これを行うには、ステップ 5 を繰り返しますが、今回は米国西部 (オレゴン) の代わりに欧州 (フランクフルト) を指定します。

  8. 引き続き、米国東部 (オハイオ)リージョンで AWS Management Console を使用する必要があります。左のナビゲーションメニューで [項目] を選択し、[音楽] テーブルを選択してから、[項目を作成] を選択します。

    1. [Artist] に「item_1」と入力します。

    2. [SongTitle] に「Song Value 1」と入力します。

    3. 項目を書き込むには、[項目を作成] を選択します。

  9. 間もなくすると、この項目は、グローバルテーブルの 3 つのすべてのリージョンにレプリケートされます。これを確認するには、コンソールの右上隅にあるリージョンセレクターで、[Europe (Frankfurt) (欧州 (フランクフルト))] を選択します。欧州 (フランクフルト) の Music テーブルに新しい項目が追加されます。

  10. ステップ 9 を繰り返し、米国西部 (オレゴン) を選択して、そのリージョンでのレプリケーションを確認します。

グローバルテーブル (AWS CLI) の作成

Music を使用してグローバルテーブル AWS CLI を作成するには、次の手順に従います。以下の例では、米国およびヨーロッパのレプリカテーブルを使用して、グローバルテーブルを作成します。

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

    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 \ --provisioned-throughput \ ReadCapacityUnits=10,WriteCapacityUnits=5 \ --stream-specification StreamEnabled=true,StreamViewType=NEW_AND_OLD_IMAGES \ --region us-east-2
  2. 米国東部 (バージニア北部) に同じ 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 \ --provisioned-throughput \ ReadCapacityUnits=10,WriteCapacityUnits=5 \ --stream-specification StreamEnabled=true,StreamViewType=NEW_AND_OLD_IMAGES \ --region us-east-1
  3. us-east-2 リージョンと us-east-1 リージョンのレプリカテーブルで構成されるグローバルテーブル (Music) を作成します。

    aws dynamodb create-global-table \ --global-table-name Music \ --replication-group RegionName=us-east-2 RegionName=us-east-1 \ --region us-east-2
    注記

    グローバルテーブル名 (Music) は、各レプリカテーブルの名前 (Music) と一致する必要があります。詳細については、「グローバルテーブルを管理するためのベストプラクティスと要件」を参照してください。

  4. ステップ 1 とステップ 2 で作成した設定と同じ設定で、欧州 (アイルランド) に別のテーブルを作成します。

    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 \ --provisioned-throughput \ ReadCapacityUnits=10,WriteCapacityUnits=5 \ --stream-specification StreamEnabled=true,StreamViewType=NEW_AND_OLD_IMAGES \ --region eu-west-1

    このステップを実行した後、新しいテーブルを Music グローバルテーブルに追加します。

    aws dynamodb update-global-table \ --global-table-name Music \ --replica-updates 'Create={RegionName=eu-west-1}' \ --region us-east-2
  5. レプリケーションが機能していることを確認するには、新しい項目を米国東部 (オハイオ) の Music テーブルに追加します。

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

    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