본문 바로가기
CSP (Cloud Service Provider)/AWS

비용 소모 없이 DynamoDB Item 삭제

by HemMu 2024. 10. 24.

DynamoDB 개념

  • Item (항목): DynamoDB 테이블의 각 행(Row)을 나타내는 데이터 레코드
  • Attribute (속성): 각 항목(Item) 내에 포함된 개별 데이터 필드, 열(Column)이라고 생각하면 편함
{
  "UserID": "12345",
  "Name": "Alice",
  "Age": 30,
  "Address": "123 Main St"
}

전체가 **item**, 
각 "UserID", "Name", "Age", "Address"가 **attribute**

삭제 비용이 발생하는 이유

DynamoDB에서 Item이나 Attribute를 삭제하는 작업도 쓰기 요청으로 처리되며, 삭제 작업을 수행할 때마다 데이터 양에 따라 **WCU(Write capacity units)**이 사용되고, 삭제할 항목을 조회하거나 특정 조건으로 삭제하려면 읽기 요청에 **RCU(Read capacity units)**도 추가로 소모될 수 있다.

 

즉, 항목(Item)이나 속성(Attribute)을 삭제할 때 삭제할 데이터를 찾기 위한 RCU(Read capacity units), 삭제를 위한 **WCU(Write capacity units)**가 필요하다


TTL(Time to Live) 활용

TTL이란?

  • TTL(Time to Live)은 항목이 특정 시간이 지나면 자동으로 삭제되도록 설정하는 기능이며, TTL 속성에 Unix 타임스탬프 값을 지정하면, 해당 시간이 지나면 DynamoDB가 해당 항목을 백그라운드에서 삭제한다.

TTL의 장점

  • 비용 소모 없음: TTL로 삭제된 항목은 별도의 쓰기 요청 없이 백그라운드 프로세스로 자동 삭제되기 때문에 추가적인 WCU나 RCU가 소모되지 않음
  • 자동 관리: 설정한 시간에 따라 자동으로 항목이 삭제되므로 편리
  • 효율적인 데이터 관리: 주기적으로 만료되는 데이터를 효율적으로 관리할 수 있으며, 수동 삭제 및 타 Batch Job으로 소모되는 리소스를 절약 가능

TTL 사용

  1. DynamoDB 탐색 창에서 Tables를 선택한 다음 수정하려는 테이블을 선택
  2. 테이블 세부 정보 페이지의 Additional settings에서 Time To Live (TTL) 설정에 대해 Turn on
  3. Turn on Time to Live 페이지에서 TTL attribute name에 TTL이 관리될 attribute 이름을 입력한다.
  4. TTL 시간을 업데이트할 때는 대소문자 구분하여 attribute 이름을 정확히 일치시켜 Unix 타임스탬프 값을 설정한다.
  5. DynamoDB에서 TTL을 활성화 후, 설정한 시간이 지나면 해당 항목이 자동으로 삭제된다.

💡 TTL 항목은 즉시 삭제되지 않을 수 있고, 백그라운드 작업으로 처리되기 때문에 몇 시간 정도의 지연이 있을 수 있다.

 

설정이 완료되었다면 입력 한 이름의 TTL Attribute가 추가된다.

{
  "UserID": "12345",
  "Name": "Alice",
  "Age": 30,
  "Address": "123 Main St",
  **"hamsterTTL": 1737033600**
}

TTL 사용 시 주의사항

  • 즉시 삭제가 필요할 때는 부적합: TTL은 즉각적으로 항목을 삭제하지 않기 때문에, 특정 시점에 바로 삭제되기 어려울 수 있음, 며칠 걸릴 수 있다고 함
  • Item단위로 관리: TTL은 Item에 적용되기에 Attribute만 제거하기는 어려움
  • 데이터 일관성 문제: 삭제 시점에서 실시간 데이터 일관성이 중요하다면 TTL로 인한 지연 삭제가 문제가 될 수 있으므로, 사용 시 유의

💡 자주 안 쓰는 Item은 Storage를 Standard-IA로 변경해도 비용을 절감할 수 있겠다.


삼성 클라우드의 Amazon DynamoDB 비용 최적화 여정 | Amazon Web Services

 

삼성 클라우드의 Amazon DynamoDB 비용 최적화 여정 | Amazon Web Services

이 블로그 포스트는 삼성전자의 김정훈님과 함께 작성되었습니다. 삼성 클라우드는 전세계 갤럭시 스마트폰을 포함한 삼성의 모든 디바이스를 대상으로 사용자 데이터의 백업/복원 및 동기화,

aws.amazon.com

 

댓글