DynamoDB 똑똑하게 사용하기(요금 줄이는 꿀팁)
이연서 팀장
2020-11-27
Overview
꿀팁 1. TTL 적용하기
꿀팁 2. TTL 더 잘 사용하기
Conclusion
Overview
브랜디는 이미 고객 여러분에게 즉각적인 서비스를 제공하기 위해 다양한 방법으로 캐싱을 하고 있습니다. 새로운 정보를 노출하기 위해 캐싱 주기를 매우 짧게 설정하고 있지만, 요청 수가 많아짐에 따라 1~2초의 캐싱도 매우 효과를 볼수 있습니다. 이번에는 DynamoDB을 이용한 캐싱작업 후 요금을 줄이기 위한 꿀팁을 소개하겠습니다.
꿀팁 1. TTL 적용하기
TTL(Time To Live)은 이미 많은 분들이 알고 있을 거라 생각합니다. TTL사용법 및 유의사항에 대해 정리를 해보겠습니다.
- TTL 속성
- Number 데이터 유형
- Unix Epoch 시간 시스템을 당 초로 해석 (밀리초가 아닌 초단위인지 확인)
1. 사용방법
정말 간단합니다. TTL로 사용할 속성을 생성한 후 입력해 주면 완성! 정말 간단하죠?
하단의 Preview TTL을 클릭하면 미리 볼 수 있습니다. 밀리초나 잘못된 시간정보를 적용할 수도 있으니 한번씩 꼭 확인해보세요.
- 기존 테이블에 적용 시 유의점
- 적용되기까지 최대 한 시간 소요
- 한번에 하나의 표만 변경 가능
- 만료일자가 5년 이상인 데이터는 미삭제 됨
2. 유의 사항
- TTL 시간에 정확하게 데이터가 삭제 되지 않습니다. 일반적으로 48시간 내에 항목을 삭제하기 때문에 조회시 필터링을 해야 합니다.
- 만료 기간이 지났어도 삭제 되지 않은 항목은 업데이트를 할 수 있습니다.
3. TTL 장점
- 백그라운드 처리가 되므로 프로비저닝 된 처리량에 포함되지 않습니다. ⇒ 삭제비용은 No. 삭제 될때까지 저장비용만 지불됨
- 불필요한 데이터 관리를 자동화를 통해 데이터의 볼륨을 줄일 수 있습니다.
- Metrics 에서 TTL만의 지표를 볼 수 있습니다. 이를 통해서 TTL 주기를 조정하세요.
꿀팁 2. TTL 더 잘 사용하기
서비스에 TTL을 설정하게 되면 삭제주기가 비슷하여 처리용량에 따른 비용이 발생하게 됩니다. 이에 캐싱주기를 랜덤하게 설정하여 초당 처리량을 줄여 요금폭탄 과금을 막을 수 있습니다.
예를 들어 캐싱데이터의 TTL을 랜덤하게 생성하여 과도한 과금을 막을 수 있습니다.
Conclusion
DynamoDB의 TTL 적용은 단순히 비용을 줄이기 위해 적용할 수도 있지만, 불필요한 데이터를 자동으로 삭제할 수 있어 더 효율적인 데이터 관리를 할수 있습니다. 개발자는 오직 개발에만 집중 하자구요.