DynamoDB 전역 테이블 버전 불일치

TL;DR — DynamoDB에는 2017.11.29(레거시)와 2019.11.21(현재)의 두 가지 전역 테이블 버전이 있습니다. 멤버 테이블이 요구 사항을 충족하지 않으면 레거시 전역 테이블을 생성하거나 복제본을 추가할 수 없습니다. 레거시 복제본은 비어 있어야 하고, 동일한 이름, 키 스키마 및 일치하는 GSI를 공유해야 하며, DynamoDB 스트림(신규 및 기존 이미지)이 활성화되어 있어야 하고, 일관된 쓰기 용량을 사용해야 하며, 한 버전의 API를 다른 버전의 테이블에서 가리키는 것이 완전히 실패합니다. 모든 복제본의 구성을 정렬(또는 현재 버전으로 업그레이드)한 후 다시 시도하세요.

무엇을 의미하는가

ValidationException: Cannot create a global table from a table with ...
ValidationException: ... replicas must have the same ... across all regions

레거시 버전(2017.11.29)은 독립적으로 생성된 지역 테이블을 명명된 전역 테이블에 연결하므로 멤버 테이블이 정확하게 정렬되어야 합니다. 현재 버전(2019.11.21)은 테이블 자체에서 복제를 관리하고(UpdateTable로 복제본을 추가함) 복제본 전체에서 TTL, Auto Scaling, GSI 및 저장 시 암호화 설정을 자동으로 동기화합니다. 버전 불일치 오류는 결합하는 테이블이 일치하지 않거나 도구가 잘못된 버전의 API 표면과 통신할 때 나타납니다.

왜 발생하는가

  • 복제본 테이블은 비어 있지 않습니다 — 레거시 CreateGlobalTable/UpdateGlobalTable API에서는 모든 멤버 테이블에 데이터가 없어야 합니다.
  • 이름 또는 키 스키마 불일치 - 모든 복제본은 동일한 테이블 이름과 기본 키를 공유해야 합니다.
  • 일치하지 않는 GSI — 글로벌 보조 인덱스는 복제본 전체에서 이름과 해시/정렬 키가 일치해야 합니다.
  • 스트리밍 꺼짐 또는 잘못된 보기 유형 — 각 레거시 복제본에는 항목의 새 이미지와 이전 이미지가 모두 활성화된 DynamoDB 스트림이 필요합니다.
  • 일관되지 않은 쓰기 용량 — AWS에서는 쓰기 용량 설정을 복제본 테이블과 일치하는 보조 인덱스 전체에서 일관되게 설정해야 합니다(자동 확장 권장 또는 동일하게 복제된 쓰기 용량 단위).
  • 두 버전 혼합 — 현재 버전 테이블에서 레거시 API(DescribeGlobalTable, UpdateGlobalTable)를 가리키면 작동하는 대신 GlobalTableNotFoundException이 반환됩니다.
  • 오래된 AWS CLI/SDK — 2019.11.21 모델 이전 릴리스에서는 UpdateTable 기반 복제본 관리를 구동할 수 없습니다.

어떻게 해결하는가

  1. 모든 지역에서 멤버 테이블을 표준화 — 동일한 이름과 키 스키마, 일치하는 GSI, 새 이미지와 이전 이미지로 활성화된 스트림, 일관된 쓰기 용량/자동 확장 목표.
  2. 지역당 DescribeTable(현재) 또는 DescribeGlobalTableSettings(레거시 전용 API)로 현재 상태를 확인하고 각각 UpdateTable 또는 UpdateGlobalTableSettings로 드리프트를 수정합니다.
  3. 콘솔의 업데이트 버전 흐름을 통해 의도적으로 레거시 → 현재 업그레이드 — 모든 복제본 리전에서 dynamodb:UpdateGlobalTableversion 권한이 필요하며 복제본은 업그레이드 중에 읽기 및 쓰기를 계속 제공합니다.
  4. 현재 버전 복제본을 관리하기 전에 AWS CLI/SDK를 최신 릴리스로 업데이트하세요.
  5. 호환되는 기본 테이블에 복제본 추가 — 현재 버전 복제본은 UpdateTable로 추가됩니다(테이블에 이미 데이터가 포함될 수 있지만 대상 지역에 해당 이름의 테이블이 없어야 함). 레거시 복제본은 비어 있는 상태로 시작해야 합니다.
  6. 레거시 생성 전에 스트림을 활성화합니다. 각 레거시 복제본에는 새 이미지와 기존 이미지가 포함된 DynamoDB 스트림이 필요합니다. 모든 리전에서 DescribeTable로 확인하세요.

DynoTable에서 측정

전역 테이블을 생성하기 전에 지역 전체의 스키마, GSI 및 스트림 설정을 비교하십시오. ⌘P로 전환하고, ⌘K로 각 복제본을 열고 인덱스스트림 패널을 나란히 확장하세요.

pricing calculator를 사용하여 복제된 쓰기 비용을 추정합니다. 설정 → 프로필에서 연결 테스트를 통해 각 지역을 구성합니다. Connect to AWSInstall을 참조하세요.

출처

관련 오류

참고 자료

위에 링크된 공식 AWS 문서를 기준으로 2026년 7월 13일에 마지막으로 확인되었습니다.

Console 없이 DynamoDB 작업하기

DynamoDB로는 실행할 수 없는 진짜 SQL(JOINs, GROUP BY, 집계)을 실행하는 빠른 DynamoDB 데스크톱 클라이언트. 시각적 편집과 여러분 자신의 Bedrock 키로 동작하는 AI 에이전트를 제공합니다.

30일 무료 체험, 신용카드 불필요 — 이후 기간 제한 없는 무료 요금제.