DynamoDB는 TTL을 지원하나요?

예. DynamoDB는 Time to Live(TTL)를 지원합니다. Unix 에포크 만료 타임스탬프를 초 단위로 담은 Number 속성을 지정하면, DynamoDB가 만료된 항목을 백그라운드에서 — 보통 만료 후 며칠 이내에 — 추가 비용 없이, 쓰기 용량도 소비하지 않고 제거합니다. 만료되었지만 아직 삭제되지 않은 항목은 제거될 때까지 읽기에 나타날 수 있습니다.

활성화하는 방법

테이블에 TTL을 켜고 만료 시각을 담을 속성 이름을 지정하세요. 그 속성은 Unix 에포크 타임스탬프를 단위(밀리초가 아님)로 저장하는 Number여야 합니다. 값이 과거인 항목이 삭제 대상이 됩니다.

무엇을 기대할 수 있나요

  • 무료 — 자동 삭제는 쓰기 용량 단위를 소비하지 않습니다. 같은 정리를 직접 하면 항목당 쓰기 단위 하나가 듭니다. 만료된 1 KB 항목 천만 개는 쓰기 단위 천만 개, us-east-1 온디맨드로 $6.25이며, 그것들을 찾기 위한 100 GB 테이블 전체 Scan마다 약 $1.64가 더해집니다. (예외 하나: 글로벌 테이블에서는 다른 각 리전으로 복제된 삭제가 그곳의 복제 쓰기 용량을 소비합니다.)
  • 즉시가 아님 — DynamoDB는 보통 만료 후 며칠 이내에 만료된 항목을 제거합니다.
  • 여전히 읽힘 — 물리적으로 삭제되기 전까지 만료된 항목은 읽기, 쿼리, Scan에 나타날 수 있으므로 정확성이 중요하다면 걸러 내세요.

조용히 한 번도 작동하지 않는 방식

DynamoDB는 여러분이 TTL로 지목한 속성을 검증하지 않습니다. 아래 두 쓰기는 expiresAt에 TTL이 켜진 테이블에서 모두 HTTP 200을 반환했고, 어느 항목도 결코 만료되지 않습니다:

{"pk": {"S": "sess#1"}, "expiresAt": {"S": "1790812800"}}
{"pk": {"S": "sess#2"}, "expiresAt": {"N": "1790812800000"}}

첫 번째는 타임스탬프를 String으로 저장합니다. AWS는 "items with a TTL attribute that is not a Number type are ignored by the TTL process"라고 분명히 밝히며, 쓰기 시점에도 활성화 시점에도 그 이후에도 아무도 알려주지 않습니다.

두 번째가 실제로 일어나는 쪽입니다. 타입이 맞고 값이 Date.now()에서 왔기 때문입니다. 1790812800000은 밀리초로 2026년 10월 1일입니다. TTL이 읽는 유일한 방식인 초로 읽으면, 그 타임스탬프는 58718년에 떨어집니다. 항목은 형식이 올바르고, 쿼리되며, 스토리지 요금이 부과되고, 5만 6천 년 뒤에 만료되도록 예약되어 있습니다.

API에서 어느 실수도 드러나지 않으므로, 검사는 쓰기 전에 이루어져야 합니다. 우리 TTL 변환기가 1e12를 넘는 값을 밀리초로 취급하는 것이 바로 이 때문이며, 그 값이 어떤 날짜로 해석되는지도 보여줍니다.

흔한 용도

세션 레코드, 인증 토큰, 스스로 정리되어야 하는 캐시 결과 — 전형적인 TTL 용례입니다. 삭제에 반응하려면 DynamoDB Streams와 함께 쓰세요.

더 알아보기

DynamoDB TTL 가이드와 DynamoDB Streams를 읽어보세요. TTL 속성을 보고 설정하려면 DynoTable을 다운로드하세요.

참고 자료

위에 링크된 공식 AWS 문서를 기준으로 2026-07-13에 마지막으로 검증했으며, TTL.html은 2026-07-28에 다시 확인했습니다.

위의 두 쓰기는 2026-07-28에 @aws-sdk/client-dynamodb 3.1095.0을 통해 DynamoDB Local 3.3.0을 상대로 실행했고 HTTP 200으로 수락되었습니다. 정리 비용은 우리가 동기화한 AWS 요금 표의 us-east-1 온디맨드 요율로 계산했습니다.

Console 없이 DynamoDB 작업하기

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

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