

# グローバルテーブルの作成 (バージョン 2017.11.29)
<a name="globaltables.tutorial"></a>

**重要**  
 このドキュメントはグローバルテーブルのバージョン 2017.11.29 (レガシー) を対象としています。新しいグローバルテーブルでは使用しないでください。可能な限り、[グローバルテーブルバージョン 2019.11.21 (現行)](GlobalTables.md) を使用してください。2017.11.29 (レガシー) よりも柔軟性と効率が高く、消費する書き込みキャパシティが少ないためです。  
ご使用のバージョンを確認するには、「[グローバルテーブルのバージョンを確認する](V2globaltables_versions.md#globaltables.DetermineVersion)」を参照してください。既存のグローバルテーブルを 2017.11.29 (レガシー) からバージョン 2019.11.21 (現行) に更新する方法については、「[DynamoDB グローバルテーブルのバージョン](V2globaltables_versions.md)」を参照してください。

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

**Topics**
+ [グローバルテーブルの作成 (コンソール)](#creategt_console)
+ [グローバルテーブル (AWS CLI) の作成](#creategt_cli)

## グローバルテーブルの作成 (コンソール)
<a name="creategt_console"></a>

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

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

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

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

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

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

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

1. **[グローバルテーブル]** タブを選択後、**[バージョン 2017.11.29 (レガシー) レプリカを作成]** を選択します。  
![\[[バージョン 2017.11.29 (レガシー) レプリカを作成] ボタンを示すコンソールのスクリーンショット。\]](http://docs.aws.amazon.com/ja_jp/amazondynamodb/latest/developerguide/images/GlobalTables-old.png)

1. [**利用できるレプリケーションリージョン**] ドロップダウンで、**米国西部 (オレゴン)** を選択します。

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

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

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

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

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

   1. **[Artist]** に **item\$11** と入力します。

   1. **[SongTitle]** に **Song Value 1** と入力します。

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

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

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

## グローバルテーブル (AWS CLI) の作成
<a name="creategt_cli"></a>

`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
   ```

1. 米国東部 (バージニア北部) に同じ `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
   ```

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`) と一致する必要があります。詳細については、「[グローバルテーブルのベストプラクティス](globaltables-bestpractices.md)」を参照してください。

1. ステップ 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
   ```

1. レプリケーションが機能していることを確認するには、新しい項目を米国東部 (オハイオ) の `Music` テーブルに追加します。

   ```
   aws dynamodb put-item \
       --table-name Music \
       --item '{"Artist": {"S":"item_1"},"SongTitle": {"S":"Song Value 1"}}' \
       --region us-east-2
   ```

1. 数秒間待ってから、項目が米国東部 (バージニア北部) および欧州 (アイルランド) に正常にレプリケートされたかどうかを確認します。

   ```
   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
   ```