グローバルテーブルの作成
重要
このドキュメントはグローバルテーブルのバージョン 2017.11.29 (レガシー) を対象としています。新しいグローバルテーブルでは使用しないでください。可能な限り、グローバルテーブルバージョン 2019.11.21 (現行) を使用してください。2017.11.29 (レガシー) よりも柔軟性と効率が高く、消費する書き込みキャパシティが少ないためです。
ご使用のバージョンを確認するには、「使用している DynamoDB グローバルテーブルのバージョンを確認する」を参照してください。既存のグローバルテーブルを 2017.11.29 (レガシー) からバージョン 2019.11.21 (現行) に更新する方法については、「グローバルテーブルのアップグレード」を参照してください。
このセクションでは、Amazon DynamoDB コンソールまたは AWS Command Line Interface (AWS CLI) を使用してグローバルテーブルを作成する方法について説明します。
グローバルテーブルの作成 (コンソール)
コンソールを使用してグローバルテーブルを作成するには、次の手順に従います。以下の例では、レプリカテーブルを持つグローバルテーブルを米国およびヨーロッパに作成します。
-
DynamoDB コンソール (https://console.aws.amazon.com/dynamodb/home
) を開きます。この例では、us-east-2 (米国東部オハイオ) リージョンを選択します。 -
コンソールの左側のナビゲーションペインで、[テーブル] を選択します。
-
[テーブルの作成] を選択します。
[テーブル名] に「
Music
」と入力します。[プライマリキー] に
Artist
と入力します。[Add sort key (ソートキーの追加)] を選択し、SongTitle
と入力します (Artist
とSongTitle
はいずれも文字列で入力します)。テーブルを作成するには、[Create (作成)] を選択します。このテーブルは、新しいグローバルテーブルの最初のレプリカテーブルとして機能します。これは、後で追加する他のレプリカテーブルのプロトタイプです。
-
[グローバルテーブル] タブを選択後、[バージョン 2017.11.29 (レガシー) レプリカを作成] を選択します。
-
[利用できるレプリケーションリージョン] ドロップダウンで、米国西部 (オレゴン) を選択します。
コンソールは、選択したリージョンに同一名のテーブルが存在しないことを確認します。同一名のテーブルが存在する場合は、そのリージョンで新しいレプリカテーブルを作成する前に既存のテーブルを削除する必要があります。
-
[レプリカを作成] を選択します。これにより、米国西部 (オレゴン) でテーブル作成プロセスが開始されます。
選択したテーブル (およびその他すべてのレプリカテーブル) の [グローバルテーブル] タブに、そのテーブルが複数のリージョンでレプリケートされたことが示されます。
-
ここで、別のリージョンを追加して、グローバルテーブルがレプリケートされ、米国およびヨーロッパに同期されるようにします。これを行うには、ステップ 5 を繰り返しますが、今回は米国西部 (オレゴン) の代わりに欧州 (フランクフルト) を指定します。
-
引き続き、米国東部 (オハイオ)リージョンで AWS Management Console を使用する必要があります。左のナビゲーションメニューで [項目] を選択し、[音楽] テーブルを選択してから、[項目を作成] を選択します。
-
[Artist] に「
item_1
」と入力します。 -
[SongTitle] に「
Song Value 1
」と入力します。 -
項目を書き込むには、[項目を作成] を選択します。
-
-
間もなくすると、この項目は、グローバルテーブルの 3 つのすべてのリージョンにレプリケートされます。これを確認するには、コンソールの右上隅にあるリージョンセレクターで、[Europe (Frankfurt) (欧州 (フランクフルト))] を選択します。欧州 (フランクフルト) の
Music
テーブルに新しい項目が追加されます。 -
ステップ 9 を繰り返し、米国西部 (オレゴン) を選択して、そのリージョンでのレプリケーションを確認します。
グローバルテーブル (AWS CLI) の作成
Music
を使用してグローバルテーブル AWS CLI を作成するには、次の手順に従います。以下の例では、米国およびヨーロッパのレプリカテーブルを使用して、グローバルテーブルを作成します。
-
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
-
米国東部 (バージニア北部) に同じ
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
-
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
) と一致する必要があります。詳細については、「グローバルテーブルを管理するためのベストプラクティスと要件」を参照してください。 -
ステップ 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
-
レプリケーションが機能していることを確認するには、新しい項目を米国東部 (オハイオ) の
Music
テーブルに追加します。aws dynamodb put-item \ --table-name Music \ --item '{"Artist": {"S":"item_1"},"SongTitle": {"S":"Song Value 1"}}' \ --region us-east-2
-
数秒間待ってから、項目が米国東部 (バージニア北部) および欧州 (アイルランド) に正常にレプリケートされたかどうかを確認します。
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