DynamoDB: Table already exists

요약 — 작업이 대상 테이블을 생성 하려는데 이름이 이 계정 + 리전에서 이미 사용 중입니다. 복원(RestoreTableFromBackup / RestoreTableToPointInTime)은 TableAlreadyExistsException을 던지고, CreateTableImportTable은 같은 상황을 ResourceInUseException으로 보고합니다. 새 대상 이름을 고르세요 — 복원과 가져오기는 기존 테이블에 쓸 수 없습니다.

무엇을 의미하나요

TableAlreadyExistsException: A target table with the specified name already exists
ResourceInUseException: Table already exists: my-table

복원과 가져오기 작업은 항상 완전히 새로운 테이블을 생성합니다 — 라이브 테이블에 병합하거나 덮어쓸 수 없습니다. 대상 이름이 같은 계정과 리전에서 (상태와 관계없이) 기존 테이블로 해석되면 요청이 미리 실패합니다. 어느 예외를 보는지는 API에 따라 다릅니다: 복원 계열은 자체 TableAlreadyExistsException을 가지고, CreateTableImportTable은 일반 ResourceInUseException으로 나타냅니다.

왜 발생하나요

  • 백업을 원래 이름으로 복원 — 자연스러운 본능("테이블을 되돌려 놓기")이 여전히 존재하는 테이블과 충돌합니다.
  • 가져오기나 IaC 배포 재실행 — 재시도된 ImportTable, 또는 스택의 상태 밖에 이미 존재하는 테이블을 만들려는 CloudFormation/Terraform/CDK 스택.
  • 생성-후-재시도 경합 — 첫 CreateTable이 성공했거나(또는 여전히 CREATING) 재시도가 이름이 사용 중임을 발견합니다.
  • 환경 충돌 — 두 스테이지/환경이 계정을 공유하고 둘 다 접두사 없는 이름을 원합니다.

어떻게 고치나요

  1. 새 이름으로 복원한 다음 전환하세요my-table-restored로 복원하고, 데이터를 검증하고, 애플리케이션을 다시 가리키세요(또는 이전 테이블을 삭제하고 사라진 후 원래 이름으로 다시 복원):

    aws dynamodb restore-table-from-backup \
      --target-table-name my-table-restored \
      --backup-arn arn:aws:dynamodb:...:table/my-table/backup/...
  2. 테이블을 교체하려면, 기존 것을 먼저 삭제하고 삭제가 완료될 때까지 기다리세요 — 테이블이 DELETING 상태인 동안 이름이 사용 중으로 유지됩니다(그때 시도된 복원은 TableInUseException으로 실패합니다. CreateTable 측은 ResourceInUseException 참조).

  3. 가져오기의 경우, 사용하지 않는 대상 이름을 고르세요 — ImportTable은 새 테이블만 만듭니다. 기존 테이블에 데이터를 로드하려면 대신 BatchWriteItem/PutItem으로 쓰세요.

  4. IaC 재시도의 경우, 생성과 싸우기보다 기존 테이블을 스택의 상태로 가져오세요(또는 이름 변경).

  5. 실제로 무엇이 존재하는지 확인하세요 — 같은 리전/계정에서 aws dynamodb list-tables가 이름이 정말 비어 있는지 결정합니다.

전환 전에 복원된 테이블을 검증하는 것은 사람들이 건너뛰는 안전한 단계입니다 — DynoTable 데스크톱 앱은 복원된 테이블과 원래 테이블을 나란히 두므로 스키마를 비교하고 항목을 먼저 확인할 수 있습니다. 그리고 복원된 테이블 운영 비용을 추정한다면 DynamoDB 요금 계산기가 두 용량 모드를 다룹니다.

관련 오류

References

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

Console 없이 DynamoDB 작업하기

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