본문 바로가기

Cloud/AWS

Amazon DynamoDB 비용 최적화 방법

Amazon DynamoDB는 완전관리형으로 서버리스 키-값 NoSQL 데이터베이스 입니다.

DynamoDB는 데이터의 I/O 용량과 저장되는 데이터 양에 따라 과금이 되며 이번 포스팅에서는 DynamoDB의 비용을 최적화 할 수 있는 포인트에 대해 포스팅해보고자 합니다.

 

DynamoDB의 비용

RCU/WCU

RCU(읽기 용량)는 4KB, WCU(쓰기 용량)는 각 쓰기 작업에 대해 1KB 단위로 과금

온디맨드 모드 / 프로비저닝 모드

두 용량 모드 간의 전환은 무중단으로 하루에 한번 가능합니다.

 

온디맨드 모드 : 용량에 상관 없이 요청 수에 따른 과금 모드로 사용한 만큼만 가격을 지불한다. 피크 트래픽에 도달하면 기존의 2배에 해당하는 크기로 자동 조절된다. 오토 스케일링이 동작할 수 없는 급격한 스파이크 트래픽이나 종일 사용되지 않는 개발/스테이징/검증과 같은 환경에서는 온디맨드 모드를 권장한다.

 

프로비저닝 모드 : 사용자가 초당 읽기/쓰기 횟수를 지정하고 초 당 비용이 과금되며 오토 스케일링을 이용해 탄력적으로 인스턴스 개수가 조정된다. 트래픽 예측이 가능한 경우에 사용이 되고 트래픽이 일관되거나 점진적 변화를 일으킬 때 사용한다.

스토리지

스토리지는 GB-월 단위로 과금되며 2021년 부터 DynamoDB는 기존의 DynamoDB Standard 이외에 Standard-Infrequent Access(DynamoDB Standard-IA) 스토리지 클래스를 제공하며 두 스토리지 클래스의 성능 차이는 없고 비용 모델의 차이점이 있습니다.

추가 기능

글로벌 테이블, 백업, 복구, PITR(Point in time recovery) 등을 사용하면 추가 비용이 발생

비용 최적화 포인트

DynamoDB는 APP의 설계, 개발, 운영 단계에서 비용 최적화 포인트가 있습니다.

  • 몇 달에 한번 테이블에서 대량 읽기와 같이 자주 사용되지 않는 액세스 패턴을 위해 GSI를 만들기보다는 필요할 때 Amazon S3로 Export하는 기능을 사용하거나 SCAN API를 이용하는 것이 비용 효율적일 수 있습니다.
  • 어트리뷰트 이름의 크기가 줄어들면 스토리지 사용량, WCU/RCU 사용량 그리고 네트워크 전송 시간이 줄어듭니다
  • 스파이크 없이 N개의 기기에서 주기적으로 상태 값을 업데이트하는 트래픽이 유입되는 IoT 같은 워크로드라면 오토스케일링을 사용할 때 지정하는 Target Utilization 값을 높게 사용해 비용을 최적화할 수 있습니다.

 

 

출처 : AWS 테크블로그