글로벌 테이블 - DynamoDB의 다중 리전 복제 - Amazon DynamoDB

글로벌 테이블 - DynamoDB의 다중 리전 복제

2019년 11월 21일 버전(현재)2017년 11월 29일 버전의 2가지 버전 DynamoDB 글로벌 테이블을 사용할 수 있습니다. 사용 중인 버전을 확인하려면 버전 확인 단원을 참조하십시오.

Amazon DynamoDB 글로벌 테이블은 복제 솔루션을 직접 구축하여 관리하지 않고도 다중 리전의 다중 활성 데이터베이스를 배포할 수 있는 완전관리형 솔루션을 제공합니다. 테이블을 사용할 수 있는 AWS 리전을 지정할 수 있습니다. 그러면 DynamoDB가 지속적인 데이터 변경 사항을 모든 해당 리전으로 전파합니다.

DynamoDB 글로벌 테이블은 전역적으로 사용자가 분산된 대규모 애플리케이션에 유용합니다. 이러한 환경에서 사용자는 매우 빠른 애플리케이션 성능을 경험할 수 있습니다. 글로벌 테이블은 전 세계 AWS 리전에 자동 멀티 활성 복제본을 제공합니다. 따라서 사용자의 위치에 관계 없이 지연 시간이 짧은 데이터 액세스를 제공할 수 있습니다.

글로벌 테이블을 사용하여 원활하게 리전 간 데이터 복제

미국 동부 해안, 미국 서부 해안, 서부 유럽의 세 지역에 대규모의 고객이 있다고 가정합니다. 이러한 고객은 해당 애플리케이션을 사용하는 동안 프로필 정보를 업데이트할 수 있습니다. 이 사용 사례의 요건을 채우기 위해 고객이 있는 세 개의 다른 AWS 리전에 CustomerProfiles라는 이름의 동일한 세 개의 DynamoDB 테이블을 생성해야 합니다. 이러한 세 가지 테이블은 서로 완전히 별도의 테이블이며 한 테이블의 데이터 변경 사항이 다른 테이블에 반영되지 않습니다. 관리형 복제 솔루션 없이 데이터 변경 사항을 복제하는 코드를 작성할 수 있지만, 이렇게 하려면 시간과 노동력이 많이 필요합니다.

코드를 직접 작성하는 대신 세 개의 리전별 CustomerProfiles 테이블로 구성된 글로벌 테이블을 만들 수 있습니다. DynamoDB는 자동으로 데이터 변경을 이러한 테이블 간에 복제하므로 한 리전에서 CustomerProfiles 데이터가 변경되면 다른 리전으로 자동 전파됩니다. 또한 AWS 리전 중 하나가 일시적으로 사용 불가 상태가 될 경우에도 고객은 다른 리전에서 동일한 CustomerProfiles 데이터를 액세스할 수 있습니다.

서로 다른 리전의 복제본에 각기 다른 액세스 패턴이 있는 경우 각 복제본은 다른 테이블 클래스를 사용하여 비용과 성능을 최적화할 수 있습니다. 예를 들어, 자주 액세스하지 않는 복제본은 DynamoDB Standard-Access 테이블 클래스를 사용할 수 있지만, 다른 복제본은 자주 액세스하는 데이터에 DynamoDB Standard 테이블 클래스를 사용합니다. 이 경우 처리량이 중요한 비용입니다.

참고
  • 글로벌 테이블 2017년 11월 29일 버전는 미국 동부(버지니아 북부), 미국 동부(오하이오), 미국 서부(캘리포니아 북부), 미국 서부(오레곤), 유럽(아일랜드), 유럽(런던), 유럽(프랑크푸르트), 아시아 태평양(싱가포르), 아시아 태평양(시드니), 아시아 태평양(도쿄) 및 아시아 태평양(서울) 리전에서 사용 가능합니다.

  • 트랜잭션 작업은 원래 쓰기 작업이 실행된 리전에서만 ACID(원자성, 일관성, 격리 및 내구성) 보장을 제공합니다. 전역 테이블에서는 트랜잭션이 리전 간에 지원되지 않습니다. 예를 들어 미국 동부(오하이오) 및 미국 서부(오레곤) 리전에 복제본이 있는 전역 테이블에 대해 미국 동부(버지니아 북부)에서 TransactWriteItems 작업을 수행할 경우 변경 내용이 복제될 때 미국 서부(오레곤)에서 부분적으로 완료된 트랜잭션을 관찰할 수 있습니다. 변경 내용은 소스 리전에서 커밋된 이후에만 다른 리전에 복제됩니다.

  • AWS 리전을 비활성화하는 경우 DynamoDB는 AWS 리전에 액세스할 수 없는 것으로 감지하고 20시간 후 복제 그룹에서 이 복제본을 제거합니다. 복제본이 삭제되지 않고 이 리전에서와 이 리전으로의 복제가 중지됩니다.

  • 소스 테이블을 성공적으로 삭제하려면 읽기 전용 복제본을 추가한 후 24시간을 기다려야 합니다. 읽기 전용 복제본을 추가한 후 처음 24시간 동안 테이블을 삭제하려고 하면 "Replica cannot be deleted because it has acted as a source region for new replicas being added in the table in the last 24 hours"(최근 24시간 동안 테이블에 추가된 새 복제본의 소스 리전 역할을 했기 때문에 복제본을 삭제할 수 없습니다)라는 오류 메시지가 나타납니다.

AWS 리전의 가용성과 요금에 대한 자세한 내용은 Amazon DynamoDB 요금을 참조하세요.

AWS KMS를 사용하여 글로벌 테이블에 대한 보안 및 액세스 제공

  • 복제본을 암호화하는 데 사용된 고객 관리형 키 또는 AWS 관리형 키에 대해 AWSServiceRoleForDynamoDBReplication 서비스 연결 역할을 사용하여 글로벌 테이블에 대한 AWS KMS 작업을 수행할 수 있습니다.

  • 복제본을 암호화하는 데 사용된 고객 관리형 CMK에 액세스할 수 없는 경우 DynamoDB는 복제 그룹에서 이 복제본을 제거합니다. 복제본은 삭제되지 않으며 KMS 키에 액세스할 수 없는 것으로 감지된 후 20시간이 지나면 이 리전에서 복제가 중지됩니다.

  • 복제 테이블을 암호화하는 데 사용된 고객 관리형 CMK를 비활성화하려는 경우 복제 테이블을 암호화하는 데 키가 더 이상 사용되지 않는 경우에만 그렇게 해야 합니다. 복제 테이블을 삭제하는 명령을 실행한 후에는 삭제 작업이 완료되고 글로벌 테이블이 Active가 될 때까지 기다린 이후에 키를 비활성화해야 합니다. 이렇게 하지 않으면 복제 테이블에서 및 복제 테이블로 일부 데이터가 복제됩니다.

  • 복제 테이블의 IAM 역할 정책을 수정하거나 삭제하려면 복제 테이블이 Active 상태일 때 해야 합니다. 이렇게 하지 않으면 복제 테이블 생성, 업데이트 또는 삭제에 실패할 수 있습니다.

참고

고객 관리형 키(CMK)는 2017년 11월 29일 버전에서 지원되지 않습니다. DynamoDB 글로벌 테이블에서 CMK를 사용하려면 테이블을 2019년 11월 21일 버전(현재)로 업그레이드하고 사용 설정해야 합니다.