DynamoDB: 테이블이 이미 존재합니다.

TL;DR — 작업에서 대상 테이블을 _생성_하려고 하며 이름은 이미 이 계정 + 지역에서 사용됩니다. (RestoreTableFromBackup / RestoreTableToPointInTime)을 복원하여 TableAlreadyExistsException를 던집니다. CreateTableImportTableResourceInUseException와 동일한 상황을 보고합니다. 새 대상 이름을 선택하세요. 복원 및 가져오기는 기존 테이블에 쓸 수 없습니다.

무엇을 의미하는가

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

# what the engine actually returns, reproduced against DynamoDB Local:
ResourceInUseException: Cannot create preexisting 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, see ResourceInUseException의 경우 CreateTable 쪽에서 실패함).

  3. 가져오기의 경우 사용되지 않은 대상 이름을 선택합니다. — ImportTable은 새 테이블만 생성합니다. 기존 테이블에 데이터를 로드하려면 대신 BatchWriteItem/PutItem를 사용하여 작성하세요.

  4. IaC 재시도의 경우 생성을 시도하는 대신 기존 테이블을 스택 상태로 가져오거나 이름을 바꿉니다.

  5. 실제로 존재하는 것이 무엇인지 확인 — 동일한 지역/계정에 있는 aws dynamodb list-tables 이름이 실제로 무료인지 확인합니다.

  6. 복원된 테이블에 날짜 스탬프를 붙여(orders-20260812-restore) 잘라내기와 정리가 명확하도록 합니다.

DynoTable에서 측정

컷오버 전에 DynoTable에서 원본 테이블과 복원된 테이블을 모두 엽니다. ⌘K로 전환하고 항목을 나란히 무작위로 검사합니다. 스테이징(⌘S)을 사용하면 프로덕션 트래픽을 건드리지 않고도 복원된 복사본에 대해 쓰기를 테스트할 수 있습니다.

복원된 테이블의 크기를 pricing calculator로 지정합니다. ⌘P로 계정/지역을 전환하세요. 설정 → 프로필에서 연결 테스트를 수행합니다. Connect to AWSInstall를 참조하세요.

출처

관련 오류

참고 자료

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

Console 없이 DynamoDB 작업하기

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

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