Open menu
-->

Purchase DynamoDB Reserved Capacity

Cloud Conformity allows you to automate the auditing process of this resolution page. Register for a 14 day evaluation and check your compliance level for free!

Start a Free Trial Product features
Cost
optimisation

Purchase reserved capacity for your Amazon DynamoDB tables in order to receive a significant discount on the hourly charges. Reserved capacity is a billing feature that allows you to obtain discounts on your provisioned DynamoDB throughput capacity in exchange for a one-time up-front payment and commitment to a certain usage level. DynamoDB reserved capacity applies to a specific AWS region and can be purchased with 1-year or 3-year terms. The cost savings when using reserved capacity over on-demand provisioned capacity are up to 76% depending on the selected commitment term. A term of one year offers a 53% discount on provisioned throughput and a term of three years offers a 76% discount. Reserved capacity is applied to the aggregate capacity of all DynamoDB tables available within a specified AWS region. The capacity units provisioned beyond your reserved capacity will be billed at standard (i.e. on-demand) rates. To save even more money using DynamoDB reserved capacity pricing model, you have to predict the read and write capacity required for your DynamoDB tables within a given region: reserve too little capacity and you will end up paying on-demand prices where you could have had a discount; reserve too much and you will pay for capacity that gets unused, as you are being charged regardless whether or not you consume the provisioned capacity. To determine how much read and write capacity you can safely reserve you need to check your DynamoDB CloudWatch metrics. The AWS CloudWatch metrics used to determine how much of your DynamoDB provisioned throughput is consumed are ConsumedReadCapacityUnits and ConsumedWriteCapacityUnits - the number of read/write capacity units consumed over a specified time period (Units: Count).

Reserved capacity pricing model represent a good strategy to cut down on AWS DynamoDB costs. By reserving your DynamoDB read and write capacity units ahead of time, you can obtain significant cost savings compared to on-demand (standard) model. Note 1: DynamoDB reserved capacity is applied to the total provisioned capacity within the AWS region in which you purchased your reserved capacity units. For example, if you purchased 10,000 read capacity units of reserved capacity, you can apply these to one table with 10,000 read capacity units, to 100 tables with 100 read capacity units or to 1000 tables with 10 read capacity units.

Note 2: You can reserve read or write capacity in quantities of up to 100,000 units. If you need to reserve more than 100,000 capacity units, you can make multiple capacity reservations. To get assistance for reserving DynamoDB capacity, you can open an AWS support case using the following parameters:

- Regarding: Account and Billing Support

- Service: Account

- Category: Other Account Issues

- Subject: "I need to reserve more than 100,000 Amazon DynamoDB capacity units."

Audit

To determine if your AWS DynamoDB tables are using the reserved capacity pricing model, perform the following actions:

Note: Verifying DynamoDB reserved read and write capacity using the AWS API via Command Line Interface (CLI) is not currently supported.

Using AWS Console

01 Sign in to the AWS Management Console.

02 Navigate to DynamoDB dashboard at https://console.aws.amazon.com/dynamodb/.

03 In the left navigation panel, under DynamoDB, click Reserved capacity.

04 On the Reserved capacity page, in the Total capacity for <aws_region> section, check the values (numbers) available for the Reserved read capacity and the Reserved write capacity attributes. If these values are both set to 0, i.e.

Reserved read capacity and the Reserved write capacity values are both set to 0

there are no read and write capacity units reserved, therefore the DynamoDB tables provisioned within the selected AWS region are not using the reserved capacity pricing model to get a discount on the service charges.

05 Change the AWS region from the navigation bar and repeat the process for other regions.

Remediation / Resolution

Before you purchase reserved capacity for your Amazon DynamoDB tables, you need to determine how much read and write capacity throughput your tables consume using ConsumedReadCapacityUnits and ConsumedWriteCapacityUnits CloudWatch metrics. The data recorded by these metrics will help you achieve a more reliable understanding of your DynamoDB usage patterns and predict the amount of units needed. To determine the right amount of read and write capacity units required by DynamoDB tables within a particular AWS region and purchase the necessary reserved capacity, perform the following:

Note: Purchasing reserved read and write capacity units using the AWS API via Command Line Interface (CLI) is not currently supported.

Using AWS Console

01 Sign in to the AWS Management Console.

02 Navigate to DynamoDB dashboard at https://console.aws.amazon.com/dynamodb/.

03 In the left navigation panel, under Dashboard, click Tables.

04 Choose the DynamoDB table that you want to examine then copy its identifier (name), listed in the Name column.

05 Navigate to AWS CloudWatch dashboard at https://console.aws.amazon.com/cloudwatch/.

06 In the left navigation panel, under CloudWatch, select Metrics.

07 On the AWS CloudWatch metrics page, select All metrics tab from the dashboard bottom panel to view all available metrics.

08 Choose DynamoDB then click on Table Metrics link to access the metrics available for your Amazon DynamoDB tables.

09 Paste the name of the DynamoDB table copied at step no. 4 inside the panel search box and press Enter. Once the search process is complete, the AWS console should list all the metrics available for the selected table.

10 Choose ConsumedReadCapacityUnits and ConsumedWriteCapacityUnits entries to select the usage data recorded for the consumed read and write capacity, then use the dashboard top-right dropdown menu to set the graph type to Number.

11 Select Graphed metrics tab from the dashboard bottom panel, then configure each selected metric as instructed below:

  1. From the Statistic dropdown list, select Sum. The Sum statistic represents the total read/write capacity units consumed by the selected AWS DynamoDB table. This is the most useful statistic for ConsumedReadCapacityUnits and ConsumedWriteCapacityUnits metrics.
  2. From the Period dropdown list select 30 Days in order to return the usage data recorded over a longer period of time. 30 days is the maximum time period available for these metrics.

12 Check the usage data (numbers) returned for ConsumedReadCapacityUnits and ConsumedWriteCapacityUnits metrics to determine how much read and write capacity units have been consumed by the DynamoDB tables provisioned in the selected AWS region, within the last 30 days. Based on the usage data returned by these two metrics, e.g.

Based on the usage data returned by these two metrics

and the commitment term chosen during the purchase process (one-year or three-year term), you will be able to predict the amount of read and write capacity units required for the DynamoDB tables available within the selected AWS region.

13 Go back to the DynamoDB dashboard at https://console.aws.amazon.com/dynamodb/.

14 In the left navigation panel, under DynamoDB, click Reserved capacity.

15 On Reserved capacity page, click Purchase reserved capacity button to start the acquisition process.

16 On Purchase reserved capacity page, perform the following actions:

  1. From Provisioned Capacity Type dropdown list, choose Read capacity units to purchase read capacity units or Write capacity units to buy write capacity units.
  2. From Term dropdown list, select the commitment term for the reservation. Choose carefully the commitment period based on your application requirements because you will be charged for the entire reservation term that you select, regardless of whether the DynamoDB resources consume the provisioned units or not. AWS provides two types of commitment terms:
    • 1-year term: the reservation is made for just 1 year, it’s useful for most workloads and provides lower discount rate when compared with the 3-year term.
    • 3-year term: the reservation is made for 3 years, it's useful for long-running applications with predictable workloads and provides higher discount rate.
  3. In the Provisioned Capacity Units box, provide the number (integer) of read/write capacity units to provision, using the reserved capacity pricing model, for the DynamoDB tables available in the selected region. See the values returned at step no. 12 to determine the right amount of capacity units needed.
  4. In the Contact email box, enter an email address to be contacted for verification.
  5. Select I understand that the payment method associated with this Amazon Web Services account will be charged both an upfront fee of $30.00 and each month for the minimum commitment. Additional taxes may also apply. checkbox to accept the terms and conditions regarding the additional taxes that may apply, then click the Purchase button to submit the form and complete the process.
  6. Once the order confirmation message appears, click Close to return to the DynamoDB dashboard. The reserved capacity order processing may take few minutes as the resource status will change to from pending-payment to active.

17 If required, change the AWS region from the navigation bar and repeat the entire process to purchase reserved capacity for DynamoDB tables provisioned in other regions.

References

Publication date Aug 31, 2018