온디맨드 용량 모드 사용 시 애플리케이션이 테이블에서 수행하는 데이터 읽기 및 쓰기 요청에 대해 요금이 청구됩니다. DynamoDB가 워크로드의 확장 또는 축소에 따라 워크로드를 즉시 조정하므로 사용자가 애플리케이션에 대해 예상하는 읽기 및 쓰기 처리량을 지정할 필요가 없습니다. 이 페이지에서는 DynamoDB의 주요 기능 및 선택적 기능에 대한 DynamoDB 요금을 세부적으로 설명합니다. AWS 중국 리전의 요금은 AWS 중국 리전 요금 페이지를 참조하세요.
주요 용어
읽기 요청 유닛: 테이블에서 데이터를 읽는 API 호출은 읽기 요청 유닛 단위로 요금이 청구됩니다. DynamoDB 읽기 요청은 강력한 일관된 읽기, 최종적 일관된 읽기 또는 트랜잭션 읽기일 수 있습니다. 최대 4KB의 강력한 일관된 읽기 요청은 1개의 읽기 요청 유닛을 필요로 합니다. 4KB보다 큰 경우 추가 읽기 요청 유닛을 필요로 합니다. 크기가 최대 4KB인 항목에 대해 최종적 일관된 읽기 요청은 0.5개의 읽기 요청 유닛을 필요로 하며, 트랜잭션 읽기 요청은 2개의 읽기 요청 유닛을 필요로 합니다. 예를 들어 8KB 항목의 강력한 일관된 읽기 요청은 2개의 읽기 요청 유닛을 필요로 하고, 8KB 항목의 최종적 일관된 읽기 요청은 1개의 읽기 요청 유닛을 필요로 하며, 8KB 항목의 트랜잭션 읽기 요청은 4개의 읽기 요청 유닛을 필요로 합니다. 자세한 내용은 읽기 일관성을 참조하세요.
쓰기 요청 유닛: 테이블에 데이터를 쓰는 API 호출은 쓰기 요청 유닛 단위로 요금이 청구됩니다. 표준 쓰기 요청 유닛은 최대 1KB의 항목을 쓸 수 있습니다. 1KB보다 큰 경우 추가 쓰기 요청 유닛을 필요로 합니다. 트랜잭션 쓰기 요청은 2개의 쓰기 요청 유닛을 필요로 합니다. 예를 들어 1KB 항목의 쓰기 요청은 1개의 쓰기 요청 유닛을 필요로 하고, 3KB 항목의 쓰기 요청은 3개의 쓰기 요청 유닛을 필요로 하며, 3KB 항목의 트랜잭션 쓰기 요청은 6개의 쓰기 요청 유닛을 필요로 합니다.
복제된 쓰기 요청 유닛: 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 기능 및 결제 개요
기능 |
역할 |
결제 단위 |
|
핵심 기능 |
|||
|
쓰기 요청 |
테이블에 대한 데이터 쓰기 |
쓰기 요청 유닛 |
|
읽기 요청 |
테이블로부터 데이터 읽기 |
읽기 요청 유닛 |
선택적 기능 |
|||
|
지속적 백업 |
이전 35일 동안의 지속적인 백업을 가져옴 |
월별 GB당 |
|
온디맨드 백업 |
지정된 시점에서 스냅샷 백업을 가져옴 |
월별 GB당 |
|
백업으로부터 복원 |
특정 스냅샷 또는 시간에 테이블 복원 |
GB |
|
글로벌 테이블 |
데이터를 복제하여 다중 리전, 다중 활성 테이블 생성 |
복제된 쓰기 요청 유닛 |
Amazon Kinesis Data Streams에 대한 변경 데이터 캡처 | 테이블에서 항목 수준 데이터 변경 캡처 및 Kinesis Data Streams에 복제 | 변경 데이터 캡처 유닛 | |
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 요금
-
• 읽기 및 쓰기 요청
DynamoDB 테이블에 대해 온디맨드 용량 모드를 선택한 경우 애플리케이션이 수행하는 읽기 및 쓰기에 대해 요금이 청구됩니다. 테이블의 처리량 용량을 관리할 필요 없이 API를 호출할 수 있습니다. DynamoDB는 하드웨어 리소스 관리를 처리하여 지연 시간이 짧고 일관된 성능으로 워크로드를 지원합니다. DynamoDB는 각 쓰기(최대 1KB)에 대해 1개의 쓰기 요청 유닛, 트랜잭션 쓰기에 대해 2개의 쓰기 요청 유닛 요금을 청구합니다. 읽기의 경우 DynamoDB는 각각의 강력한 일관된 읽기(최대 4KB)에 1개의 읽기 요청 유닛, 각각의 트랜잭션 읽기에 대해 2개의 읽기 요청 유닛, 각각의 최종적 일관된 읽기에 대해 1.5개의 읽기 요청 유닛 요금을 청구합니다. 읽기 및 쓰기 요청에 대한 요금은 사용자의 테이블 클래스에 따라 달라집니다.
-
• 데이터 스토리지
스토리지를 프로비저닝할 필요가 없습니다. 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 글로벌 테이블에 대해 온디맨드 용량 모드를 선택한 경우 애플리케이션에서 각 복제본 테이블에 대해 사용하는 리소스에 대해서만 요금이 청구됩니다. 글로벌 테이블에 대한 쓰기 요청은 표준 쓰기 요청 유닛 대신 복제된 쓰기 요청 유닛으로 측정됩니다. 복제에 소비된 복제된 쓰기 요청 유닛의 수는 사용하는 글로벌 테이블 버전에 따라 달라집니다. 자세한 내용은 글로벌 테이블 관리 모범 사례 및 요구 사항을 참조하세요. 읽기 요청 및 데이터 스토리지의 경우 글로벌 테이블이 아닌 테이블과 일관되게 요금이 청구됩니다. 요금은 테이블 클래스에 따라 다릅니다. 테이블 복제본을 추가하여 새 리전에서 글로벌 테이블을 생성 또는 확장하는 경우 DynamoDB는 추가된 리전에서 저장된 데이터의 GB당 테이블 복원 요금을 청구합니다. 교차 리전 복제본 및 데이터를 포함하는 테이블에 복제본 추가도 데이터 전송(발신) 요금이 발생합니다. 자세한 내용은 요금 페이지의 "데이터 전송"을 참조하십시오.
-
• Amazon Kinesis Data Streams에 대한 변경 데이터 캡처
DynamoDB는 Amazon Kinesis Data Streams에 대한 변경 데이터 캡처에 대해 변경 데이터 캡처 유닛으로 요금을 청구합니다. DynamoDB는 각 쓰기(최대 1KB)에 대해 변경 데이터 캡처 유닛 1개의 요금을 부과합니다. 테이블에서 처리량 용량을 관리하지 않고도 애플리케이션에서 수행하는 쓰기에 대해서만 비용을 지불합니다.
Kinesis Data Streams 요금은 DynamoDB 변경을 Kinesis 데이터 스트림으로 복제하는 경우에도 계속 적용됩니다. 자세한 내용은 Amazon Kinesis Data Streams 요금을 참조하세요. -
• 웜 처리량
기본적으로 웜 처리량 값은 모든 Amazon DynamoDB 테이블과 인덱스에 대해 표시됩니다. 이 값은 프로비저닝된 처리량 또는 온디맨드 사용량이 증가하면 추가 비용 없이 자동으로 조정됩니다. 그러나 이러한 값을 수동으로 늘리도록 선택하면 추가 요금이 부과됩니다.
읽기 및 쓰기에 대한 새로운 웜 처리량 값을 설정하여 테이블 또는 인덱스를 예열하도록 요청하면, DynamoDB는 새 값과 테이블 또는 인덱스가 지원할 수 있는 현재 웜 처리량 간의 차이에 따라 요금을 부과합니다. 읽기 웜 처리량이 한 유닛 증가할 때마다 읽기 용량 유닛(RCU) 1개, 쓰기 웜 처리량이 한 유닛 증가할 때마다 쓰기 용량 유닛(WCU) 1개의 지역 요금에 따라 일회성 수수료가 부과됩니다. 이러한 요금은 DynamoDB Standard 및 Standard-Infrequent Access 테이블 클래스 모두에 적용됩니다.
읽기, 쓰기 또는 둘 다에 대해 글로벌 테이블 복제본을 미리 예열하면 모든 복제본이 동일한 웜 처리량 값에 맞게 미리 예열됩니다. 글로벌 테이블 구성에 속한 각 AWS 리전에서 요금이 부과됩니다.
예시: 현재 웜 처리량이 초당 12,000개의 읽기 유닛과 초당 4,000개의 쓰기 유닛인 미국 동부(노스 버지니아) 리전의 DynamoDB 표준 테이블이 있다고 가정합니다. 다가오는 피크 이벤트의 경우 테이블에 초당 100,000개의 읽기 단위가 필요할 것으로 예상되므로 이를 새로운 읽기 웜 처리량 값으로 설정합니다. 추가 읽기 유닛 88,000개(100,000개와 12,000개의 차액)에 대해서는 USD 11.44(88,000개 유닛 × RCU당 USD 0.00013)의 일회성 수수료가 부과됩니다. 이 과금 구조는 읽기 또는 쓰기를 위해 테이블 또는 인덱스를 예열하든 DynamoDB Standard 또는 Standard-Infrequent Access 테이블 클래스에서 적용합니다. 이 테이블이 미국 동부(버지니아 북부)를 포함한 3개 리전에 복제본이 있는 글로벌 테이블 설정의 일부인 경우, 3개의 복제본 모두 초당 100,000개의 읽기 단위의 웜 처리량을 지원하기 위해 미리 예열됩니다. 미국 동부(버지니아 북부)의 요금 외에도 글로벌 테이블 구성의 일부인 각 리전의 해당 요금이 청구됩니다. -
• 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 데이터 전송 요금이 청구되지 않습니다.
DAX T3 인스턴스는 무제한 모드로 실행되므로 연속 24시간 기간 동안 평균 CPU 사용률이 인스턴스의 기본 사용률을 초과하는 경우 요금이 부과됩니다. CPU 크레딧은 vCPU 시간당 0.096 USD가 부과됩니다. CPU 크레딧 요금은 모든 AWS 리전에서 모든 T3 인스턴스 크기에 대해 동일합니다.
-
• DynamoDB 스트림
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 서비스 및 리전을 합산해 매달 100GB의 무료 인터넷 데이터 송신 혜택을 받게 됩니다. 자세한 내용은 AWS 프리 티어를 참조하세요. 월별 500TB를 초과하여 데이터를 전송하려면 AWS에 문의하세요.
DynamoDB 프리 티어
AWS 프리 티어를 사용하면 AWS 서비스를 무료로 체험할 수 있습니다. 다음 DynamoDB 혜택은 AWS 프리 티어의 일부분으로 포함됩니다. 각 혜택은 리전별로 지급인 계정에 따라 월 단위로 계산됩니다.
- DynamoDB Standard 테이블 클래스를 사용한 테이블에 대해 데이터 스토리지 25GB
- DynamoDB Streams로부터 250만 건의 스트림 읽기 요청
- 모든 AWS 서비스 및 리전(중국 및 GovCloud 제외)에서 집계된 1GB의 데이터 송신(첫 12달 동안 15GB)
DynamoDB 요금 예제
-
• 기본 예제
이 예제는 온디맨드 용량 모드 사용 시 DynamoDB 요금이 어떻게 청구되는지 보여줍니다.
미국 동부(버지니아 북부) 리전에 새 DynamoDB Standard 테이블을 생성한다고 가정합니다. 이 테이블은 새 애플리케이션에 대한 것이므로 트래픽 패턴이 무엇인지 알 수 없습니다. 간단한 설명을 위해 사용자가 애플리케이션과 상호 작용할 때마다 1KB의 쓰기 1회와 1KB의 강력한 일관된 읽기를 수행한다고 가정합니다.
10일 동안 애플리케이션에서 수신한 트래픽이 거의 없어 매일 테이블에 10,000회의 읽기와 10,000회의 쓰기가 이루어집니다. 하지만 11일째에 애플리케이션이 소셜 미디어의 관심을 얻으면서 애플리케이션 트래픽이 250만 회의 읽기와 250만 회의 쓰기로 폭증합니다. DynamoDB는 사용자에게 원활한 경험을 제공하도록 크기를 조정합니다. 이후 애플리케이션은 더욱 규칙적인 트래픽 패턴을 보이면서 월말까지 매일 평균 50,000회의 읽기와 50,000회의 쓰기가 이루어집니다. 다음 표는 월별 총 사용량을 요약합니다.
기간(일)
쓰기 합계
읽기 합계
1~10
쓰기 10만 회(쓰기 10,000회 x 10일)
읽기 10만 회(읽기 10,000회 x 10일)
11
쓰기 250만 회
읽기 250만 회
12~30
쓰기 95만 회(쓰기 50,000회 x 19일)
읽기 95만 회(읽기 50,000회 x 19일)
월 합계
쓰기 355만 회
읽기 355만 회
월별 청구 금액
4.44 USD(쓰기 100만 회당 1.25 USD x 쓰기 355만 회)
0.89 USD(읽기 100만 회당 0.25 USD x 읽기 355만 회)
데이터 스토리지: 월초에 테이블이 25GB의 스토리지를 사용하고, 월말에 29GB로 증가하며, DynamoDB의 지속적인 모니터링을 기준으로 평균 27GB를 사용한 것으로 가정합니다. 테이블 클래스가 DynamoDB Standard로 설정되었으므로 첫 25GB의 스토리지는 AWS 프리 티어에 포함됩니다. 나머지 2GB의 스토리지에는 GB당 0.25 USD의 요금이 청구되고 테이블 스토리지 요금은 월 0.50 USD입니다.
해당 월에 대해 청구되는 요금은 5.83 USD로, 읽기 및 쓰기 요금 5.33 USD와 데이터 스토리지 요금 0.50 USD의 합계입니다.
-
• 세부 예제
이 예제는 온디맨드 용량 모드 사용 시 DynamoDB 요금이 어떻게 청구되는지 보여줍니다.
미국 동부(버지니아 북부) 리전에 새 DynamoDB Standard 테이블을 생성한다고 가정합니다. 이 테이블은 새 애플리케이션에 대한 것이므로 트래픽 패턴이 무엇인지 알 수 없습니다. 간단한 설명을 위해 사용자가 애플리케이션과 상호 작용할 때마다 1KB의 쓰기 1회와 1KB의 강력한 일관된 읽기를 수행한다고 가정합니다.
7일 동안 애플리케이션에서 수신한 트래픽이 거의 없어 매일 테이블에 1,000회의 읽기와 쓰기가 이루어집니다. 하지만 8일째에 애플리케이션이 업계의 유명한 인플루언서의 관심을 받으면서 애플리케이션 트래픽이 예상과 다르게 하루 1,000만 회의 쓰기 및 읽기로 폭증합니다. 이후 애플리케이션은 더욱 규칙적인 패턴을 보이면서 향후 2주 동안 매일 평균 15만 회의 쓰기와 읽기가 이루어집니다. 그리고 트래픽이 급격하게 줄어들면서 다음 7일 동안 하루 10,000회의 쓰기 및 읽기가 이루어집니다.
마지막으로 예기치 않게 애플리케이션이 소셜 미디어에서 입소문을 타기 시작합니다. 월 마지막 날에는 애플리케이션이 테이블에 3,000만 회의 쓰기 및 읽기를 수행합니다. 다음 표는 월별 총 사용량을 요약합니다.
기간(일)
쓰기 합계
읽기 합계
1~7
쓰기 7,000회(쓰기 1,000회 x 7일)
읽기 7,000회(읽기 1,000회 x 7일)
8
쓰기 1,000만 회
읽기 1,000만 회
9~22
쓰기 210만 회(쓰기 15만 회 x 14일)
읽기 210만 회(읽기 15만 회 x 14일)
23~29
쓰기 70,000회(쓰기 10,000회 x 7일)
읽기 70,000회(읽기 10,000회 x 7일)
30
쓰기 3,000만 회
읽기 3,000만 회
월 합계
쓰기 4,217만 7,000회
읽기 4,217만 7,000회
월별 청구 금액
52.72 USD(쓰기 100만 회당 1.25 USD x 쓰기 4,217만 7,000회)
10.54 USD(읽기 100만 회당 0.25 USD x 읽기 4,217만 7,000회)
데이터 스토리지: 월초에 테이블이 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/월이 청구됩니다. 이제 온디맨드 백업 수행 외에도 지속적 백업을 사용한다고 가정합니다. 테이블의 평균 크기는 27GB로, 월별 요금은 5.40 USD/월(0.20 USD x 27GB)입니다. 월말에 테이블을 복원해야 하는 경우 요금은 4.35 USD(0.15 USD x 29GB)입니다.
Kinesis Data Streams에 대한 변경 데이터 캡처: 이제 Amazon Kinesis 서비스를 사용하여 데이터를 처리하기 위해 Kinesis 데이터 스트림으로 스트리밍을 활성화한다고 가정합니다. DynamoDB는 Kinesis 데이터 스트림으로 캡처하는 각 1KB 쓰기에 대해 변경 데이터 캡처 유닛 1개를 청구합니다. 이 예의 초반에 애플리케이션 쓰기 트래픽이 Kinesis 데이터 스트림에서 일관되다고 가정했으므로 한 달 동안 변경 데이터 캡처 유닛은 42,177,000개입니다. 이때 월별 비용은 (0.10 USD x 42,177,000/1,000,000) = 4.22 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가 생성됩니다. 이 예제 초반의 애플리케이션 트래픽이 글로벌 테이블에 대해 일관적이라고 가정합니다. 글로벌 테이블 관리 모범 사례 및 요구 사항에서 설명하는 것과 같이 8,435만 개의 복제된 쓰기 요청 유닛(쓰기 4,217만 7,000회 x 2개 리전)을 사용하면 158.16 USD(복제된 쓰기 요청 유닛 8,435만 개 x 백만 개당 1.875 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의 쓰기 4,217만 7,000회를 수행한다고 가정할 때 리전 간 40.22GB의 데이터를 전송하게 됩니다. 미국 서부(오레곤) 리전에서 복제본을 추가하면 25GB의 추가 데이터 전송이 생성됩니다. 리전 간 데이터 전송에 대해 5.94 USD(0.09 USD x [41 + 25]GB)가 청구됩니다.
정리하면 단일 리전 DynamoDB 테이블의 총 월별 요금은 다음과 같습니다.
- 쓰기 트래픽: 52.72 USD
- 읽기 트래픽: 10.54 USD
- 데이터 스토리지: 0.50 USD
- 온디맨드 백업: 5.00 USD
- 지속적(PITR) 백업: 5.40 USD
- 테이블 복원: 4.35 USD
- Kinesis Data Streams에 대한 변경 데이터 캡처: 4.22 USD
- Amazon S3로 데이터 내보내기: 2.90 USD
- Amazon DynamoDB 호환 캐싱 서비스 DynamoDB Accelerator(DAX)와의 통합: USD 14.40
- DynamoDB Streams: 0.02 USD
총 요금: 100.05 USD
미국 서부(오레곤) 리전을 추가한 후 총 월별 DynamoDB 요금은 다음과 같습니다.
- 읽기 트래픽: 10.54 USD
- 미국 동부(버지니아 북부)의 데이터 스토리지: 0.50 USD
- 온디맨드 백업: 5.00 USD
- 지속적(PITR) 백업: 5.40 USD
- 미국 동부(버지니아 북부)의 테이블 복원: 4.35 USD
- Kinesis Data Streams에 대한 변경 데이터 캡처: 4.22 USD
- Amazon S3로 데이터 내보내기: 2.90 USD
- Amazon DynamoDB 호환 캐싱 서비스 DynamoDB Accelerator(DAX)와의 통합: USD 14.40
- DynamoDB Streams: 0.02 USD
- 미국 서부(오레곤)의 글로벌 테이블 복원: 3.75 USD
- 글로벌 테이블 복제된 쓰기 요청: 158.16 USD
- 미국 서부(오레곤)의 글로벌 테이블 데이터 스토리지: 0.50 USD
- 데이터 전송: 5.94 USD
총 요금: 215.68 USD
-
• 다른 테이블 클래스 사용 예제
이 예제에서는 사용자의 테이블 스토리지 및 데이터 액세스 패턴에 가장 적합한 DynamoDB 테이블 클래스를 선택하여 테이블의 월별 비용을 줄이는 방법을 살펴봅니다.
미국 동부(버지니아 북부) 리전에 보유한 테이블이 있다고 가정하겠습니다. 해당 테이블에는 이미 1TB의 과거 데이터가 있습니다. 자주 액세스하는 데이터는 아니지만, 필요할 때는 즉시 사용할 수 있어야 합니다. 이제 데이터 스토리지가 월말까지 1.4TB로 증가하고 테이블 크기의 지속적인 모니터링을 기준으로 평균 1.2TB를 사용한다고 가정하겠습니다. 사용자의 테이블에서는 한달 동안 총 4,250만 회의 쓰기 및 4,250만 회의 읽기를 수행하는 트래픽 패턴이 있습니다. 간단한 설명을 위해 사용자가 애플리케이션과 상호 작용할 때마다 1KB의 쓰기 1회와 1KB의 강력한 일관된 읽기를 수행한다고 가정합니다.
먼저 DynamoDB Standard 테이블 클래스를 사용하여 테이블의 월별 요금을 추정해 보겠습니다.
DynamoDB Standard 테이블 클래스를 사용 시 월별 비용
테이블 클래스를 DynamoDB Standard로 설정하면 다음과 같이 청구됩니다.
데이터 스토리지: DynamoDB Standard 테이블 클래스를 사용하므로 첫 25GB의 스토리지는 AWS 프리 티어에 포함됩니다. 나머지 1.175TB의 스토리지에는 GB당 0.25 USD의 요금이 청구되고 당월의 테이블 스토리지 요금은 293.75 USD입니다.
읽기 및 쓰기: 다음과 같이 청구됩니다.
쓰기 4,250만 회 x 쓰기 100만 회당 1.25 USD = 쓰기 요청에 대해 53.125 USD,
읽기 4,250만회 x 읽기 100만 회당 0.25 USD = 읽기 요청에 대해 10.625 USD.DynamoDB Standard 테이블 클래스를 사용할 경우 총 월별 요금을 요약하면 다음과 같습니다.
- 쓰기 트래픽: 53.125 USD
- 읽기 트래픽: 10.625 USD
- 데이터 스토리지: 293.75 USD
DynamoDB Standard 테이블 클래스 사용에 대한 총 월별 요금은 357.50 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입니다.
읽기 및 쓰기: 다음과 같이 청구됩니다.
쓰기 4,250만 회 x 쓰기 100만 회당 1.56 USD = 쓰기 요청에 대해 66.30 USD,
읽기 4,250만 회 x 읽기 100만 회당 0.31 USD = 읽기 요청에 대해 13.18 USD.DynamoDB Standard-IA 테이블 클래스를 사용할 경우의 총 월별 요금을 요약하면 다음과 같습니다.
- 쓰기 트래픽: 66.30 USD
- 읽기 트래픽: 13.18 USD
- 데이터 스토리지: 120.00 USD
DynamoDB Standard-IA 테이블 클래스 사용에 대한 총 요금: 199.48 USD.
DynamoDB Standard-IA 테이블을 사용하면 테이블의 총 월별 요금이 44.2% 또는 158.03 USD 절감됩니다.
추가적인 요금 리소스
AWS에서 월별 비용을 손쉽게 계산
AWS 전문가에게 맞춤 견적 받기