

# DynamoDB 글로벌 테이블 버전
<a name="V2globaltables_versions"></a>

DynamoDB 글로벌 테이블에는 글로벌 테이블 버전 2019.11.21(현재)과 글로벌 테이블 버전 2017.11.29(레거시)의 두 가지 버전이 있습니다. 글로벌 테이블 버전 2019.11.21(현재)을 사용하는 것이 좋습니다. 버전 2017.11.29(레거시)에 비해 사용이 더 쉽고, 더 많은 리전에서 지원되며, 대부분의 워크로드에 대해 비용이 저렴하기 때문입니다.

## 글로벌 테이블 버전 확인
<a name="globaltables.DetermineVersion"></a>

### AWS CLI를 사용하여 버전 확인
<a name="globaltables.CLI"></a>

#### 버전 2019.11.21(현재) 글로벌 테이블 복제본 식별
<a name="globaltables.CLI.current"></a>

테이블이 글로벌 테이블 버전 2019.11.21(현재) 복제본인지 확인하려면 테이블에 대한 `describe-table` 명령을 간접적으로 호출합니다. 출력에 값이 ‘2019.11.21’인 `GlobalTableVersion` 속성이 포함된 경우 테이블은 버전 2019.11.21(현재) 글로벌 테이블 복제본입니다.

`describe-table`에 대한 CLI 명령의 예:

```
aws dynamodb describe-table \
--table-name users \
--region us-east-2
```

(약식) 출력에는 값이 ‘2019.11.21’인 `GlobalTableVersion` 속성이 포함되어 있으므로 이 테이블은 버전 2019.11.21(현재) 글로벌 테이블 복제본입니다.

```
{
    "Table": {
        "AttributeDefinitions": [
            {
                "AttributeName": "id",
                "AttributeType": "S"
            },
            {
                "AttributeName": "name",
                "AttributeType": "S"
            }
        ],
        "TableName": "users",
        ...
        "GlobalTableVersion": "2019.11.21",
        "Replicas": [
            {
                "RegionName": "us-west-2",
                "ReplicaStatus": "ACTIVE",
            }
        ],
        ...
    }
}
```

#### 버전 2017.11.29(레거시) 글로벌 테이블 복제본 식별
<a name="globaltables.CLI.legacy"></a>

글로벌 테이블 버전 2017.11.29(레거시)는 글로벌 테이블 관리를 위한 전용 명령 세트를 사용합니다. 테이블이 글로벌 테이블 버전 2017.11.29(레거시) 복제본인지 확인하려면 테이블에 대한 `describe-global-table` 명령을 간접적으로 호출합니다. 성공적인 응답을 받으면 테이블은 버전 2017.11.29(레거시) 글로벌 테이블 복제본입니다. `describe-global-table` 명령이 `GlobalTableNotFoundException` 오류를 반환하면 테이블은 버전 2017.11.29(레거시) 복제본이 아닙니다.

`describe-global-table`에 대한 CLI 명령의 예:

```
aws dynamodb describe-global-table \
--table-name users \
--region us-east-2
```

명령이 성공적인 응답을 반환하므로 이 테이블은 버전 2017.11.29(레거시) 글로벌 테이블 복제본입니다.

```
{
    "GlobalTableDescription": {
        "ReplicationGroup": [
            {
                "RegionName": "us-west-2"
            },
            {
                "RegionName": "us-east-2"
            }
        ],
        "GlobalTableArn": "arn:aws:dynamodb::123456789012:global-table/users",
        "CreationDateTime": "2025-06-10T13:55:53.630000-04:00",
        "GlobalTableStatus": "ACTIVE",
        "GlobalTableName": "users"
    }
}
```

### DynamoDB 콘솔을 사용하여 버전 확인
<a name="globaltables.console"></a>

글로벌 테이블 복제본의 버전을 식별하려면 다음을 수행합니다.

1. [https://console.aws.amazon.com/dynamodb/home](https://console.aws.amazon.com/dynamodb/home)에서 DynamoDB 콘솔을 엽니다.

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

1. 글로벌 테이블 버전을 식별할 테이블을 선택합니다.

1. **전역 테이블** 탭을 선택합니다.

   *요약* 섹션에는 사용 중인 글로벌 테이블의 버전이 표시됩니다.

## 레거시 버전과 현재 버전 간의 동작 차이
<a name="DiffLegacyVsCurrent"></a>

다음 목록은 글로벌 테이블의 레거시 버전과 현재 버전 간의 동작 차이를 설명합니다.
+ 버전 2019.11.21(현재)은 버전 2017.11.29(레거시)에 비해 몇몇 DynamoDB 작업에 대한 쓰기 용량을 적게 소비합니다. 따라서 대부분의 고객에게 더 비용 효과적입니다. 이러한 DynamoDB 작업의 차이점은 다음과 같습니다.
  + 한 리전에 있는 1KB 항목에 대해 [PutItem](https://docs.aws.amazon.com/amazondynamodb/latest/APIReference/API_PutItem.html)을 간접 호출하고 다른 리전에 복제할 때 2017.11.29(레거시)의 경우 리전당 2개의 rWRU가 필요하지만 2019.11.21(현재)의 경우 1개만 필요합니다.
  + 1KB 항목에 대해 [UpdateItem](https://docs.aws.amazon.com/amazondynamodb/latest/APIReference/API_UpdateItem.html)을 간접 호출할 때 2017.11.29(레거시)의 경우 소스 리전당 2개의 rWRU와 대상 리전당 1개의 rWRU가 필요하지만 2019.11.21(현재)의 경우 소스 및 대상 리전에 모두 1개의 rWRU만 필요합니다.
  + 1KB 항목에 대해 [DeleteItem](https://docs.aws.amazon.com/amazondynamodb/latest/APIReference/API_DeleteItem.html)을 간접 호출할 때 2017.11.29(레거시)의 경우 소스 리전당 1개의 rWRU와 대상 리전당 2개의 rWRU가 필요하지만 2019.11.21(현재)의 경우 소스 또는 대상 리전에 1개의 rWRU만 필요합니다.

  다음 표에서는 2개 리전에 있는 1KB 항목에 대한 2017.11.29(레거시) 및 2019.11.21(현재) 테이블의 rWRU 사용량을 보여줍니다.    
[\[See the AWS documentation website for more details\]](http://docs.aws.amazon.com/ko_kr/amazondynamodb/latest/developerguide/V2globaltables_versions.html)
+ 버전 2017.11.29(레거시)는 11개 AWS 리전에서만 사용할 수 있습니다. 그러나 버전 2019.11.21(현재)은 모든 AWS 리전에서 사용할 수 있습니다.
+ 먼저 빈 리전 테이블 세트를 만든 다음 [CreateGlobalTable](https://docs.aws.amazon.com/amazondynamodb/latest/APIReference/API_CreateGlobalTable.html) API 간접 호출로 글로벌 테이블을 구성하여 버전 2017.11.29(레거시) 글로벌 테이블을 생성합니다. [UpdateTable](https://docs.aws.amazon.com/amazondynamodb/latest/APIReference/API_UpdateTable.html) API 간접 호출로 기존 리전 테이블에 복제본을 추가하여 버전 2019.11.21(현재) 글로벌 테이블을 생성합니다.
+ 버전 2017.11.29(레거시)에서는 생성 중일 때를 포함하여 새 리전에 복제본을 추가하기 전에 테이블의 모든 복제본을 비워야 합니다. 버전 2019.11.21(현재)에서는 이미 데이터가 포함된 테이블의 리전에 복제본을 추가 및 제거할 수 있습니다.
+ 버전 2017.11.29(레거시)는 복제본 관리를 위해 다음과 같은 컨트롤 플레인 전용 API 세트를 사용합니다.
  + [CreateGlobalTable](https://docs.aws.amazon.com/amazondynamodb/latest/APIReference/API_CreateGlobalTable.html)
  + [DescribeGlobalTable](https://docs.aws.amazon.com/amazondynamodb/latest/APIReference/API_DescribeGlobalTable.html)
  + [DescribeGlobalTableSettings](https://docs.aws.amazon.com/amazondynamodb/latest/APIReference/API_DescribeGlobalTableSettings.html)
  + [ListGlobalTables](https://docs.aws.amazon.com/amazondynamodb/latest/APIReference/API_ListGlobalTables.html)
  + [UpdateGlobalTable](https://docs.aws.amazon.com/amazondynamodb/latest/APIReference/API_UpdateGlobalTable.html)
  + [UpdateGlobalTableSettings](https://docs.aws.amazon.com/amazondynamodb/latest/APIReference/API_UpdateGlobalTableSettings.html)

  버전 2019.11.21(현재)은 [DescribeTable](https://docs.aws.amazon.com/amazondynamodb/latest/APIReference/API_DescribeTable.html) 및 [UpdateTable](https://docs.aws.amazon.com/amazondynamodb/latest/APIReference/API_UpdateTable.html) API를 사용하여 복제본을 관리합니다.
+ 버전 2017.11.29(레거시)는 각 쓰기에 대해 2개의 DynamoDB Streams 레코드를 게시합니다. 버전 2019.11.21(현재)은 각 쓰기에 대해 1개의 DynamoDB Streams 레코드를 게시합니다.
+ 버전 2017.11.29(레거시)는 `aws:rep:deleting`, `aws:rep:updateregion` 및 `aws:rep:updatetime` 속성을 채우고 업데이트합니다. 버전 2019.11.21(현재)은 이러한 속성을 채우거나 업데이트하지 않습니다.
+ 버전 2017.11.29(레거시)는 복제본 간에 [DynamoDB에서 TTL(Time To Live) 사용](TTL.md) 설정을 동기화하지 않습니다. 버전 2019.11.21(현재)은 복제본 간에 TTL 설정을 동기화합니다.
+ 버전 2017.11.29(레거시)는 TTL 삭제를 다른 복제본에 복제하지 않습니다. 버전 2019.11.21(현재)은 TTL 삭제를 모든 복제본에 복제합니다.
+ 버전 2017.11.29(레거시)는 복제본 간에 [Auto Scaling](AutoScaling.md) 설정을 동기화하지 않습니다. 버전 2019.11.21(현재)은 복제본 간에 Auto Scaling 설정을 동기화합니다.
+ 버전 2017.11.29(레거시)는 복제본 간에 [글로벌 보조 인덱스(GSI)](GSI.md) 설정을 동기화하지 않습니다. 버전 2019.11.21(현재)은 복제본 간에 GSI 설정을 동기화합니다.
+ 버전 2017.11.29(레거시)는 복제본 간에 [저장 시 암호화](encryption.usagenotes.md) 설정을 동기화하지 않습니다. 버전 2019.11.21(현재)은 복제본 간에 저장 시 암호화 설정을 동기화합니다.
+ 버전 2017.11.29(레거시)는 `PendingReplicationCount` 지표를 게시합니다. 버전 2019.11.21(현재)은 이 지표를 게시하지 않습니다.

## 현재 버전으로 업그레이드
<a name="upgrading-to-current-version"></a>

### 글로벌 테이블 업그레이드에 필요한 권한
<a name="V2globaltables_versions.Notes-permissions"></a>

버전 2019.11.21(현재)로 업그레이드하려면 복제본이 있는 모든 리전에 `dynamodb:UpdateGlobalTableversion` 권한이 있어야 합니다. DynamoDB 콘솔에 액세스하고 테이블을 보는 데 필요한 권한에 더해 이러한 권한이 필요합니다.

다음 IAM 정책은 글로벌 테이블을 버전 2019.11.21(현재)로 업그레이드할 수 있는 권한을 부여합니다.

```
{
    "version": "2012-10-17",		 	 	 
    "Statement": [
        {
            "Effect": "Allow",
            "Action": "dynamodb:UpdateGlobalTableversion",
            "Resource": "*"
        }
    ]
}
```

다음 IAM 정책은 두 개의 리전에 복제본이 있는 `Music` 글로벌 테이블만 버전 2019.11.21(현재)로 업그레이드할 수 있는 권한을 부여합니다.

```
{
    "version": "2012-10-17",		 	 	 
    "Statement": [
        {
            "Effect": "Allow",
            "Action": "dynamodb:UpdateGlobalTableversion",
            "Resource": [
                "arn:aws:dynamodb::123456789012:global-table/Music",
                "arn:aws:dynamodb:ap-southeast-1:123456789012:table/Music",
                "arn:aws:dynamodb:us-east-2:123456789012:table/Music"
            ]
        }
    ]
}
```

### 업그레이드 중 기대할 수 있는 사항
<a name="V2GlobalTablesUpgradeExpectations"></a>
+ 업그레이드하는 동안 모든 글로벌 테이블 복제본은 읽기 및 쓰기 트래픽을 계속 처리합니다.
+ 업그레이드 프로세스에는 테이블 크기와 복제본 수에 따라 몇 분에서 몇 시간이 소요됩니다.
+ 업그레이드 프로세스 중에 [TableStatus](https://docs.aws.amazon.com/amazondynamodb/latest/APIReference/API_TableDescription.html#DDB-Type-TableDescription-TableStatus)의 값은 `ACTIVE`에서 `UPDATING`으로 변경됩니다. [DescribeTable](https://docs.aws.amazon.com/amazondynamodb/latest/APIReference/API_DescribeTable.html) API를 간접적으로 호출하거나 DynamoDB 콘솔의 **테이블** 보기를 사용하여 테이블 상태를 볼 수 있습니다.
+ 테이블이 업그레이드되는 동안에는 Auto Scaling이 글로벌 테이블의 프로비저닝된 용량 설정을 조정하지 않습니다. 업그레이드 중에는 테이블을 [온디맨드](capacity-mode.md#capacity-mode-on-demand) 용량 모드로 설정하는 것이 좋습니다.
+ 업데이트 중에 [프로비저닝된](provisioned-capacity-mode.md) 용량 모드를 Auto Scaling과 함께 사용하도록 선택한 경우 업그레이드 기간 동안 예상되는 트래픽 증가를 수용하여 업그레이드 중 제한을 피하기 위해 정책의 최소 읽기 및 쓰기 처리량을 늘려야 합니다.
+ 업그레이드 프로세스 중에 `ReplicationLatency` 지표가 지연 시간 급증을 일시적으로 보고하거나 지표 데이터 보고를 중지할 수 있습니다. 자세한 내용은 [ReplicationLatency](metrics-dimensions.md#ReplicationLatency)를 참조하세요.
+ 업그레이드 프로세스가 완료되면 테이블 상태가 `ACTIVE`로 변경됩니다.

### 업그레이드 전, 업그레이드 중, 업그레이드 후의 DynamoDB Streams 동작
<a name="V2GlobalTablesUpgradeDDBStreamsBehavior"></a>

[\[See the AWS documentation website for more details\]](http://docs.aws.amazon.com/ko_kr/amazondynamodb/latest/developerguide/V2globaltables_versions.html)

### 버전 2019.11.21(현재)로 업그레이드
<a name="V2globaltables_versions.upgrade"></a>

AWS Management Console을 사용하여 DynamoDB 글로벌 테이블의 버전을 업그레이드하려면 다음 단계를 수행하세요.

**글로벌 테이블을 버전 2019.11.21(현재)로 업그레이드하는 방법**

1. [https://console.aws.amazon.com/dynamodb/home](https://console.aws.amazon.com/dynamodb/home)에서 DynamoDB 콘솔을 엽니다.

1. 콘솔 왼쪽의 탐색 창에서 **테이블**을 선택한 다음 버전 2019.11.21(현재)로 업그레이드할 글로벌 테이블을 선택합니다.

1. **전역 테이블** 탭을 선택합니다.

1. **Update version(버전 업데이트)**을 선택합니다.  
![\[버전 업데이트 버튼을 보여주는 콘솔 스크린샷\]](http://docs.aws.amazon.com/ko_kr/amazondynamodb/latest/developerguide/images/GlobalTables-upgrade.png)

1. 새 요구 사항을 읽고 동의한 다음 **버전 업데이트(Update version)**를 선택합니다.

1. 업그레이드 프로세스가 완료되면 콘솔에 나타나는 글로벌 테이블 버전이 **2019.11.21**로 변경됩니다.