ReplicatedWriteConflectException
TL;DR — _다른 지역_의 요청이 동일한 항목을 수정하는 동안 다중 지역 MRSC(강력한 일관성) 전역 테이블의 항목에 썼습니다. 강력한 다중 지역 일관성으로 인해 두 가지 모두 성공할 수 없으므로 하나의 쓰기가 거부됩니다. AWS는 이를 재시도 가능하다고 문서화합니다. 가능한 한 물러서서 재시도하고 인기 항목에 대한 지역 간 경합을 줄입니다.
무엇을 의미하는가
ReplicatedWriteConflictException: One or more items in this request are
being modified by a request in another Region.클래식(최종 일관성) 전역 테이블은 모든 곳에서 동시 쓰기를 허용하고 나중에 마지막 작성자 승리로 조정합니다. MRSC 전역 테이블은 정반대의 거래를 합니다. 쓰기는 승인되기 전에 여러 지역에서 조정되어야 하므로 두 지역이 동시에 동일한 항목을 수정하는 것은 진정한 충돌이며 한쪽에서는 자동 덮어쓰기 대신 이 예외가 발생합니다.
왜 발생하는가
- 동일한 항목이 여러 지역에서 동시에 기록됩니다 — 두 개의 애플리케이션 배포 모두 해당 항목을 업데이트할 항목으로 처리합니다.
- 핫한 조정 항목 — 모든 지역에서 접촉하는 카운터, 잠금 장치 또는 싱글톤 구성 항목은 자연스러운 충돌 자석입니다.
- 지역 전체에 걸쳐 폭풍 재시도 — 다른 지역에서 동일한 논리 작업을 동시에 재시도하면 계속해서 다시 충돌합니다.
어떻게 해결하는가
지수적 백오프 및 지터를 사용하여 재시도 — 충돌은 순간적입니다. 다른 리전의 쓰기가 완료되면 재시도가 진행됩니다. AWS는 이 오류를 재시도 가능으로 표시합니다.
// let the SDK's adaptive retry handle it, or catch and back off: catch (e) { if (e.name === 'ReplicatedWriteConflictException') return retryWithBackoff(op); throw e; }항목에 홈 지역 제공 — 특정 키에 대한 쓰기를 하나의 지역(사용자 상주, 테넌트 또는 파티션 기준)을 통해 라우팅하고 다른 지역은 대부분 읽기 전용으로 유지합니다. 한 지역에서만 항목을 변경하면 경합이 사라집니다.
동시 업데이트 교환 가능 — 개별 속성에 대한 원자 카운터 업데이트(
ADD/SET x = x + :n)는 전체 항목에 대한 읽기-수정-쓰기 주기보다 충돌이 적습니다.경주 패배 후 의도 재확인 — 다른 지역에서 항목을 변경했습니다. 조건부 재시도(버전 속성의
ConditionExpression)는 쓰기가 새 상태에 대해 여전히 유효한지 확인합니다.하나의 지역을 통해 핫 조정 항목을 라우팅합니다. 모든 지역에서 작성된 잠금, 카운터 및 구성 Blob은 일반적인 충돌 소스입니다.
DynoTable에서 검사
충돌 후 여러 지역에서 동일한 항목을 비교합니다. ⌘P로 전환하고, ⌘K로 테이블을 열고, 각 복제본 지역의 항목을 나란히 읽습니다. 스테이징(⌘S)을 사용하면 조건부 재시도를 준비하고 커밋하기 전에 차이점을 검토할 수 있습니다.
핫 테이블에서 MRSC를 활성화하기 전에 pricing calculator를 사용하여 복제된 쓰기 비용을 추정합니다. 설정 → 프로필에서 연결 테스트를 통해 각 지역을 구성합니다. Connect to AWS 및 Install를 참조하세요.
출처
- How DynamoDB global tables work (2026-07-13 인증)
- Error handling with DynamoDB (2026-07-13 인증)
관련 오류
- TransactionConflictException — 단일 지역 사촌: 진행 중인 거래가 항목을 소유합니다.
- 글로벌 테이블 버전 불일치
- ReplicaAlreadyExistsException
- 학습: DynamoDB global tables
참고 자료
- Error handling with DynamoDB — Amazon DynamoDB Developer Guide
- How DynamoDB global tables work — Amazon DynamoDB Developer Guide
- PutItem — Amazon DynamoDB API Reference
위에 링크된 공식 AWS 문서를 기준으로 2026년 7월 13일에 마지막으로 확인되었습니다.