

# 글로벌 테이블 생성(버전 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. [https://console.aws.amazon.com/dynamodb/home](https://console.aws.amazon.com/dynamodb/home)에서 DynamoDB 콘솔을 엽니다. 이 예제의 경우, us-east-2(미국 동부 오하이오) 리전을 선택합니다.

1. 콘솔 왼쪽의 탐색 창에서 **테이블**을 선택합니다.

1. **Create Table(테이블 생성)**을 선택합니다.

   **테이블 이름**에 **Music**을(를) 입력합니다.

   **기본 키**에 **Artist**를 입력합니다. **정렬 키 추가**를 선택하고 **SongTitle**를 입력합니다(**Artist**와 **SongTitle**은 모두 문자열이어야 함).

   테이블을 생성하려면 [**Create**]를 선택합니다. 이 테이블은 새로운 전역 테이블에서 첫 번째 복제본 테이블 역할을 합니다. 이는 나중에 추가하는 다른 복제본 테이블의 프로토타입입니다.

1. **글로벌 테이블** 탭을 선택한 다음 **버전 2017.11.29(레거시) 복제본 생성**을 선택합니다.  
![\[버전 2017.11.29(레거시) 복제본 생성 버튼을 보여주는 콘솔 스크린샷입니다.\]](http://docs.aws.amazon.com/ko_kr/amazondynamodb/latest/developerguide/images/GlobalTables-old.png)

1. **사용 가능한 복제 리전(Available replication Regions)** 드롭다운에서 **미국 서부(오레곤)(US West (Oregon)**를 선택합니다.

   콘솔에서 선택한 리전에 이름이 동일한 테이블이 없는지 확인합니다. 이름이 동일한 테이블이 있는 경우 해당 리전에서 새 복제본 테이블을 생성하려면 먼저 기존 테이블을 삭제해야 합니다.

1. **복제본 생성(Create Replica)**을 선택합니다. 그러면 미국 서부(오레곤)에서 테이블 생성 프로세스가 시작됩니다.

   선택한 테이블(그리고 다른 복제본 테이블)의 **전역 테이블** 탭에 해당 테이블이 여러 리전에 복제되었다는 메시지가 표시됩니다.

1. 이제 다른 리전을 추가하여 전역 테이블이 미국과 유럽에 걸쳐 복제되고 동기화되도록 합니다. 이렇게 하려면 5단계를 반복하되, 이번에는 **US West (Oregon)(미국 서부(오레곤))** 대신 **EU(프랑크푸르트)(EU (Frankfurt))**를 지정합니다.

1. 미국 동부(오하이오) 리전에서 AWS Management Console을 계속 사용해야 합니다. 왼쪽 탐색 메뉴의 **항목(Items)**에서 **음악(Music)** 테이블을 선택한 다음 **항목 만들기(Create Item)**를 선택합니다.

   1. [**Artist**]에 **item\$11**를 입력합니다.

   1. [**SongTitle**]에 **Song Value 1**를 입력합니다.

   1. 해당 항목을 쓰려면 **항목 만들기(Create item)**를 선택합니다.

1. 잠시 후에 이 항목이 전역 테이블의 세 리전 모두에 복제됩니다. 제대로 되었는지 확인하려면 콘솔에서 오른쪽 상단 모서리에 있는 리전 선택기로 이동하고 **Europe (Frankfurt)(유럽(프랑크푸르트))**를 선택합니다. 유럽(프랑크푸르트)의 `Music` 테이블에 새 항목이 포함되어 있어야 합니다.

1. 9단계를 반복하고 **미국 서부(오레곤)(US West (Oregon))**을 선택하여 해당 리전의 복제를 확인합니다.

## 전역 테이블 생성(AWS CLI)
<a name="creategt_cli"></a>

다음 단계에 따라 `Music`를 사용하여 AWS CLI 전역 테이블을 생성합니다. 다음 예제에서는 미국 및 유럽의 복제본 테이블로 전역 테이블을 생성합니다.

1. 미국 동부(오하이오)에서 DynamoDB Streams를 활성화하고(`NEW_AND_OLD_IMAGES`) 새 테이블(`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-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. `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`)과 일치해야 합니다. 자세한 내용은 [글로벌 테이블에 대한 모범 사례](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
   ```