DynamoDB는 트랜잭션을 지원하나요?

네. DynamoDB는 TransactWriteItemsTransactGetItems로 ACID 트랜잭션을 지원합니다. 각 트랜잭션은 같은 계정과 리전 안의 하나 이상의 테이블에 걸친 최대 100개의 작업을 전부 아니면 전무인 하나의 작업으로 묶으며, 합계 크기 한도는 4 MB입니다. 어느 한 작업이라도 실패하면 아무것도 적용되지 않습니다.

두 가지 트랜잭션 API

  • TransactWriteItemsPut, Update, Delete, ConditionCheck 작업을 원자적으로 묶습니다. 동기적이며 멱등합니다.
  • TransactGetItems — 원자적이고 일관된 하나의 스냅샷으로 여러 항목을 읽습니다.

규칙과 한도

  • 트랜잭션당 하나 이상의 테이블에 걸쳐 최대 100개 항목.
  • 모든 테이블은 같은 계정과 리전 에 있어야 합니다.
  • 합산 항목 크기는 4 MB 를 넘을 수 없습니다.
  • 하나의 트랜잭션에서 같은 항목을 두 번 대상으로 삼을 수 없습니다.
  • 글로벌 테이블 에서는 ACID 보장이 트랜잭션이 실행된 리전 안에서만 적용됩니다. 변경 사항은 커밋 이후 다른 리전으로 복제되며, 다중 리전 강력한 일관성(MRSC) 모드의 글로벌 테이블은 트랜잭션 API를 아예 지원하지 않습니다.

원자성의 비용

같은 항목, 두 가지 경로, ReturnConsumedCapacity를 켠 상태:

PutItem, one 920-byte item                 ConsumedCapacity 1
TransactWriteItems, the same single Put    ConsumedCapacity 2

트랜잭션 쓰기는 쓰기 두 번어치의 용량이고, 트랜잭션 읽기는 읽기 두 번어치입니다. 지속적으로 보면 이 두 배가 절충의 전부입니다. 1 KB 항목을 초당 100번 쓰면 us-east-1 온디맨드에서 월 $164.25이고, 그 전부를 트랜잭션으로 처리하면 $328.50입니다. 요금 계산기에는 바로 이 비교를 위한 트랜잭션 일관성 설정이 있습니다.

두 번 적용되지 않는 재시도

타임아웃된 트랜잭션도 이미 커밋되었을 수 있으므로, 위험한 쪽은 트랜잭션이 아니라 재시도입니다. 재시도를 안전하게 만들어 주는 것이 ClientRequestToken입니다. 같은 ADD counter :one 트랜잭션을 하나의 토큰으로 두 번 보내면:

TransactWriteItems  (token order-4711)     200
TransactWriteItems  (token order-4711)     200
GetItem counter                            {"N": "1"}

두 호출 모두 성공했고 카운터는 한 번만 움직였습니다. 토큰은 첫 요청이 끝난 뒤 10분간 유효합니다. 그 뒤에 재사용하면 두 번째 호출은 새 트랜잭션이므로 카운터가 다시 움직입니다. 유효 시간 안에서 다른 파라미터를 바꾼 채 재사용하면 DynamoDB는 IdempotentParameterMismatch를 반환합니다.

트랜잭션 vs 배치

각 항목을 따로 적용해 일부 쓰기는 성공하고 일부는 실패할 수 있는 BatchWriteItem과 달리, 트랜잭션은 전부 아니면 전무입니다. 부분 적용이 데이터를 망가뜨릴 상황에 쓰세요.

더 알아보기

DynamoDB 트랜잭션에서 패턴을 익히고, 트랜잭션이 기대는 조건 표현식은 Expression Builder로 만드세요. 항목 편집을 검토 가능한 diff로 스테이징하고 한꺼번에 트랜잭션 배치로 커밋하려면 DynoTable을 다운로드하세요.

참고 자료

위에 링크된 공식 AWS 문서를 기준으로 2026-07-13에 마지막으로 검증했으며, 100개 작업 한도와 10분 멱등성 유효 시간은 2026-07-28에 재확인했습니다.

ConsumedCapacity 값과 멱등 재실행은 2026-07-28에 @aws-sdk/client-dynamodb 3.1095.0으로 DynamoDB Local 3.3.0에 대해 재현했습니다. 월 비용은 동기화된 AWS 요금 테이블의 us-east-1 온디맨드 쓰기 요청 단위 가격으로 계산했습니다.

Console 없이 DynamoDB 작업하기

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

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