TTL(Time to Live)이 만료된 항목이 Amazon DynamoDB 테이블에서 삭제되지 않는 이유가 무엇인가요?

2분 분량
0

TTL(Time To Live)이 만료된 항목 중 일부가 Amazon DynamoDB 테이블에서 삭제되지 않습니다.

해결 방법

DynamoDB TTL 기능을 사용하면 항목별 타임스탬프를 정의하여 특정 항목이 더 이상 필요하지 않은 시점을 결정할 수 있습니다. 지정된 타임스탬프의 날짜 및 시간이 지나면 DynamoDB가 테이블에서 해당 항목을 삭제합니다. 이는 쓰기 처리량을 전혀 소비하지 않습니다. TTL을 사용하면 워크로드에 현재 필요한 항목만 유지하여 저장된 데이터의 볼륨을 줄일 수 있습니다. TTL는 추가 비용을 발생시키지 않습니다. DynamoDB 테이블에서 TTL을 활성화하는 경우, 검색할 서비스의 속성 이름을 확인하여 항목에 만료 자격이 있는지 판단하세요. 테이블에서 TTL을 활성화하면 파티션별 스캐너 백그라운드 프로세스가 테이블에 있는 항목의 만료 상태를 자동으로 지속적으로 평가합니다.

다음은 만료된 항목을 삭제하는 데 예상보다 오래 걸리는 몇 가지의 일반적인 이유입니다.

  • 만료된 항목의 실제 삭제 작업은 테이블의 크기와 활동 수준에 따라 달라질 수 있습니다. TTL은 백그라운드 프로세스라서 항목 만료 및 삭제에 사용하는 용량이 다를 수 있습니다.
  • TTL은 일반적으로 만료된 항목을 며칠 이내에 삭제합니다. 만료된 항목의 실제 삭제 작업은 테이블의 크기와 활동 수준에 따라 달라집니다. TTL은 최적으로 항목을 삭제하나 경우에 따라 삭제 시간이 보다 오래 걸릴 수 있습니다. DynamoDB에서는 개체를 삭제할 때 프로비저닝된 용량 대신 테이블의 백엔드 용량을 사용해 개체를 삭제합니다. 삭제 요청이 많은데 백엔드 용량이 해당 항목을 계속해서 삭제할 만큼 충분하지 않으면, 프로세스에 더 오랜 시간이 걸릴 수 있습니다.

TTL이 제대로 작동하는지 확인하려면 다음 조건을 확인하세요.

  • 테이블에서 TTL을 활성화했고 관련 설정이 올바른지 확인하세요.

  • 항목에는 테이블에서 TTL을 활성화할 때 지정한 속성이 포함되어야 합니다.

  • TTL 속성값에 숫자 데이터 유형이어야 합니다.

  • TTL 속성값은 Unix epoch 시간 형식의 단위 타임스탬프여야 합니다. 자세한 내용을 알아보려면 위키백과의 Unix 시간을 참고하세요.

  • TTL 속성값은 만료 날짜가 지금으로부터 5년을 초과하지 않는 datetimestamp여야 합니다.

  • 테이블 작업을 방해하지 않을 만큼 충분한 여유 용량이 있는 경우에만 TTL 프로세스가 테이블에서 실행됩니다. 할당된 용량 대부분이 테이블이나 테이블 파티션에 사용되고 있는 경우에는 TTL 프로세스가 실행되지 않을 수 있습니다.

만료되었으나 아직 삭제되지 않은 항목은 읽기, 쿼리, 스캔에 계속 표시됩니다. 만료된 항목을 결과 세트에 포함하지 않으려면 해당 항목을 필터링해야 합니다. TTL(Time To Live) 만료 값이 epoch 형식의 현재 시간보다 큰 항목만 반환하도록 하는 필터 표현식을 사용하세요. 자세한 내용을 알아보려면 스캔을 위한 필터 표현식을 참고하세요.

관련 정보

DynamoDB TTL(Time To Live)을 사용해 항목 만료

AWS 공식
AWS 공식업데이트됨 일 년 전
댓글 없음