AWS Korea Tech Blog

Amazon DynamoDB 비용 최적화 방법에 살펴보기

thumbnail

Amazon DynamoDB 비용 최적화 방법에 대해 알아보았는데, DynamoDB의 주요 비용은 데이터를 읽고 쓸 때 발생하는 I/O 용량과 데이터의 저장량입니다. 읽기 작업마다 4KB 단위로 읽기 총용량(RCU)이 과금되고, 쓰기 작업마다 1KB 단위로 쓰기 총용량(WCU)이 과금됩니다. 읽기에는 강력한 일관성, 최종적 일관성, 트랜잭션 읽기 등 다양한 옵션이 있고, 쓰기에는 트랜잭션 쓰기 등의 옵션이 있습니다.

프로비저닝 모드와 온디맨드 모드 두 가지 용량 모드를 제공하는데, 프로비저닝 모드는 일정한 용량에 대한 비용을 지불하며 트래픽 양에 따라 용량을 조정할 수 있는 오토스케일링을 제공합니다. 온디맨드 모드는 사용한 용량에 대해서만 비용을 지불하는 형태입니다.

데이터의 설계 단계에서는 액세스 패턴을 고려해야 합니다. 데이터를 자주 읽고 쓰는 패턴이 있다면 해당 데이터를 별도의 아이템으로 분리하여 저장함으로써 비용을 절감할 수 있습니다. 또한, 필요한 데이터만 저장하고 불필요한 데이터는 삭제하는 것도 좋은 방법입니다. TTL(Time to Live) 기능을 사용하면 무료로 데이터를 자동으로 삭제할 수 있습니다.

개발 단계에서는 어트리뷰트 이름을 줄여서 사용하는 것이 좋습니다. 이는 스토리지 사용량과 I/O 사용량을 줄이는 효과가 있기 때문입니다. 어트리뷰트 이름을 줄여서 사용하면 아이템 크기가 작아지고, GSI(Global Secondary Index)에 저장된 아이템도 작아지므로 소비하는 WCU도 줄일 수 있습니다.

운영 단계에서는 용량 모드를 선택할 때 프로비저닝 모드와 온디맨드 모드를 고려해야 합니다. 피크 시간과 최저 사용 시간이 있는 프로덕션 환경에서는 프로비저닝 모드와 오토스케일링을 사용하여 비용을 최적화할 수 있습니다.