ReplicatedWriteConflectException

TL;DR — _다른 지역_의 요청이 동일한 항목을 수정하는 동안 다중 지역 MRSC(강력한 일관성) 전역 테이블의 항목에 썼습니다. 강력한 다중 지역 일관성으로 인해 두 가지 모두 성공할 수 없으므로 하나의 쓰기가 거부됩니다. AWS는 이를 재시도 가능하다고 문서화합니다. 가능한 한 물러서서 재시도하고 인기 항목에 대한 지역 간 경합을 줄입니다.

무엇을 의미하는가

ReplicatedWriteConflictException: One or more items in this request are
being modified by a request in another Region.

클래식(최종 일관성) 전역 테이블은 모든 곳에서 동시 쓰기를 허용하고 나중에 마지막 작성자 승리로 조정합니다. MRSC 전역 테이블은 정반대의 거래를 합니다. 쓰기는 승인되기 전에 여러 지역에서 조정되어야 하므로 두 지역이 동시에 동일한 항목을 수정하는 것은 진정한 충돌이며 한쪽에서는 자동 덮어쓰기 대신 이 예외가 발생합니다.

왜 발생하는가

  • 동일한 항목이 여러 지역에서 동시에 기록됩니다 — 두 개의 애플리케이션 배포 모두 해당 항목을 업데이트할 항목으로 처리합니다.
  • 핫한 조정 항목 — 모든 지역에서 접촉하는 카운터, 잠금 장치 또는 싱글톤 구성 항목은 자연스러운 충돌 자석입니다.
  • 지역 전체에 걸쳐 폭풍 재시도 — 다른 지역에서 동일한 논리 작업을 동시에 재시도하면 계속해서 다시 충돌합니다.

어떻게 해결하는가

  1. 지수적 백오프 및 지터를 사용하여 재시도 — 충돌은 순간적입니다. 다른 리전의 쓰기가 완료되면 재시도가 진행됩니다. 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;
    }
  2. 항목에 홈 지역 제공 — 특정 키에 대한 쓰기를 하나의 지역(사용자 상주, 테넌트 또는 파티션 기준)을 통해 라우팅하고 다른 지역은 대부분 읽기 전용으로 유지합니다. 한 지역에서만 항목을 변경하면 경합이 사라집니다.

  3. 동시 업데이트 교환 가능 — 개별 속성에 대한 원자 카운터 업데이트(ADD / SET x = x + :n)는 전체 항목에 대한 읽기-수정-쓰기 주기보다 충돌이 적습니다.

  4. 경주 패배 후 의도 재확인 — 다른 지역에서 항목을 변경했습니다. 조건부 재시도(버전 속성의 ConditionExpression)는 쓰기가 새 상태에 대해 여전히 유효한지 확인합니다.

  5. 하나의 지역을 통해 핫 조정 항목을 라우팅합니다. 모든 지역에서 작성된 잠금, 카운터 및 구성 Blob은 일반적인 충돌 소스입니다.

DynoTable에서 검사

충돌 후 여러 지역에서 동일한 항목을 비교합니다. ⌘P로 전환하고, ⌘K로 테이블을 열고, 각 복제본 지역의 항목을 나란히 읽습니다. 스테이징(⌘S)을 사용하면 조건부 재시도를 준비하고 커밋하기 전에 차이점을 검토할 수 있습니다.

핫 테이블에서 MRSC를 활성화하기 전에 pricing calculator를 사용하여 복제된 쓰기 비용을 추정합니다. 설정 → 프로필에서 연결 테스트를 통해 각 지역을 구성합니다. Connect to AWSInstall를 참조하세요.

출처

관련 오류

참고 자료

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

Console 없이 DynamoDB 작업하기

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

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