View a markdown version of this page

글로벌 테이블에 대한 모범 사례 - Amazon DynamoDB

글로벌 테이블에 대한 모범 사례

다음 섹션에서는 글로벌 테이블 배포 및 사용에 대한 모범 사례를 설명합니다.

버전

DynamoDB 글로벌 테이블에는 버전 2019.11.21(현재)과 버전 2017.11.29(레거시)의 두 가지 버전이 있습니다. 가능하면 버전 2019.11.21(현재)을 사용해야 합니다.

삭제 방지

실수로 삭제되지 않도록 보호하려는 글로벌 테이블 복제본에서 삭제 방지를 활성화해야 합니다. 각 복제본에서 삭제 방지를 활성화해야 합니다.

사용AWS CloudFormation

CloudFormation은 현재 스택 간 글로벌 테이블과 같은 다중 리전 리소스의 조정을 지원하지 않습니다. 별도의 리전 스택에서 글로벌 테이블의 각 복제본을 정의하면 복제본 업데이트를 수행할 때 스택 간에 감지된 드리프트로 인해 오류가 발생합니다. 이 문제를 방지하려면 글로벌 테이블을 배포하기 위한 참조 리전으로 하나의 리전을 선택하고 해당 리전의 스택에 모든 글로벌 테이블의 복제본을 정의해야 합니다.

중요

템플릿에서 유형을 변경하여 AWS::DynamoDB::Table 유형의 리소스를 AWS::DynamoDB::GlobalTable 유형의 리소스로 변환할 수 없습니다. CloudFormation 리소스 유형을 변경하여 단일 리전 테이블을 글로벌 테이블로 변환하려고 하면 DynamoDB 테이블이 삭제될 수 있습니다.

AWS::DynamoDB::GlobalTable 리소스를 사용하여 단일 리전에 테이블을 만들 수 있습니다. 이 테이블은 다른 단일 리전 테이블처럼 배포됩니다. 나중에 스택을 업데이트하여 리소스에 다른 리전을 추가하면 복제본이 테이블에 추가되고 글로벌 테이블로 안전하게 변환됩니다.

AWS::DynamoDB::GlobalTable 리소스로 변환하려는 기존 AWS::DynamoDB::Table 리소스가 있는 경우 리소스 유형을 변환하는 권장 단계는 다음과 같습니다.

  1. AWS::DynamoDB::Table 삭제 정책을 유지하도록 설정합니다.

  2. 스택 정의에서 테이블을 제거합니다.

  3. AWS 콘솔의 단일 리전 테이블에 복제본을 추가하여 글로벌 테이블로 변환합니다.

  4. 새로운 글로벌 테이블을 새 AWS::DynamoDB::GlobalTable 리소스로 스택에 가져옵니다.

참고

새 리전의 복제본을 글로벌 테이블에 추가하면 CloudFormation 템플릿에 지정된 용량 값과 관계없이 소스 리전의 프로비저닝된 용량 설정(오토 스케일링 최대 용량 포함)이 새로 생성되는 복제본에 적용됩니다. 소스 리전의 최대 용량이 대상 리전의 테이블 수준 처리량 할당량을 초과하면 복제본 생성이 실패하고 insufficient TableMaxReadCapacityUnits limits와 같은 오류가 발생합니다. 복제본이 생성된 후에는 읽기 용량 설정을 독립적으로 조정할 수 있습니다. 이러한 조정은 다른 리전으로 전파되지 않습니다. 글로벌 테이블의 테이블 수준 처리량 할당량에 대한 자세한 내용은 전역 테이블 섹션을 참조하세요.

백업 및 시점 복구

글로벌 테이블의 한 복제본에 대해 자동 백업 및 시점 복구(PITR)를 활성화하면 재해 복구 목표를 충족하기에 충분할 수 있습니다. AWS-Backup으로 만들어진 복제본 백업은 복원력을 높이기 위해 리전 간에 자동으로 복제될 수 있습니다. 백업 및 PITR 활성화 전략을 선택할 때 다중 리전 고가용성의 맥락에서 재해 복구 계획 목표를 고려하세요.

다중 리전 고가용성을 위한 설계

글로벌 테이블 배포에 대한 권장 지침은 DynamoDB 글로벌 테이블 설계 모범 사례를 참조하세요.