AWS 요금 계산기
Amazon DynamoDB 및 아키텍처 비용을 단일 예상 비용으로 계산할 수 있습니다.
지금 사용자 지정 예상 요금 생성
프로비저닝된 용량 모드에서 애플리케이션에 필요한 초당 데이터 읽기 및 쓰기 수를 지정합니다. Auto Scaling을 사용하여 지정된 사용률을 기준으로 테이블의 용량을 자동으로 조정하여 비용을 절감하면서 애플리케이션 성능을 보장할 수 있습니다. 이 요금 페이지에서는 DynamoDB의 주요 기능 및 선택적 기능에 대한 DynamoDB 요금 청구 방식을 세부적으로 설명합니다. AWS 중국 리전의 요금은 AWS 중국 리전 요금 페이지를 참조하십시오.
주요 용어
읽기 용량 유닛(RCU): 테이블에서 데이터를 읽는 각 API 호출이 읽기 요청입니다. 읽기 요청은 강력한 일관된 읽기(Strongly consistent read), 최종적 일관된 읽기(Eventually consistent read) 또는 트랜잭션 읽기(Transactional read)일 수 있습니다. 강력한 일관된 읽기: 최대 4KB 크기 항목의 경우 RCU 1개가 초당 1회의 이 요청을 수행할 수 있습니다. 4KB보다 큰 항목의 경우 추가 RCU가 필요합니다. 최종적 일관된 읽기: 최대 4KB 크기 항목의 경우 RCU 1개가 초당 2회의 이 요청을 수행할 수 있습니다. 트랜잭션 읽기: 최대 4KB의 항목의 경우 초당 1회의 이 요청을 수행하는 데 2개의 RCU가 필요합니다. 예를 들어 8KB 항목의 강력한 일관된 읽기 요청에는 2개의 RCU, 8KB 항목의 최종적 일관된 읽기 요청에는 1개의 RCU, 8KB 항목의 트랜잭션 읽기 요청에는 4개의 RCU가 필요합니다. 자세한 내용은 읽기 일관성을 참조하세요.
쓰기 용량 유닛(WCU): 테이블에 데이터를 쓰는 각 API 호출이 쓰기 요청입니다. 최대 1KB 크기 항목의 경우 1개의 WCU가 초당 1회의 표준 쓰기 요청을 수행할 수 있습니다. 1KB보다 큰 항목의 경우 추가 WCU가 필요합니다. 트랜잭션 쓰기 요청은 최대 1KB 크기 항목의 초당 1회 쓰기를 수행하는 데 2개의 WCU가 필요합니다. 예를 들어, 1KB 항목의 표준 쓰기는 1개의 WCU가 필요하고, 3KB 항목의 표준 쓰기는 3개의 WCU가 필요하며, 3KB 항목의 트랜잭션 쓰기는 6개의 WCU가 필요합니다.
rWCU(복제된 쓰기 용량 유닛): DynamoDB 글로벌 테이블 사용 시 데이터는 선택한 여러 AWS 리전에 자동으로 쓰여집니다. 각 쓰기는 복제된 리전은 물론, 로컬 리전에서 발생합니다.
스트림 읽기 요청 유닛: DynamoDB Streams에 대한 각각의 GetRecords API 호출은 스트림 읽기 요청 유닛입니다. 각 스트림 읽기 요청 유닛은 최대 1MB의 데이터를 반환할 수 있습니다.
트랜잭션 읽기/쓰기 요청: DynamoDB에서 트랜잭션 읽기 또는 쓰기는 표준 읽기 또는 쓰기와 다릅니다. 단일 트랜잭션에 포함된 모든 작업이 하나의 세트처럼 성공 또는 실패로 설정되도록 보장하기 때문입니다.
변경 데이터 캡처 유닛: DynamoDB는 DynamoDB 테이블에서 항목 수준 변경 사항을 캡처하여 Amazon Kinesis Data Streams 및 AWS Glue와 같은 다른 AWS 서비스로 복제할 수 있습니다. DynamoDB는 이러한 변경 사항을 위임된 작업으로 캡처합니다. 즉, DynamoDB는 사용자가 처리량 용량을 관리하지 않아도 되도록 자동으로 복제를 수행합니다. DynamoDB는 테이블에 대한 각 쓰기(최대 1KB)에 대해 변경 데이터 캡처 유닛 1개의 요금을 부과합니다. 1KB보다 큰 항목의 경우 추가 변경 데이터 캡처 유닛이 필요합니다.
DynamoDB 테이블 클래스: DynamoDB는 사용자의 비용 최적화를 지원하기 위해 두 종류의 테이블 클래스를 제공합니다. DynamoDB Standard 테이블 클래스는 기본형으로 대부분의 워크로드에 권장됩니다. DynamoDB Standard-Infrequent Access(DynamoDB Standard-IA) 테이블 클래스는 비용에서 스토리지가 차지하는 비율이 크고 액세스 빈도가 낮은 데이터를 저장하는 데 최적화된 테이블입니다. 각 테이블 클래스는 데이터 스토리지와 읽기 및 쓰기 요청에 따라 서로 다른 요금제를 제공합니다. 사용하는 테이블의 스토리지 요구 사항과 데이터 액세스 패턴에 따라 가장 비용 효율적인 테이블 클래스를 선택할 수 있습니다. DynamoDB 개발자 안내서에서 DynamoDB 테이블 클래스에 대해 자세히 알아보세요.
DynamoDB 기능 및 결제 개요
기능 |
역할 |
결제 단위 |
|
핵심 기능 |
|||
|
프로비저닝된 쓰기 용량 |
테이블에 대한 데이터 쓰기 |
WCU |
|
프로비저닝된 읽기 용량 |
테이블로부터 데이터 읽기 |
RCU |
|
데이터 스토리지 |
인덱스 값을 포함한 데이터 저장 |
월별 GB당 |
선택적 기능 |
|||
|
지속적 백업 |
이전 35일 동안의 지속적인 백업을 가져옴 |
월별 GB당 |
|
온디맨드 백업 |
지정된 시점에서 스냅샷 백업을 가져옴 |
월별 GB당 |
|
백업으로부터 복원 |
특정 스냅샷 또는 시간에 테이블 복원 |
GB |
|
글로벌 테이블 |
데이터를 복제하여 다중 리전, 다중 활성 테이블 생성 |
rWCU |
Amazon Kinesis Data Streams에 대한 변경 데이터 캡처 | 모든 DynamoDB 테이블에서 항목 수준 수정을 캡처하고 사용자가 선택한 Kinesis 데이터 스트림으로 복제 | 변경 데이터 캡처 유닛 | |
AWS Glue에 대한 변경 데이터 캡처 | 테이블에서 항목 수준 데이터 변경 캡처 및 AWS Glue에 복제 | 변경 데이터 캡처 유닛 | |
Amazon S3로 데이터 내보내기 | 특정 시점의 DynamoDB 테이블 백업을 Amazon S3로 내보내기 | GB | |
Amazon S3에서 데이터 가져오기 | Amazon S3에서 새 DynamoDB 테이블로 데이터 마이그레이션 및 로드 | GB | |
|
DynamoDB Streams |
테이블의 항목 수준 변경 사항을 시간순으로 제공 |
스트림 읽기 요청 유닛 |
|
데이터 송신 |
다른 AWS 리전으로 데이터 전송 |
GB |
DynamoDB 결제 기능과의 통합 개요
통합 |
역할 |
결제 단위 |
|
|
DynamoDB Accelerator(DAX), DynamoDB 호환 캐싱 서비스와의 통합 |
가격 대비 성능을 개선하고 지연 시간을 밀리초에서 마이크로초로 단축 |
노드 시간 |
Amazon OpenSearch Service와의 제로 ETL 통합 | 데이터 파이프라인을 구축 및 관리하지 않고도 전체 텍스트 검색, 벡터 검색, 시맨틱 검색, 지리 공간 검색 등을 사용 | 수출량(GB) | |
Amazon Redshift와의 제로 ETL 통합 | 데이터 파이프라인을 구축 및 관리하지 않고도 운영 데이터 분석 가능 | 수출량(GB) |
DynamoDB 요금
-
• 읽기 및 쓰기 요청
프로비저닝된 용량
프로비저닝된 용량 모드를 선택한 경우 애플리케이션에서 필요할 것으로 예상하는 읽기 및 쓰기 용량을 지정합니다. Auto Scaling을 사용하여 지정된 사용률을 기준으로 테이블의 용량을 자동으로 조정하여 비용을 절감하면서 애플리케이션 성능을 보장할 수 있습니다. DynamoDB는 초당 1회의 쓰기(최대 1KB)에 1개의 WCU, 초당 1회의 트랜잭션 쓰기에 대해 2개의 WCU 요금을 청구합니다. 읽기의 경우 DynamoDB는 초당 1회의 강력한 일관된 읽기에 1개의 RCU, 초당 1회의 트랜잭션 읽기에 대해 2개의 RCU, 초당 1회의 최종적 일관된 읽기(최대 4KB)에 대해 0.5개의 RCU 요금을 청구합니다. 프로비저닝된 용량을 완전히 활용하지 않더라도 Amazon DynamoDB 테이블에 프로비저닝한 처리량(읽기 및 쓰기)에 대한 요금이 청구됩니다. 프로비저닝된 용량 요금은 테이블 클래스에 따라 다릅니다. DynamoDB 테이블의 실제 읽기 및 쓰기 성능은 다를 수 있으며, 프로비저닝한 처리 용량보다 작을 수 있습니다.
예약 용량
DynamoDB 예약 용량은 기본 수준의 프로비저닝된 용량을 선불 약정함으로써 프로비저닝된 용량 비용을 절약하는 데 도움이 될 수 있습니다. 예약 용량을 사용하면 일회성 선불 요금을 지불하고 일정 기간 동안 최소 프로비저닝된 사용 수준을 약정합니다. 예약 용량은 할인된 시간당 요금으로 청구됩니다. 예약 용량을 초과하여 프로비저닝하는 용량에 대해서는 할인되지 않은 프로비저닝된 용량 요금이 청구됩니다. 예약 용량은 DynamoDB 스탠더드 테이블 클래스를 사용하는 DynamoDB 테이블에서 단일 리전, 프로비저닝된 읽기 및 쓰기 용량 단위(RCU 및 WCU)에 대해 사용할 수 있습니다. 예약 용량은 DynamoDB Standard-IA 테이블 클래스 또는 온디맨드 용량을 사용하는 테이블에는 사용할 수 없습니다.
AWS 관리 콘솔을 통해 요청을 제출하여 DynamoDB 예약 용량을 구매할 수 있습니다. 예약 용량은 WCU 100개 또는 RCU 100개 단위로 구매합니다. 복제된 WCU(rWCU)에 대한 예약 용량은 구매할 수 없습니다. 예약 용량을 구매할 때 AWS 리전, 수량 및 기간을 지정해야 합니다. 사용자에게는 (1) 일회성 선불 요금, (2) 구매한 DynamoDB 예약 용량을 기준으로 한 기간 동안 각 시간마다 시간당 요금이 청구됩니다. 또한 DynamoDB 예약 용량에는 AWS 이용계약 또는 서비스 사용에 관한 당사와의 기타 계약에 따라 적용되는 모든 스토리지, 데이터 전송 및 기타 요금이 적용됩니다.
-
• 데이터 스토리지
스토리지를 프로비저닝할 필요가 없습니다. DynamoDB에서 지속적으로 테이블의 크기를 모니터링하고 스토리지 요금을 결정합니다. DynamoDB는 데이터의 원시 바이트 크기에 활성화한 기능에 따라 달라지는 항목당 스토리지 오버헤드를 더해 청구 대상 데이터의 크기를 측정합니다. 자세한 내용은 DynamoDB 사용 설명서를 참조하세요. 데이터 스토리지 요금은 테이블 클래스에 따라 다릅니다.
-
• 백업 및 복원
DynamoDB는 테이블 데이터를 백업하는 두 가지 방법을 제공합니다. PITR(특정 시점으로 복구)을 사용한 지속적 백업은 이전 35일 동안의 테이블에 대한 지속적 백업을 제공합니다. 지난 5주 동안의 지정된 시간(초)의 상태로 테이블을 복원할 수 있습니다. 온디맨드 백업은 테이블을 스냅샷을 생성하여 확장된 기간에 아카이브함으로써 기업 및 정부 규제 요건을 충족하는 데 도움이 됩니다.
지속적 백업(PITR)
DynamoDB는 활성화된 각 DynamoDB 테이블(테이블 데이터 및 로컬 보조 인덱스)의 크기를 기준으로 PITR 요금을 청구합니다. DynamoDB는 PITR 활성화 테이블의 크기를 한 달 내내 지속적으로 모니터링하여 백업 요금을 결정하고 각 테이블의 PITR을 비활성화하기 전까지 요금을 청구합니다.
온디맨드 백업
DynamoDB는 테이블(테이블 데이터 및 로컬 보조 인덱스)의 스토리지 크기를 기준으로 온디맨드 백업에 대한 요금을 청구합니다. 각 백업의 크기는 각 백업 요청이 이루어진 시점에 결정됩니다. 매달 청구되는 총 백업 스토리지 크기는 모든 DynamoDB 테이블 백업을 합친 크기입니다. DynamoDB는 온디맨드 백업의 크기를 한 달 내내 지속적으로 모니터링하여 백업 요금을 결정합니다.
DynamoDB 또는 AWS Backup을 사용하여 온디맨드 백업을 생성하고 관리할 수 있습니다. 자세히 알아보려면 온디맨드 백업 및 복원 사용을 참조하세요. AWS Backup을 사용하면 AWS 서비스에서 데이터 보호를 중앙 집중화하고 자동화할 수 있습니다. 또한 AWS Backup은 교차 계정 및 교차 리전 온디맨드 백업 복사, 저비용 스토리지 티어, 백업 태깅, 소스 데이터로부터 독립적인 백업 암호화와 같은 고급 기능을 제공하여 비즈니스 연속성 요구 사항을 충족시키고 백업 비용을 최적화하는 데 도움이 됩니다. 교차 리전 데이터 전송에 대해 추가 요금이 적용됩니다. 이러한 요금에 관한 자세한 내용은 AWS Backup 요금을 참조하세요.
* 콜드 백업 스토리지는 AWS Backup에 의해 관리되는 온디맨드 백업에 대해서만 지원됩니다. AWS 관리 콘솔에서 AWS Backup 사용을 옵트인할 수 있습니다.
콜드 스토리지로 전환된 백업은 최소 90일간 보관되며, 90일 이전에 삭제된 백업에 대해서는 남은 기간의 스토리지 비용에 해당하는 비례 할당으로 계산된 요금이 부과됩니다.
테이블 복원
온디맨드 백업 또는 PITR에서의 테이블 복원은 요청별로 저장된 데이터의 총 크기(테이블 데이터, 로컬 보조 인덱스 및 글로벌 보조 인덱스)를 기준으로 요금이 청구됩니다.
* 콜드 백업 스토리지에서의 복원은 AWS Backup에 의해 관리되는 온디맨드 백업에 대해서만 지원됩니다. AWS 관리 콘솔에서 AWS Backup 사용을 옵트인할 수 있습니다. 콜드 백업 스토리지는 특정 시점으로 복구(PITR)하는 지속적 백업에 대해서는 적용되지 않습니다.
-
• 글로벌 테이블
DynamoDB는 각 복제본 테이블에서 사용된 리소스를 기준으로 글로벌 테이블 사용량 요금을 청구합니다. 글로벌 테이블에 대한 쓰기 요청은 표준 WCU 대신, 복제된 WCU로 측정됩니다. 복제에 소비된 복제된 WCU 수는 사용하는 글로벌 테이블 버전에 따라 달라집니다. 자세한 내용은 글로벌 테이블 관리 모범 사례 및 요구 사항을 참조하세요. 요금은 테이블 클래스에 따라 다릅니다. 읽기 요청 및 데이터 스토리지의 경우 글로벌 테이블이 아닌 테이블과 일관되게 요금이 청구됩니다. 테이블 복제본을 추가하여 새 리전에서 글로벌 테이블을 생성 또는 확장하는 경우 DynamoDB는 추가된 리전에서 저장된 데이터의 GB당 테이블 복원에 대해 요금을 부과합니다. 교차 리전 복제본 및 데이터를 포함하는 테이블에 복제본 추가도 데이터 전송(발신) 요금이 발생합니다. 자세한 내용은 요금 페이지의 "데이터 전송"을 참조하십시오.
-
• Amazon Kinesis Data Streams에 대한 변경 데이터 캡처
DynamoDB는 Amazon Kinesis Data Streams에 대한 변경 데이터 캡처에 대해 변경 데이터 캡처 유닛으로 요금을 청구합니다. DynamoDB는 각 쓰기(최대 1KB)에 대해 변경 데이터 캡처 유닛 1개의 요금을 부과합니다. 테이블에서 처리량 용량을 관리하지 않고도 애플리케이션에서 수행하는 쓰기에 대해서만 비용을 지불합니다.
Kinesis Data Streams 요금은 DynamoDB 변경을 Kinesis 데이터 스트림으로 복제하는 경우에도 계속 적용됩니다. 자세한 내용은 Amazon Kinesis Data Streams 요금을 참조하세요.
-
• AWS Glue에 대한 변경 데이터 캡처
DynamoDB는 AWS Glue에 대한 변경 데이터 캡처에 대해 변경 데이터 캡처 유닛으로 요금을 청구합니다. DynamoDB는 각 쓰기(최대 1KB)에 대해 변경 데이터 캡처 유닛 1개의 요금을 부과합니다. 테이블에서 처리량 용량을 관리하지 않고도 애플리케이션에서 수행하는 쓰기에 대해서만 비용을 지불합니다.
AWS Glue 요금은 DynamoDB 변경을 AWS Glue 대상 데이터베이스에 복제하는 경우에도 계속 적용됩니다. 자세한 내용은 AWS Glue 요금을 참조하세요.
-
• Amazon S3로 데이터 내보내기
이 기능을 사용하여 DynamoDB 연속 백업(특정 시점으로 복구)의 데이터를 Amazon Simple Storage Service(Amazon S3)로 내보낼 수 있습니다. 지원되는 출력 데이터 형식은 DynamoDB JSON과 Amazon Ion입니다. Amazon Athena, Amazon SageMaker, AWS Lake Formation 등의 AWS 서비스를 사용하여 내보낸 데이터를 분석할 수 있습니다.
전체 내보내기와 증분 내보내기 중에서 선택할 수 있습니다. 전체 데이터에 대해 부과하는 요금은 백업이 생성된 특정 시점의 각 DynamoDB 테이블(테이블 데이터 및 글로벌 보조 인덱스) 크기를 기준으로 합니다. 증분 내보내기는 증분 내보내기 출력을 생성하기 위해 연속 백업에서 처리된 데이터 크기를 기준으로 요금이 부과됩니다. 내보낸 데이터를 Amazon S3에 저장하거나 Amazon S3 버킷에 대해 PUT 요청을 실행할 경우에는 추가 요금이 적용됩니다. 이러한 요금에 관한 자세한 내용은 Amazon S3 요금을 참조하세요.
-
• Amazon S3에서 데이터 가져오기
Amazon DynamoDB 데이터 가져오기는 코드를 작성하지 않고도 Amazon S3와 DynamoDB 테이블 간에 데이터를 이동할 수 있는 간단하고 효율적인 방법을 제공합니다. AWS 리전과 계정 간에 테이블을 복사하여 데이터를 마이그레이션하고 새 애플리케이션을 구축하고 팀 간의 데이터 공유 및 협업을 촉진하고 재해 복구 및 비즈니스 연속성 계획을 간소화할 수 있습니다. 데이터 가져오기 요금은 Amazon S3의 압축되지 않은 파일 크기를 기준으로 합니다. 자세한 내용은 S3에서 가져오기를 참조하세요. 지원되는 출력 데이터 형식은 CSV, DynamoDB JSON 및 Amazon Ion입니다.
Amazon S3 요금은 소스 데이터 저장 및 Amazon S3 버킷에 대한 GET 요청에도 적용됩니다. Amazon S3 요금에 관한 자세한 내용은 Amazon S3 요금을 참조하세요.
-
• DynamoDB Accelerator(DAX)와의 통합
DAX는 Amazon DynamoDB와 호환되는 캐싱 서비스입니다. DynamoDB는 DAX 용량에 대해 시간당 요금을 지불하고 장기 약정 없이 DAX 인스턴스를 실행할 수 있습니다. 요금은 사용한 노드 시간별 요금이고 선택한 인스턴스 유형에 따라 다릅니다. 1시간 미만의 노드 시간은 1시간으로 청구됩니다. 요금은 DAX 클러스터의 모든 개별 노드에 적용됩니다. 예를 들어 노드 3개의 DAX 클러스터가 있는 경우, 개별 노드(총 3개 노드)에 대한 시간당 요금이 청구됩니다.
동일한 가용 영역 내의 Amazon Elastic Compute Cloud(Amazon EC2)와 DAX 간의 데이터 전송에 대해서는 요금이 청구되지 않습니다. 동일한 AWS 리전의 서로 다른 가용 영역에서 Amazon EC2 인스턴스와 DAX 노드 간에 전송된 데이터의 경우, 표준 Amazon EC2 데이터 전송 요금이 적용됩니다. 하지만 Amazon EC2 인스턴스로의 데이터 송신 또는 수신에 대해서만 요금이 청구됩니다. DAX 노드 자체에서 송신 또는 수신한 트래픽에 대해서는 DAX 데이터 전송 요금이 청구되지 않습니다.
-
• DynamoDB Streams
DynamoDB는 읽기 요청 유닛으로 DynamoDB Streams에서 데이터 읽기 작업에 대한 요금을 청구합니다. 각 GetRecords API 호출은 스트림 읽기 요청 유닛으로 간주되어 비용이 청구되고 DynamoDB Streams에서 최대 1MB의 데이터를 반환합니다. 스트림 읽기 요청 유닛은 DynamoDB 테이블의 읽기 요청과 다릅니다. AWS Lambda가 DynamoDB 트리거의 일부로 수행한 GetRecords API 호출에 대해서는 요금이 부과되지 않습니다. 또한 DynamoDB 글로벌 테이블이 수행한 GetRecords API 호출에 대해서도 요금이 부과되지 않습니다.
-
• 데이터 전송
데이터 수신 및 송신은 DynamoDB에서 데이터를 수신하고 송신하는 것을 말합니다. DynamoDB는 인바운드 데이터 전송에 대해 요금을 청구하지 않으며, 동일한 AWS 리전 내에서 DynamoDB와 다른 AWS 서비스 간에 전송되는 데이터에 대해서는 요금이 부과되지 않습니다(즉, GB당 0.00 USD). AWS 리전 전체에서 전송되는 데이터(예: 미국 동부[버지니아 북부] 리전의 DynamoDB와 EU[아일랜드] 리전의 Amazon EC2 간에 전송되는 데이터)의 경우 두 리전에서 전송 요금이 청구됩니다. AWS 프리 티어의 일부로, AWS GovCloud(미국) 리전을 제외한 모든 AWS 서비스를 합산해 매달 1GB의 무료 데이터 전송 혜택을 받게 됩니다. 자세한 내용은 AWS 프리 티어를 참조하세요. 월별 500TB를 초과하여 데이터를 전송하려면 AWS에 문의하세요.
DynamoDB 프리 티어
AWS 프리 티어를 사용하면 AWS 서비스를 무료로 체험할 수 있습니다. 다음 DynamoDB 혜택은 AWS 프리 티어의 일부분으로 포함됩니다. 각 혜택은 리전별로 지급인 계정 기반으로 월 단위로 계산됩니다.
- DynamoDB Standard 테이블 클래스를 사용한 테이블에 대해 프로비저닝된 용량의 WCU 25개 및 RCU 25개
- DynamoDB Standard 테이블 클래스를 사용한 테이블에 대해 데이터 스토리지 25GB
- 2개의 AWS 리전에 배포된 DynamoDB Standard 테이블 클래스를 사용한 글로벌 테이블에 대해 rWCU 25개
- DynamoDB Streams로부터 250만 건의 스트림 읽기 요청
- 모든 AWS 서비스 합계 데이터 전송량 1GB(첫 12개월간 15GB)
DynamoDB 요금 예제
-
• 기본 예제
이 예제는 프로비저닝된 용량 모드를 사용하여 Auto Scaling이 활성화된 테이블에 대해 요금이 어떻게 계산되는지 보여줍니다. Auto Scaling은 실제 사용량이 목표 사용량에 가깝게 유지되도록 실제 사용량에 따라 프로비저닝된 용량을 지속적으로 설정합니다.
미국 동부(버지니아 북부) 리전에서 목표 사용률을 기본값인 70%로 설정하고, 최소 용량 유닛을 RCU 100개와 WCU 100개로 설정하고, 최대 용량을 기본 한도인 RCU 400개와 WCU 400개로 설정하여 새로운 DynamoDB Standard 테이블을 생성한다고 가정하겠습니다(DynamoDB 제한 값 참조). 간단한 설명을 위해 사용자가 애플리케이션과 상호 작용할 때마다 1KB의 쓰기 1회와 1KB의 강력한 일관된 읽기를 수행한다고 가정하겠습니다.
처음 10일 동안 사용한 RCU 및 WCU가 1~70개 사이라고 가정합니다. Auto Scaling은 어떤 조정 활동도 트리거하지 않으며, 해당 시간에 대해 0.078 USD(프로비저닝된 WCU 100개에 대해 0.065 USD(0.00065 USD * 100) 및 RCU 100개에 대해 0.013 USD(0.00013 USD * 100))가 청구됩니다.
이제 11일째에 사용한 용량이 100개의 RCU와 100개의 WCU로 증가한다고 가정합니다. Auto Scaling은 확장 활동 트리거를 시작하여 프로비저닝된 용량을 143개의 WCU 및 143개의 RCU(100개 사용 ÷ 143개 프로비저닝 = 69.9%)로 늘립니다. 시간당 요금은 0.11109 USD(143개 WCU에 대해 0.0925 USD, 143개 RCU에 대해 0.01859 USD)입니다.
21일째에 사용한 용량이 80개의 RCU와 80개의 WCU로 감소한다고 가정합니다. Auto Scaling은 축소 활동 트리거를 시작하여 프로비저닝된 용량을 114개의 WCU 및 114개의 RCU(80개 사용 ÷ 114개 프로비저닝 = 70.2%)로 줄입니다. 시간당 요금은 0.08952 USD(114개 WCU에 대해 0.0741 USD, 114개 RCU에 대해 0.01482 USD)입니다.
한 달에 대해 다음과 같이 66.86 USD가 청구됩니다.
1~10일: 18.72 USD(시간당 0.078 USD x 24시간 x 10일)
11~20일: 26.66 USD(시간당 0.11109 USD x 24시간 x 10일)
21~30일: 21.48 USD(시간당 0.08952 USD x 24시간 x 10일)
AWS 프리 티어에는 DynamoDB Standard 테이블 클래스를 사용한 테이블에 대해 WCU 25개 및 RCU 25개가 포함되며, 월별 청구서에서 14.04 USD가 절감됩니다.
25개 WCU x 시간당 0.00065 USD x 24시간 x 30일 = 11.70 USD
25개 RCU x 시간당 0.00013 USD x 24시간 x 30일 = 2.34 USD
데이터 스토리지: 월초에 테이블이 25GB의 스토리지를 사용하고 월말에 29GB로 증가하며, 테이블 크기를 지속적으로 모니터링한 결과, 평균 27GB를 사용한다고 가정하겠습니다. 테이블 클래스가 DynamoDB Standard로 설정되었으므로 첫 25GB의 스토리지는 AWS 프리 티어에 포함됩니다. 나머지 2GB의 스토리지에는 GB당 0.25 USD의 요금이 청구되고 테이블 스토리지 요금은 월 0.50 USD입니다.
해당 월에 대해 청구되는 요금 합계는 53.32 USD로, 읽기 및 쓰기 용량 요금 52.82 USD와 데이터 스토리지 요금 0.50 USD의 합계입니다.
-
• 세부 예제
이 예제는 프로비저닝된 용량 모드를 사용하여 Auto Scaling이 활성화된 테이블에 대해 요금이 어떻게 계산되는지 보여줍니다. Auto Scaling은 실제 사용률을 목표 사용률과 비슷하게 유지하기 위해 실제 사용된 용량에 맞춰 지속적으로 프로비저닝된 용량을 설정합니다.
미국 동부(버지니아 북부) 리전에서 목표 사용률은 기본값인 70%로 설정하고 최소 용량 유닛은 RCU 100개와 WCU 100개로 설정하고 최대 용량은 기본 한도인 RCU 400개와 WCU 400개로 설정하여 새로운 테이블을 생성한다고 가정하겠습니다(DynamoDB 제한 값 참조). Auto Scaling은 프로비저닝된 용량이 최소 용량보다 적어지지 않고 최대 용량보다 커지지 않도록 설정된 한도 내에서 운영하게 됩니다. 테이블이 생성되면 Auto Scaling은 최소 용량 유닛 프로비저닝을 시작합니다. 간단한 설명을 위해 사용자가 애플리케이션과 상호 작용할 때마다 1KB의 쓰기 1회와 1KB의 강력한 일관된 읽기를 수행한다고 가정합니다.
표가 생성되고 첫 한 시간 이내에 사용된 RCU 및 WCU가 1에서 70개 사이로 변동된다고 가정해 보겠습니다. 이에 따라 실제 사용률은 목표 사용률인 70% 내에서 1%(1개 사용 ÷ 100개 프로비저닝)와 70%(70개 사용 ÷ 100개 프로비저닝) 사이로 변동됩니다. Auto Scaling은 어떤 조정 활동도 트리거하지 않으며, 해당 시간에 대해 0.078 USD(프로비저닝된 WCU 100개에 대해 0.065 USD(0.00065 USD * 100) 및 RCU 100개에 대해 0.013 USD(0.00013 USD * 100))가 청구됩니다.
두 번째 한 시간 동안 RCU 100개와 WCU 100개로 증가하여 실제 사용률이 목표 사용률인 70%를 훨씬 초과하여 100%(100개 사용 ÷ 100개 프로비저닝)로 증가했다고 가정해 보겠습니다. Auto Scaling은 확장 활동 트리거를 시작하여 프로비저닝된 용량을 늘려 실제 사용량을 목표인 70%에 근접하도록 합니다. 그 결과는 143개 WCU와 143개 RCU의 프로비저닝된 용량(100개 사용 ÷ 143개 프로비저닝 = 69.9%)입니다. 두 번째 한 시간에 대해 0.1154 USD(143개 WCU에 대해 0.09295 USD 및 143개 RCU에 대해 0.01859 USD)가 청구됩니다.
두 번째 한 시간 동안 RCU 80개와 WCU 80개로 감소하여 실제 사용률이 목표 사용률인 70% 미만인 56%(80개 사용 ÷ 143개 프로비저닝)로 증가했다고 가정해 보겠습니다. Auto Scaling은 실제 사용률을 70%에 가깝게 맞추기 위해 프로비저닝된 용량을 줄이는 축소 활동을 트리거하기 시작하므로, 프로비저닝된 용량이 RCU 114개와 WCU 114개(80개 사용 ÷ 114개 프로비저닝 = 70.2%)가 됩니다. 두 번째 한 시간에 대해 0.08892 USD(114개 WCU에 대해 0.0741 USD 및 114개 RCU에 대해 0.01482 USD)가 청구됩니다.
간단한 설명을 위해 사용한 용량이 80개의 RCU와 80개의 WCU로 일관되게 유지된다고 가정합니다. 테이블에는 또한 114개의 WCU와 114개의 RCU가 프로비저닝되어 있고, 일일 요금은 다음과 같이 2.1341 USD입니다.
114개 RCU x 시간당 0.00065 USD x 24시간 = 1.7784 USD
114개 RCU x 시간당 0.00013 USD x 24시간 = 0.3557 USD
월별 요금은 다음과 같이 64.04 USD입니다.
1일 합계: 일별 2.14578 USD
시간 1: 시간당 0.078 USD
시간 2: 시간당 0.1154 USD
시간 3~24: 시간당 0.08892 USD
2~30일: 일별 2.1341 USD
AWS 프리 티어에는 DynamoDB Standard 테이블 클래스를 사용한 테이블에 대해 WCU 25개 및 RCU 25개가 포함되며, 월별 청구서에서 14.04 USD가 절감됩니다.
25개 WCU x 시간당 0.00065 USD x 24시간 x 30일 = 11.70 USD
25개 RCU x 시간당 0.00013 USD x 24시간 x 30일 = 2.34 USD
데이터 스토리지: 월초에 테이블이 25GB의 스토리지를 사용하고 월말에 29GB로 증가하며, 테이블 크기를 지속적으로 모니터링한 결과, 평균 27GB를 사용한다고 가정하겠습니다. 테이블 클래스가 DynamoDB Standard로 설정되었으므로 첫 25GB의 스토리지는 AWS 프리 티어에 포함됩니다. 나머지 2GB의 스토리지에는 GB당 0.25 USD의 요금이 청구되고 테이블 스토리지 요금은 월 0.50 USD입니다.
백업 및 복원: 모든 온디맨드 백업 스토리지의 합이 월 30일 동안 60GB인 경우 백업의 월별 요금은 6.00 USD/월(0.10 USD x 60GB)입니다. 하지만 월별 주기가 시작되고 10일 후에 15GB의 온디맨드 백업 데이터를 삭제한 경우, (0.10 USD x 60GB) – (0.10 USD x 15GB x 20/30) = 5.00 USD/월이 청구됩니다.
이제 온디맨드 백업 수행 외에도 지속적 백업을 사용한다고 가정합니다. 테이블의 크기는 29GB로, 월별 요금은 5.80 USD/월(0.20 USD x 29GB)입니다.
한 달에 한 번 29GB 테이블을 복원해야 하는 경우 복원 비용은 4.35 USD(0.15 USD x 29GB)입니다.
Kinesis Data Streams에 대한 변경 데이터 캡처: 이제 Amazon Kinesis 서비스를 사용하여 데이터를 처리하기 위해 Kinesis 데이터 스트림으로 스트리밍을 활성화한다고 가정합니다. 또한, 쓰기 처리량은 이전 예제와 일관된다고 가정합니다. 애플리케이션은 초당 1KB의 쓰기를 80번 수행합니다. DynamoDB는 Kinesis 데이터 스트림으로 캡처하는 각 1KB 쓰기에 대해 변경 데이터 캡처 유닛 1개를 청구합니다. 한 달 동안 변경 데이터 캡처 유닛은 (80 x 3,600 x 24 x 30) = 207,360,000개가 생성됩니다. 이때 월별 비용은 (0.10 USD x 207,360,000/1,000,000) = 20.74 USD입니다.
Amazon S3로 데이터 내보내기: 분석을 위해 테이블 백업을 Amazon S3로 내보내려고 한다고 가정해 보겠습니다. 지정한 시점의 테이블 크기가 29GB라면 내보내기 비용은 2.90 USD(0.10 USD x 29GB)가 됩니다.
DynamoDB Accelerator(DAX)와의 통합: DAX는 Amazon DynamoDB 호환 캐싱 서비스입니다. 애플리케이션의 응답 시간을 가속화하고 DynamoDB Accelerator(DAX) 서비스를 사용해야 한다는 결정을 내렸습니다. 사용 가능한 하드웨어 사양을 검토하고 t2.small 인스턴스 유형의 3노드 클러스터가 요구에 적합하다고 판단합니다. 26일째에 DAX를 활성화합니다. DynamoDB는 시간당 0.12 USD의 요금을 청구하고(0.04 USD x 3개 노드), 월 마지막 5일 간 합계는 14.40 USD(0.12 USD x 120시간)입니다.
글로벌 테이블: 이제 미국 서부(오레곤) 리전에서 재해 복구 복제본 테이블을 생성한다고 가정합니다. 테이블 크기가 25GB인 복제본을 미국 서부(오레곤) 리전에 추가한다고 가정합니다. 그러면 테이블 복원 비용으로 3.75 USD(0.15 USD x 25GB) 요금이 발생합니다. 이 복제본을 추가하면 아래 "데이터 전송" 섹션에서 자세히 설명한 대로, 데이터 전송 25GB가 생성됩니다. 용량 요구 사항도 이전 예제와 일관된다고 가정합니다. Auto Scaling은 애플리케이션의 처리량 요구 사항을 위해 114개의 WCU 및 114개의 RCU을 계속 프로비저닝하지만, 이제 두 복제본 테이블 모두에 쓸 수 있도록 rWCU를 프로비저닝해야 합니다. 프로비저닝된 rWCU는 두 리전의 애플리케이션 쓰기에 필요한 총 rWCU 수와 같습니다. 이 시나리오에서는 미국 동부(버지니아 북부) 리전 및 미국 서부(오레곤) 리전에 초당 80회의 쓰기를 수행하므로, 최소 프로비저닝된 용량은 160개의 rWCU(버지니아 북부에서 rWCU 80개 + 오레곤에서 rWCU 80개 = 160개 rWCU)입니다. Auto Scaling은 229개 rWCU(160개 rWCU/70%)를 프로비저닝하여 프로비저닝된 용량의 70% 수준으로 실제 사용률을 유지합니다. 자세한 내용은 글로벌 테이블 관리 모범 사례 및 요구 사항을 참조하세요. 각 리전에서 매시간 프로비저닝된 처음 25개의 프로비저닝된 rWCU는 DynamoDB 표준 테이블 클래스를 사용하는 테이블에 대한 AWS 프리 티어에 포함되며, 시간당 0.174525 USD 또는 한 달 30일당 125.66 USD의 요금이 부과됩니다. 또한 미국 서부(오레곤) 리전의 복제된 테이블에 27GB의 추가 데이터도 저장합니다. DynamoDB Standard 테이블 클래스를 사용한 테이블에 대해 각 AWS 리전의 첫 25GB의 스토리지는 AWS 프리 티어에 포함됩니다. 남은 2GB의 스토리지에는 GB당 0.25 USD의 요금이 청구되고 테이블 스토리지 요금은 월 0.50 USD입니다.
DynamoDB Streams: 이제 DynamoDB Streams를 활성화하고 스트림 데이터에 대해 초당 1회의 읽기 요청을 수행하는 애플리케이션을 빌드합니다. 한 달 동안 259만 2,000회의 스트림 요청 읽기가 있었는데, 이 가운데 처음 250만 회의 읽기 요청은 AWS 프리 티어에 포함됩니다. 남은 92,000회의 읽기 요청에 대해서만 요금을 지불하고, 이때 10만 개의 읽기 요청 유닛당 0.02 USD 요금이 적용됩니다.
데이터 전송: 지금 글로벌 테이블 구현으로 인해 AWS 리전 간 데이터 전송을 수행하고 있으므로 DynamoDB는 리전 외부로 전송된 데이터에 대해 요금을 청구하지만 인바운드 데이터 전송에 대해서는 요금을 청구하지 않습니다. 각각 1KB의 초당 80회의 지속적인 쓰기를 가정하는 경우 리전 간 데이터 전송에 초당 80KB의 데이터를 생성하고, 월별로 198GB의 교차 리전 데이터 전송(한 달 30일에 초당 80KB x 2,592,000초)이 발생합니다. 미국 서부(오레곤) 리전에서 복제본을 추가하면 25GB의 추가 데이터 전송이 생성됩니다. 이미 다른 AWS 서비스에서 AWS 프리 티어 데이터 전송 허용량을 사용한 경우 데이터 전송에 대한 요금은 20.07 USD(0.09 USD x [198GB +25GB])입니다.
정리하면 단일 리전 DynamoDB 테이블의 총 월별 요금은 다음과 같습니다.
- 프로비저닝된 용량: 50.00 USD
- 데이터 스토리지: 0.50 USD
- 온디맨드 백업: 5.00 USD
- 지속적(PITR) 백업: 5.80 USD
- 테이블 복원: 4.35 USD
- Kinesis Data Streams에 대한 변경 데이터 캡처: 20.74 USD
- Amazon S3로 데이터 내보내기: 2.90 USD
- Amazon DynamoDB 호환 캐싱 서비스 DynamoDB Accelerator(DAX)와의 통합: USD 14.40
- DynamoDB Streams: 0.02 USD
총 요금: 103.71 USD
미국 서부(오레곤) 리전을 추가한 후 총 월별 DynamoDB 요금은 다음과 같습니다.
- 프로비저닝된 읽기 용량: 10.68 USD
- 데이터 스토리지(버지니아 북부): 0.50 USD
- 온디맨드 백업: 5.00 USD
- 지속적(PITR) 백업: 5.80 USD
- 테이블 복원(버지니아 북부): 4.35 USD
- Kinesis Data Streams에 대한 변경 데이터 캡처: 20.74 USD
- Amazon S3로 데이터 내보내기: 2.90 USD
- Amazon DynamoDB 호환 캐싱 서비스 DynamoDB Accelerator(DAX)와의 통합: USD 14.40
- DynamoDB Streams: 0.02 USD
- 글로벌 테이블 복원(오레곤): 3.75 USD
- 글로벌 테이블 복제된 쓰기 용량: 125.66 USD
- 글로벌 테이블 데이터 스토리지(오레곤): 0.50 USD
- 데이터 전송: 20.07 USD
총 요금: 214.38 USD
-
• 다른 테이블 클래스 사용 예제
이 예제에서는 사용자의 테이블 스토리지 및 데이터 액세스 패턴에 가장 적합한 DynamoDB 테이블 클래스를 선택하여 테이블의 월별 비용을 줄이는 방법을 살펴봅니다.
미국 동부(버지니아 북부) 리전에 보유한 테이블이 있다고 가정하겠습니다. 해당 테이블에는 이미 1TB의 과거 데이터가 있습니다. 자주 액세스하는 데이터는 아니지만, 필요할 때는 즉시 사용할 수 있어야 합니다. 이제 데이터 스토리지가 월말까지 1.4TB로 증가하고 테이블 크기를 지속적으로 모니터링한 결과, 평균 1.2TB를 사용한다고 가정하겠습니다. 테이블에 예측 가능한 트래픽 패턴이 있습니다. 사용률이 월 내에 프로비저닝된 용량의 70%를 초과하지 않는다는 것을 알고 있으므로, 160개의 WCU와 160개의 RCU로 프로비저닝합니다.
먼저 DynamoDB Standard 테이블 클래스를 사용하여 테이블의 월별 요금을 추정해 보겠습니다.
DynamoDB Standard 테이블 클래스를 사용 시 월별 비용
테이블 클래스를 DynamoDB Standard로 설정하면 다음과 같이 청구됩니다.
데이터 스토리지: DynamoDB Standard 테이블 클래스를 사용하므로 첫 25GB의 스토리지는 AWS 프리 티어에 포함됩니다. 나머지 1.175TB의 스토리지에는 GB당 0.25 USD의 요금이 청구되고 당월의 테이블 스토리지 요금은 293.75 USD입니다.
프로비저닝된 용량: AWS 프리 티어에는 DynamoDB Standard 테이블 클래스를 사용한 테이블에 대해 WCU 25개 및 RCU 25개가 포함됩니다. 비용은 다음과 같이 부과됩니다.
프로비저닝된 쓰기 용량에 대해 135개 WCU x 시간당 0.00065 USD x 24시간 x 10일 = 63.18 USD,
프로비저닝된 읽기 용량에 대해 135개 RCU x 시간당 0.00013 USD x 24시간 x 10일 = 12.63 USD.
DynamoDB Standard 테이블 클래스를 사용할 경우 월별 총비용을 요약하면 다음과 같습니다.
- 프로비저닝된 용량: 75.82 USD
- 데이터 스토리지: 293.75 USD
DynamoDB Standard 테이블 클래스 사용에 대한 월별 비용은 369.57 USD입니다.
DynamoDB Standard-IA 테이블 클래스 사용에 대한 월별 비용
앞에서 설명한 것처럼 DynamoDB Standard 테이블 클래스를 사용할 경우 스토리지 비용은 프로비저닝된 용량 비용의 50%보다 큽니다. DynamoDB Standard 테이블 클래스를 사용하는데 비용에서 많은 부분을 스토리지가 차지하는 경우(프로비저닝된 용량 비용의 50% 이상) DynamoDB Standard-IA 테이블 클래스로 전환하여 비용을 최적화할 수 있습니다. 동일한 워크로드 조건에서, 이제 다음 달 초에 테이블 클래스를 DynamoDB Standard-IA로 전환한다고 가정해 보겠습니다. 비용은 다음과 같이 청구됩니다.
데이터 스토리지: 1.2TB의 스토리지에는 GB당 0.10 USD의 요금이 청구되고 테이블 스토리지 요금은 월 120.00 USD입니다.
프로비저닝된 용량: 다음과 같이 요금이 부과됩니다.
프로비저닝된 쓰기 용량에 대해 160개 WCU x 시간당 0.00081 USD x 24시간 x 10일 = 92.16 USD,
프로비저닝된 읽기 용량에 대해 160개 RCU x 시간당 0.00016 USD x 24시간 x 10일 = 18.43 USD.DynamoDB Standard-IA 테이블 클래스를 사용할 경우의 월별 비용을 요약하면 다음과 같습니다.
- 프로비저닝된 용량: 110.59 USD
- 데이터 스토리지: 120.00 USD
DynamoDB Standard-IA 테이블 클래스를 사용할 경우 월별 비용은 230.59 USD입니다. 테이블을 DynamoDB Standard-IA로 전환하면 테이블의 월별 비용이 37.6%, 138.97 USD 절감됩니다.
추가적인 요금 리소스
AWS에서 월별 비용을 손쉽게 계산
AWS 전문가에게 맞춤 견적 받기