GlobalTableNotFoundException

요약 — DescribeGlobalTable / UpdateGlobalTable버전 2017.11.29 (Legacy) 글로벌 테이블만 봅니다. 버전 2019.11.21 (Current) — 여러분이 사용해야 하는 것 — 로 만든 글로벌 테이블은 DescribeTable / UpdateTable을 통해 복제본이 있는 일반 테이블 로 관리되며, 레거시 API는 이를 존재하지 않는 것으로 보고합니다. 테이블이 사라졌다고 가정하기 전에 어느 버전인지 확인하세요.

무엇을 의미하나요

GlobalTableNotFoundException: The specified global table does not exist.

DynamoDB에는 두 개의 분리된 API 표면을 가진 두 세대의 글로벌 테이블이 있습니다. 레거시(2017.11.29) 세대는 DescribeGlobalTable, UpdateGlobalTable, UpdateGlobalTableSettings가 작동하는 이름 있는 "글로벌 테이블" 객체를 등록합니다. 현재(2019.11.21) 세대에는 그런 객체가 없습니다 — 복제본이 테이블 자체에 있습니다 — 그래서 그 레거시 호출은 테이블이 완벽하게 복제되고 있어도 이 예외로 응답합니다.

왜 발생하나요

  • 테이블이 현재 버전(2019.11.21) 글로벌 테이블임 — 단연 흔한 원인: 레거시 API가 단순히 인덱싱하지 않습니다.
  • 그 이름으로 글로벌 테이블이 생성된 적 없음 — 테이블은 존재하지만 복제본이 없거나, 이전에 복제 설정이 실패했습니다.
  • 잘못된 리전이나 이름 오타 — 레거시 글로벌 테이블 등록은 정확한 이름으로 조회됩니다.

어떻게 고치나요

  1. 버전을 확인하세요:

    aws dynamodb describe-table --table-name orders \
      --query 'Table.GlobalTableVersion'
    # "2019.11.21" → use DescribeTable/UpdateTable, not the legacy APIs
  2. 현재 버전 복제본을 UpdateTable로 관리하세요:

    aws dynamodb update-table --table-name orders \
      --replica-updates '[{"Create": {"RegionName": "eu-west-1"}}]'

    그리고 describe-global-table이 아니라 describe-table(의 Replicas 필드)로 검사하세요.

  3. 레거시 도구를 쓰나요? 진짜로 2017.11.29 글로벌 테이블을 운영한다면 등록의 이름과 리전을 확인하세요 — 그리고 AWS가 유연성과 낮은 복제 쓰기 비용을 위해 권장하는 2019.11.21로의 업그레이드를 계획하세요.

  4. 처음부터 만들기: 테이블을 만든 다음 UpdateTable로 복제본을 추가하세요 — 새 코드에서 CreateGlobalTable(레거시)에 손대지 마세요.

리전 전반의 복제본 상태를 확인하는 것은 테이블을 나란히 두면 더 빠릅니다 — DynoTable 데스크톱 앱은 한 창에서 모든 리전에 연결하고, DynamoDB 요금 계산기는 복제본을 추가하기 전에 복제 쓰기 비용을 추정합니다.

관련 오류

References

공식 AWS 문서(위 링크)를 기준으로 2026-07-13에 마지막으로 검증되었습니다.

Console 없이 DynamoDB 작업하기

DynoTable은 DynamoDB를 위한 빠른 데스크톱 클라이언트입니다 — 테이블을 탐색하고, SQL 스타일 쿼리를 실행하고, 항목을 로컬에서 편집하세요.