メニュー
Amazon DynamoDB
開発者ガイド (API バージョン 2012-08-10)

グローバルテーブルを作成する

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

グローバルテーブルを作成する (コンソール)

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

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

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

  3. [Create Table] を選択します。

    [Table name] に [Music] と入力します。

    [Primary key] に [Artist] と入力します。[Add sort key] を選択し、[SongTitle] と入力します。(ArtistSongTitle はいずれも文字列で入力します。)

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

  4. [Global Tables] タブを選択後、[Enable streams] を選択します。[View type] の値をデフォルト (新旧イメージ) のままにしておきます。

  5. [Add region] を選択後、他のレプリカテーブルをデプロイする別のリージョンを選択します。この場合は、[米国西部 (オレゴン)] を選択してから [Continue] を選択します。これにより、米国西部 (オレゴン) でテーブル作成プロセスが開始されます。

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

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

  6. ここで、別のリージョンを追加して、グローバルテーブルがレプリケートされ、米国およびヨーロッパに同期されるようにします。そのためには、ステップ 5 を繰り返しますが、ここでは [米国西部 (オレゴン)] ではなく、[EU (Frankfurt)] を選択します。

  7. 前の手順と同様、us-east-2 (米国東部オハイオ) リージョンで AWS マネジメントコンソールを使用する必要があります。[Music] テーブルで、[Items] タブを選択後 [Create Item] を選択します。[Artist] に item_1 と入力します。[SongTitle] に Song Value 1 と入力します。項目を書き込むには、[Save] を選択します。

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

    米国西部 (オレゴン) でこのステップを繰り返します。

グローバルテーブルを作成する (AWS CLI)

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

  1. 新しいテーブル (Music) を 米国東部 (オハイオ) に作成します。この際、DynamoDB ストリーム を有効にします (NEW_AND_OLD_IMAGES)。

    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. レプリカテーブルから構成されるグローバルテーブル (Music) を us-east-2 リージョンおよび us-east-1 リージョンに作成します。

    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