DynamoDB의 AWS 결제 및 사용량 보고서 이해에 관한 모범 사례 - Amazon DynamoDB

DynamoDB의 AWS 결제 및 사용량 보고서 이해에 관한 모범 사례

이 문서에서는 DynamoDB 관련 요금의 UsageType 결제 코드를 설명합니다.

AWS는 사용된 서비스에 대한 데이터가 포함된 비용 및 사용량 보고서(CUR)를 제공합니다. AWS Cost and Usage Report를 사용하여 결제 보고서를 Amazon S3에 CSV 형식으로 게시할 수 있습니다. CUR을 설정할 때 기간을 시간, 일 또는 월별로 구분할 수 있으며 리소스 ID별로 사용량을 구분할지를 선택할 수 있습니다. CUR 생성에 대한 자세한 내용은 Creating Cost and Usage Reports를 참조하세요.

CSV 내보내기에서 각 라인에 나열된 관련 속성을 찾을 수 있습니다. 포함될 수 있는 속성의 예는 다음과 같습니다.

  • lineitem/UsageStartDate: 이 행 항목의 시작 날짜와 시간(UTC)입니다. 포괄적입니다.

  • lineitem/UsageEndDate: 해당 행 항목의 종료 날짜와 시간(UTC)입니다. 배타적입니다.

  • lineitem/ProductCode: DynamoDB의 경우 'AmazonDynamoDB'입니다.

  • lineitem/UsageType: 이 문서에 열거된 사용량 유형에 대한 특정 설명 코드입니다.

  • lineitem/Operation: 요금이 발생한 작업 이름과 같이 요금에 대한 컨텍스트를 제공하는 이름(선택 사항).

  • lineitem/ResourceId: 사용량이 발생한 리소스의 식별자입니다. CUR에 리소스 ID별 분류가 포함된 경우 사용할 수 있습니다.

  • lineitem/UsageAmount: 지정된 기간 동안 발생한 사용량입니다.

  • lineitem/UnblendedCost: 이 사용량에 발생한 비용입니다.

  • lineitem/LineItemDescription: 행 항목의 텍스트 설명입니다.

CUR 데이터 딕셔너리에 대한 자세한 내용은 Cost and Usage Report (CUR) 2.0을 참조하세요. 정확한 이름은 상황에 따라 달라진다는 점에 유의하세요.

UsageTypeReadCapacityUnit-Hrs, USW2-ReadRequestUnits, EU-WriteCapacityUnit-Hrs 또는 USE1-TimedPITRStorage-ByteHrs 등의 값을 가진 문자열입니다. 각 사용량 유형은 선택적 리전 접두사로 시작합니다. 없는 경우 us-east-1 리전을 나타냅니다. 리전 접두사가 있는 경우 아래 테이블은 축약된 청구 리전 코드를 일반적인 리전 코드 및 이름에 매핑한 것입니다.

예를 들어, USW2-ReadRequestUnits라는 사용량은 us-west-2에서 사용된 읽기 요청 단위를 나타냅니다.

결제 리전 코드 리전 코드 리전 이름
AFS1 af-south-1 아프리카(케이프타운)
APE1 ap-east-1 아시아 태평양(홍콩)
APN1 ap-northeast-1 아시아 태평양(도쿄)
APN2 ap-northeast-2 아시아 태평양(서울)
APN3 ap-northeast-3 아시아 태평양(오사카)
APS1 ap-south-1 아시아 태평양(뭄바이)
APS2 ap-south-2 아시아 태평양(하이데라바드)
APS3 ap-southeast-1 아시아 태평양(싱가포르)
APS4 ap-southeast-2 아시아 태평양(시드니)
APS5 ap-southeast-3 아시아 태평양(자카르타)
APS6 ap-southeast-4 아시아 태평양(멜버른)
CAN1 ca-central-1 캐나다(중부)
EU eu-central-1 유럽(프랑크푸르트)
EUC1 eu-central-2 유럽(취리히)
EUN1 eu-north-1 유럽(스톡홀름)
EUS1 eu-south-1 유럽(밀라노)
EUS2 eu-south-2 유럽(스페인)
EUW1 eu-west-1 유럽(아일랜드)
EUW2 eu-west-2 유럽(런던)
EUW3 eu-west-3 유럽(파리)
ILC1 Il-central-1 이스라엘(텔아비브)
MEC1 me-central-1 중동(UAE)
MES1 me-south-1 중동(바레인)
SAE1 sa-east-1 남아메리카(상파울루)
USE1(기본값) us-east-1 미국 동부(버지니아 북부)
USE2 us-east-2 미국 동부(오하이오)
UGE1 us-gov-east-1 미국 정부 동부
UGW1 us-gov-west-1 미국 정부 서부
USW1 us-west-1 미국 서부(캘리포니아 북부)
USW2 us-west-2 미국 서부(오레곤)

다음 섹션에서는 DynamoDB 요금을 살펴볼 때 REG-UsageType 패턴을 사용합니다. 여기서 REG는 사용량이 발생한 리전을 지정하고 usageType은 요금 유형의 코드입니다. 예를 들어 CSV 파일에 USW1- ReadCapacityUnit-Hrs에 대한 행 항목이 표시되면 US-West-1에서 프로비저닝된 읽기 용량에 대한 사용량이 발생한 것입니다. 이 경우 목록에 REG-ReadCapacityUnit-Hrs가 표시됩니다.

처리량 용량

프로비저닝된 용량 읽기 및 쓰기

프로비저닝된 용량 모드에서 DynamoDB 테이블을 생성할 때는 애플리케이션에 필요할 것으로 예상되는 읽기 및 쓰기 용량을 지정합니다. 사용량 유형은 테이블 클래스(Standard 또는 Standard-Infrequent Access)에 따라 다릅니다. 초당 사용률을 기준으로 읽기 및 쓰기를 프로비저닝하지만 프로비저닝된 용량을 기준으로 시간당 요금이 부과됩니다.

UsageType 단위 Granularity 설명
REG-ReadCapacityUnit-Hrs RCU 시간 시간 Standard 테이블 클래스를 사용하여 프로비저닝된 용량 모드의 읽기 요금을 부과합니다.
REG-IA-ReadCapacityUnit-Hrs RCU 시간 시간 Standard-IA 테이블 클래스를 사용하여 프로비저닝된 용량 모드의 읽기 요금을 부과합니다.
REG-WriteCapacityUnit-Hrs WCU 시간 시간 Standard 테이블 클래스를 사용하여 프로비저닝된 용량 모드의 쓰기 요금을 부과합니다.
REG-IA-WriteCapacityUnit-Hrs WCU 시간 시간 Standard-IA 테이블 클래스를 사용하여 프로비저닝된 용량 모드의 쓰기 요금을 부과합니다.

예약 용량 읽기 및 쓰기

예약 용량을 구입할 경우 선결제 요금을 1회 지불하고 일정 기간에 대해 최소 프로비저닝된 사용량 수준을 약정합니다. 예약 용량은 할인된 시간당 요금으로 청구됩니다. 예약 용량을 초과하여 프로비저닝하는 용량에는 프로비저닝된 용량 표준 요금이 청구됩니다. 예약 용량은 Standard 테이블 클래스를 사용하는 DynamoDB 테이블의 단일 리전에 프로비저닝된 읽기 및 쓰기 용량 단위(RCU 및 WCU)에 사용할 수 있습니다. 1년 및 3년 예약 용량 모두 동일한 SKU를 사용하여 청구됩니다.

UsageType 단위 Granularity 설명
REG-HeavyUsage:dynamodb.read RCU 시간 선결제 후 월별 예약 용량 읽기 요금: 선결제 금액은 한 번만 청구되며 매월 초에 해당 월의 할인된 약정 RCU 시간을 모두 포함하는 월별 요금이 부과됩니다. 여기에 상응하는 비용이 전혀 들지 않는 REG-ReadCapacityUnit-Hrs 행 항목이 있습니다.
REG-HeavyUsage:dynamodb.write WCU 시간 선결제 후 월별 예약 용량 쓰기 요금: 선결제 금액은 한 번만 청구되며 매월 초에 해당 월의 할인된 약정 WCU 시간을 모두 포함하는 월별 요금이 부과됩니다. 여기에 상응하는 비용이 전혀 들지 않는 REG-WriteCapacityUnit-Hrs 행 항목이 있습니다.

온디맨드 용량 읽기 및 쓰기

온디맨드 용량 모드로 DynamoDB 테이블을 생성할 경우 애플리케이션에서 수행하는 읽기 및 쓰기에 대해서만 요금을 지불합니다. 읽기 및 쓰기 요청 요금은 테이블 클래스에 따라 다릅니다.

UsageType 단위 Granularity 설명
REG-ReadRequestUnits RRU 단위 Standard 테이블 클래스를 사용하는 온디맨드 용량 모드의 읽기 요금을 부과합니다.
REG-IA-ReadRequestUnits RRU 단위 Standard-IA 테이블 클래스를 사용하는 온디맨드 용량 모드의 읽기 요금을 부과합니다.
REG-WriteRequestUnits WRU 단위 Standard 테이블 클래스를 사용하는 온디맨드 용량 모드의 쓰기 요금을 부과합니다.
REG-IA-WriteRequestUnits WRU 단위 Standard-IA 테이블 클래스를 사용하는 온디맨드 용량 모드의 쓰기 요금을 부과합니다.

글로벌 테이블 읽기 및 쓰기

DynamoDB는 각 복제본 테이블에 사용된 리소스를 기준으로 글로벌 테이블 사용에 대한 요금을 부과합니다. 프로비저닝된 글로벌 테이블의 경우 글로벌 테이블에 대한 쓰기 요청은 표준 WCU 대신 복제된 WCU(rWCU)로 측정되며 글로벌 테이블의 글로벌 보조 인덱스에 대한 쓰기는 WCU로 측정됩니다. 온디맨드 글로벌 테이블의 경우 쓰기 요청은 표준 WRU 대신 복제된 WRU(rWRU) 로 측정됩니다. 복제에 사용되는 rWCU 또는 rWRU 수는 사용 중인 글로벌 테이블 버전에 따라 다릅니다. 요금은 테이블 클래스에 따라 다릅니다.

글로벌 보조 인덱스(GSI)에 대한 쓰기에는 표준 쓰기 단위(WCU 및 WRU)를 사용하여 요금이 부과됩니다. 읽기 요청 및 데이터 스토리지는 단일 리전 테이블과 동일하게 청구됩니다.

테이블 복제본을 추가하여 새 리전에서 글로벌 테이블을 생성하거나 확장하는 경우, DynamoDB는 추가된 리전의 테이블 복원 비용을 복원된 데이터의 GB당 부과합니다. 복원된 데이터는 REG-RestoreDataSize-Bytes로 요금이 부과됩니다. 자세한 내용은 DynamoDB에 대한 백업 및 복원 섹션을 참조하세요. 리전 간 복제 및 데이터가 포함된 테이블에 복제본을 추가하는 경우에도 데이터 송신 요금이 부과됩니다.

DynamoDB 글로벌 테이블에 온디맨드 용량 모드를 선택하면 애플리케이션이 각 복제본 테이블에서 사용하는 리소스에 대한 비용만 지불하면 됩니다.

UsageType 단위 Granularity 설명
REG-ReplWriteCapacityUnit-Hrs rWCU 시간 시간 글로벌 테이블, 프로비저닝됨, Standard 테이블 클래스
REG-IA-ReplWriteCapacityUnit-Hrs rWCU 시간 시간 글로벌 테이블, 프로비저닝됨, Standard-IA 테이블 클래스
REG-ReplWriteRequestUnits rWRU 단위 글로벌 테이블, 온디맨드, Standard 테이블 클래스
REG-IA-ReplWriteRequestUnits rWRU 단위 글로벌 테이블, 온디맨드, Standard-IA 테이블 클래스

스트림

DynamoDB에는 DynamoDB Streams와 Kinesis라는 두 가지 스트리밍 기술이 있습니다. 각각 별도의 요금 체계가 적용됩니다.

DynamoDB Streams는 읽기 요청 단위로 데이터 읽기에 대해 요금을 부과합니다. 각 GetRecords API 직접 호출은 스트림 읽기 요청으로 청구됩니다. DynamoDB 트리거의 일부로 AWS Lambda에서 또는 복제의 일부로 DynamoDB 글로벌 테이블에서 호출한 GetRecords API 직접 호출에 대해서는 요금이 부과되지 않습니다.

UsageType 단위 Granularity 설명
REG-Streams-RequestsCount 개수 단위 DynamoDB Streams에 대한 읽기 요청 단위

Amazon Kinesis Data Streams에서는 변경 데이터 캡처 단위로 요금을 부과합니다. DynamoDB는 각 쓰기(최대 1KB)에 대해 변경 데이터 캡처 단위 1개를 부과합니다. 항목이 1KB보다 크면 변경 데이터 캡처 단위가 추가로 필요합니다. 테이블의 처리량 용량을 관리할 필요 없이 애플리케이션이 수행한 쓰기에 대해서만 비용을 지불하면 됩니다.

UsageType 단위 Granularity 설명
REG-ChangeDataCaptureUnits-Kinesis CDC 단위 단위 Kinesis Data Streams에 대한 변경 데이터 캡처 단위

스토리지

DynamoDB는 데이터의 원시 바이트 크기와 활성화한 기능에 따라 항목당 스토리지 오버헤드를 추가하여 청구 가능한 데이터의 크기를 측정합니다.

참고

CUR의 스토리지 사용량 값은 DescribeTable을 사용할 때의 스토리지 값에 비해 더 높습니다. DescribeTable은 항목당 스토리지 오버헤드를 포함하지 않기 때문입니다.

스토리지는 시간당 계산되지만 시간당 요금의 평균을 바탕으로 계산된 월별 요금이 부과됩니다.

UsageType 스토리지는 ByteHrs를 접미사로 사용하지만 CUR의 스토리지 사용량은 GB 단위로 측정되며 월별 GB로 요금이 책정됩니다.

UsageType 단위 Granularity 설명
REG-TimedStorage-ByteHrs GB Standard 테이블 클래스를 사용하는 테이블의 DynamoDB 테이블 및 인덱스가 사용하는 스토리지의 양입니다.
REG-IA-TimedStorage- ByteHrs GB Standard-IA 테이블 클래스를 사용하는 테이블의 DynamoDB 테이블 및 인덱스에 사용되는 스토리지의 양입니다.

백업 및 복원

DynamoDB는 시점 복구(PITR) 백업과 온디맨드 백업이라는 두 가지 유형의 백업을 제공합니다. 또한 사용자는 이러한 백업에서 DynamoDB 테이블로 복원할 수 있습니다. 아래 요금은 백업과 복원 모두에 적용됩니다.

백업 스토리지 요금은 매월 1일에 발생하며 백업이 추가 또는 제거됨에 따라 한 달 내내 조정이 이루어집니다. 자세한 내용은 Understanding Amazon DynamoDB On-demand Backups and Billing 블로그를 참조하세요.

UsageType 단위 Granularity 설명
REG-TimedBackupStorage-ByteHrs GB DynamoDB 테이블 및 로컬 보조 인덱스의 온디맨드 백업에 사용되는 스토리지입니다.
TimedPITRStorage-ByteHrs GB 시점 복구(PITR) 백업에 사용되는 스토리지입니다. DynamoDB는 PITR이 활성화되어 있는 경우 한 달 내내 지속적으로 PITR 지원 테이블 크기를 모니터링하여 백업 요금 및 청구 요금을 결정합니다.
REG-RestoreDataSize-Bytes GB 크기 DynamoDB 백업에서 복원된 총 데이터 크기(테이블 데이터, 로컬 보조 인덱스 및 글로벌 보조 인덱스 포함)로, GB 단위로 측정됩니다.

AWS Backup

AWS Backup은 클라우드 및 온프레미스에서 AWS 서비스 전반의 데이터 백업을 쉽게 중앙 집중화하고 자동화할 수 있는 완전관리형 백업 서비스입니다. AWS Backup에서는 스토리지(웜 스토리지 또는 콜드 스토리지), 복원 작업 및 리전 간 데이터 전송에 대한 요금이 부과됩니다. 다음 UsageType 요금은 'AmazonDynamoDB'가 아닌 'AWSBackup' ProductCode 아래에 표시됩니다.

UsageType 단위 Granularity 설명
REG-WarmStorage- ByteHrs-DynamoDB GB 한 달 내내 AWS Backup에서 관리하는 DynamoDB 백업에 사용되는 스토리지로, 월별 GB 단위로 측정됩니다.
REG-CrossRegion-WarmBytes-DynamoDB GB 크기 동일한 계정 내의 AWS 리전 또는 다른 AWS 계정으로 전송된 데이터입니다. 한 리전에서 다른 리전으로 백업을 복사할 경우 리전 간 전송 요금이 발생합니다. 요금은 항상 데이터를 발송한 계정에 청구됩니다.
REG-Restore-WarmBytes-DynamoDB GB 크기 웜 스토리지에서 복원된 총 데이터 크기로, GB 단위로 측정됩니다.
REG-ColdStorage-ByteHrs-DynamoDB GB 한 달 내내 AWS Backup에서 관리하는 DynamoDB 백업에 사용되는 콜드 스토리지로, 월별 GB 단위로 측정됩니다.
REG-Restore-ColdBytes-DynamoDB GB 콜드 스토리지에서 복원된 총 데이터 크기로, GB 단위로 측정됩니다.

내보내기 및 가져오기

DynamoDB에서 Amazon S3로 데이터를 내보내거나 Amazon S3에서 새 DynamoDB 테이블로 데이터를 가져올 수 있습니다.

UsageType은 접미사로 Bytes를 사용하지만 CUR의 내보내기 및 가져오기 사용량은 GB 단위로 측정되고 요금이 책정됩니다.

UsageType 단위 Granularity 설명
REG-ExportDataSize-Bytes GB 크기 S3로 데이터 내보내기에 대한 요금입니다. DynamoDB에서는 내보내기가 생성된 특정 시점의 DynamoDB 기본 테이블(테이블 데이터 및 로컬 보조 인덱스) 크기를 기준으로 내보낸 데이터에 대한 요금을 부과합니다.
REG-ImportDataSize-Bytes GB 크기 S3에서 데이터 가져오기에 대한 요금입니다. 크기는 Amazon S3 내 데이터의 압축되지 않은 객체 크기를 기준으로 계산됩니다. GSI를 사용하는 테이블로 가져오는 데는 추가 요금이 부과되지 않습니다.
REG-IncrementalExportDataSize-Bytes GB 크기 증분 내보내기를 생성하기 위해 연속 백업에서 처리한 데이터 크기에 대한 요금입니다.

데이터 전송

데이터 전송 활동은 DynamoDB 서비스와 관련된 것으로 나타날 수 있습니다. DynamoDB는 인바운드 데이터 전송에 대해 요금을 부과하지 않으며, DynamoDB와 동일 AWS 리전 내의 다른 AWS 서비스 간에 전송된 데이터에 대해서도 요금을 부과하지 않습니다(즉, GB당 0.00 USD). AWS 리전 간(예: 미국 동부(버지니아 북부) 리전 및 EU(아일랜드) 리전의 Amazon EC2 간) 전송된 데이터는 양쪽에 요금이 부과됩니다.

UsageType 단위 Granularity 설명
REG-DataTransfer-In-Bytes GB 단위 인터넷에서 DynamoDB로 전송되는 데이터입니다.
REG-DataTransfer-Out-Bytes GB 단위 DynamoDB에서 인터넷으로 전송되는 데이터입니다.

CloudWatch Contributor Insights

DynamoDB에 대한 CloudWatch Contributor Insights는 DynamoDB 테이블에서 가장 자주 액세스하고 제한되는 키를 한눈에 확인할 수 있는 진단 도구입니다. 다음 UsageType 요금은 'AmazonDynamoDB'가 아닌 'AmazonCloudWatch' ProductCode 아래에 표시됩니다.

UsageType 단위 Granularity 설명
REG-CW:ContributorEventsManaged 처리된 이벤트 단위 처리된 DynamoDB 이벤트의 양입니다. 예를 들어 CloudWatch Contributor Insights가 활성화된 테이블의 경우 항목을 읽거나 쓸 때마다 하나의 이벤트로 계산됩니다. 테이블에 정렬 키가 있는 경우 두 이벤트에 대한 요금이 부과됩니다.
REG-CW:ContributorRulesManaged 규칙 수 DynamoDB는 Cloud Watch Contributor Insights를 활성화하면 가장 많이 액세스한 항목과 가장 제한이 심한 키를 식별하는 규칙을 생성합니다. 이 요금은 CloudWatch 기여자 인사이트 로깅을 위해 구성된 각 엔터티(테이블 및 GSI)에 추가된 규칙에 대해 부과됩니다.

DynamoDB Accelerator(DAX)

DynamoDB Accelerator(DAX)에는 서비스에 대해 선택한 인스턴스 유형을 기준으로 시간당 요금이 부과됩니다. 아래 요금은 프로비저닝된 DynamoDB Accelerator 인스턴스를 기준으로 합니다. 다음 UsageType 요금은 'AmazonDynamoDB'가 아닌 'AmazonDAX' ProductCode 아래에 표시됩니다.

UsageType 단위 Granularity 설명
REG-NodeUsage:dax-<INSTANCETYPE> 노드 시간 시간 특정 인스턴스 유형의 시간당 사용량입니다. 요금은 노드가 시작된 시점부터 종료될 때까지 사용된 노드 시간당 요금입니다. 노드 시간을 일부 소비한 경우 1시간으로 요금이 부과됩니다. DAX는 DAX 클러스터의 각 노드에 대해 요금을 부과합니다. 여러 노드가 있는 클러스터가 있는 경우 결제 보고서에 여러 행 항목이 표시됩니다.

인스턴스 유형은 다음 목록의 값 중 하나입니다. 노드 유형에 대한 자세한 내용은 노드 섹션을 참조하세요.

  • r3.2xlarge, r4.8xlarge 또는 r5.8xlarge

  • r3.4xlarge, r4.large 또는 r5.large

  • r3.8xlarge, r4.xlarge 또는 r5.xlarge

  • r3.2xlarge, r5.12xlarge 또는 t2.medium

  • r3.4xlarge, r4.large 또는 r5.large

  • r3.xlarge, r5.16xlarge 또는 t2.small

  • r4.16xlarge, r5.24xlarge 또는 t3.medium

  • r4.2xlarge, r5.2xlarge 또는 t3.small

  • r4.4xlarge 또는 r5.4xlarge