DynamoDB ReplicaNotFoundException
TL;DR — 업데이트하거나 제거하려는 지역 복제본이 이 전역 테이블의 일부가 아닙니다. 일반적으로 잘못된 지역 이름, 이미 제거된 복제본 또는 다른 진행 중인 복제본 업데이트를 경쟁하는 호출입니다. DescribeTable로 현재 복제본을 확인한 다음 존재하는 복제본을 대상으로 삼습니다.
무엇을 의미하는가
ReplicaNotFoundException: The specified replica is no longer part of the global table.전역 테이블 작업(UpdateGlobalTable 또는 ReplicaUpdates/Delete이 포함된 UpdateTable)은 AWS 리전별로 복제본을 처리합니다. 이 HTTP 400은 이름을 지정한 지역이 현재 전역 테이블의 복제본이 아님을 의미합니다. 실제 복제본을 대상으로 할 때까지 클라이언트 측에서 재시도할 수 없습니다.
왜 발생하는가
- 잘못된 지역 코드 — 복제본이
us-east-1에 있거나 추가된 적이 없는 지역인 경우us-east-2입니다. - 복제본이 이미 제거됨 — 이전 업데이트가 이미 테이블에서 삭제된 지역에 대한 삭제입니다.
- 중복 복제본 변경 — 테이블이 이전 변경으로부터 아직
UPDATING인 동안에는UpdateTable을 실행할 수 없으며, AWS는 각 복제본 추가/제거에 대해 별도의 요청을 발행할 것을 권장합니다. 레이싱 자동화는 이미 제거된 다른 작업의 복제본을 대상으로 할 수 있습니다. - 기본 테이블과 복제본 혼동 — 이 테이블의 복제본을 호스팅하지 않는 지역에서 작동합니다.
- 버전 혼동 — 레거시 버전 2017.11.29(
GlobalTable)과 현재 2019.11.21(replica-on-table) API를 혼합합니다.
어떻게 해결하는가
현재 복제본과 해당 상태를 나열합니다.
aws dynamodb describe-table --table-name <Table> \ --query "Table.Replicas[].{Region:RegionName,Status:ReplicaStatus}"실제로 목록에 있는 지역을 타겟팅 — 지역 코드를 정확하게 복사하세요.
한 번에 하나의 복제본을 변경합니다. 다음 업데이트 전에 테이블이
ACTIVE(그리고 이전 추가/제거가 완료될 때까지)로 돌아갈 때까지 기다립니다.이미 사라진 복제본을 제거하시겠습니까? 할 일이 없습니다.
ReplicaNotFoundException을 이미 삭제가 완료된 것으로 처리하십시오.현재(2019.11.21) API를 사용 — 레거시 글로벌 테이블 API가 아닌
UpdateTableReplicaUpdates를 통해 복제본을 관리합니다.
여러 지역에 걸쳐 테이블을 관리하시나요? DynoTable desktop app에는 각 테이블의 복제본과 해당 상태가 표시되므로 실제로 전역 테이블의 일부인 지역에서 작업을 수행할 수 있습니다.
먼저 DynoTable에서 확인
DynoTable에서 테이블을 열고 UpdateTable ReplicaUpdates를 실행하기 전에 실제로 존재하는 지역에 대한 테이블 통계/복제본 목록을 확인하세요. ⌘P로 프로필을 전환하면 전역 테이블을 소유한 계정을 볼 수 있습니다. 복제본 영역이 사라지면 DynoTable은 이를 생략합니다. 클릭할 수 있는 오래된 콘솔 카드가 없습니다.
라이브 목록과 지역 코드를 대조 확인한 후 IaC 또는 CLI에서 제어 영역 변경을 다시 실행하세요. 복제본에 대한 일상적인 읽기의 경우 지역당 하나의 DynoTable 프로필을 유지하고 ARN을 추측하는 대신 ⌘1–⌘9로 전환합니다. query builder은 활성 프로필 영역에 유지되므로 us-east-1 쿼리와 us-west-2 테이블 이름을 혼합하지 마십시오.
출처
- UpdateGlobalTable — Amazon DynamoDB API Reference (2026-07-13 인증)
- Global tables — Amazon DynamoDB Developer Guide (2026-07-13 인증)
관련 오류
- ResourceNotFoundException — 테이블 자체를 지역/계정에서 찾을 수 없습니다.
- ResourceInUseException — 복제본 변경 사항이 테이블의 현재 상태와 충돌합니다.
- 학습: Global tables
참고 자료
- UpdateGlobalTable — Amazon DynamoDB API Reference
- UpdateTable — Amazon DynamoDB API Reference
- Global tables — Amazon DynamoDB Developer Guide
- Determining the global table version you are using — Amazon DynamoDB Developer Guide
위에 링크된 공식 AWS 문서를 기준으로 2026년 7월 13일에 마지막으로 확인되었습니다.