A Step-by-Step Guide to Optimizing Amazon DynamoDB Costs with CUDOS Dashboard

6 minute read
Content level: Intermediate
0

A step-by-step walkthrough on the new features released in CUDOS v5.5. This guide provides instructions on how to improve cost visibility and maximize savings through Provisioned Capacity Mode and Reserved Capacity commitments.

As organizations increasingly adopt Amazon DynamoDB within their cloud infrastructure, managing costs efficiently becomes crucial, and challenging. While DynamoDB's on-demand scaling and serverless architecture provides flexibility, costs can accumulate significantly with high throughput workloads. Businesses that operate at scale, rely on tables running with provisioned capacity mode, and later reserved capacity units. Cost visibility is also important in environments with multiple AWS Accounts and AWS Organizations, helping companies manage spending effectively and stay within budget expectations.

On-Demand capacity mode,is designed to eliminate the need to plan or provision the capacity of your DynamoDB table. In this mode, your table will instantly accommodate requests to your table without the need to scale any resources up or down (up to twice the previous peak throughput of the table). This mode is ideal for workloads with unpredictable or variable traffic patterns, making it the recommended mode to start with DynamoDB. While on-demand pricing is convenient, it can become expensive at scale, provisioned capacity with auto scaling and reserved capacity are more cost-effective alternatives.

With Provisioned capacity mode you specify the number of reads and writes per second that you expect your application to require. You can use auto scaling to automatically adjust your table’s capacity based on the specified utilization rate to ensure application performance while reducing costs. This mode is best for situations in which you have predictable application traffic, consistent traffic, traffic that ramps gradually, or you can forecast capacity requirements to control costs.

Reserved capacity commitments can be used to reduce costs for provisioned capacity over a period of time. If your application has a predictable traffic pattern you can commit to for a one or three years term, you can purchase reserved capacity and achieve significant cost savings compared to provisioned capacity costs. Reservation requires paying a one-time upfront fee for the committed provisioned capacity read/write units in a region. DynamoDB Reserved Capacity is billed on an hourly basis, and any usage above the reserved amount is charged at standard provisioned capacity rates.

The CUDOS Dashboard is an in-depth, granular, and recommendation-driven dashboard to help customers dive deep into cost and usage and to fine-tune efficiency. Executives, directors, and other individuals within the CIO or CTO line of business or who manage DevOps and IT organizations will find the CUDOS Dashboard highly detailed and tailored to solve their use cases. In CUDOS Dashboard v5.5 we introduced new insights to help AWS users identify cost efficiency improvements opportunities, achieved savings, and get recommendations to increase cost efficiency for DynamoDB.

📊 Explore demo dashboard

📝 Full CUDOS v5.5 change log

🎓 Learn how to update CUDOS


How to Identify DynamoDB Tables for Provisioned Capacity on CUDOS v5.5 Dashboard

  1. Identify Candidates for Provisioned Capacity:

    • On the Amazon DynamoDB tab, review the following visuals:
      • TOP 15 DynamoDB Tables (Last 30 days): Provides insights into tables with the highest costs.
      • Daily Cost per Usage Type Group: Displays the daily breakdown of cost by usage type group.
      • Select one of the high-spend tables and analyze its cost pattern in the Daily Cost per Usage Type Group visual on the right-hand side.
      • Optionally, right-click on a usage bar and choose Focus only on On-Demand Capacity to see top tables using this capacity mode only.

CUDOS v5.5 - Detailed Daily Costs per Table

  1. Evaluate Consistency in Usage Patterns:

    • If the table's usage is steady throughout the day, it might be more cost-effective to switch from on-demand to provisioned capacity mode.
    • Proceed to check the table’s hourly consumption in CloudWatch Metrics.
      • If usage is also steady across hours (even if it gradually changes throughout the day) and has no extremely high spikes, this table is a strong candidate for migration to Provisioned Capacity (and later Reserved Provisioned Capacity for additional savings).

Additional factors to consider when choosing a table capacity mode

When deciding between the two modes, there are some additional factors worth considering. Please check the following AWS Documentation page: https://docs.aws.amazon.com/amazondynamodb/latest/developerguide/CostOptimization_TableCapacityMode.html


How to get DynamoDB Reserved Capacity recommendations on the CUDOS Dashboard

CUDOS Dashboard also has a detailed section into DynamoDB Unreserved Provisioned Units usage, allowing you to simulate custom reserved capacity strategies based on your past consumption, so that you visualize your non-reserved provisioned units usage distribution at hourly level.

To access and use the Reserved Capacity Recommendation feature, open the CUDOS Dashboard and navigate to the DynamoDB tab, and scroll down to the DynamoDB Provisioned Capacity - Reservations Savings Estimation section.

DynamoDB Provisioned Capacity - Reservations Savings Estimation CUDOS Section

How to use it:

  1. Select the following parameters:

    a. Region: Select the AWS Region for which you want recommendations.

    b. Capacity type: Choose between Read or Write Request Units.

    c. Lookback period: Define the usage timeframe to analyze and calculate potential savings for that period, if a reservation existed.

After selecting those, by default, the dashboard will display:

  1. Visual called DynamoDB Provisioned Capacity Hourly Usage and Simulated Commitment, including a Minimal Usage and To be Reserved reference lines.
  2. Savings potential, absolute and percentage compared to current Unreserved Cost, for the selected period with 1-year or 3-year reserved commitments.
  3. Optionally, you can change the Total Hourly Commitment (per capacity type) to simulate savings parameter with a custom amount of units to be simulated, instead of the default Minimal Usage; It updates savings calculations and highlights when any over-commitments may happen (displayed as red bars on the visual).

Pro-tip:

To maximize reservation utilization and minimize over-commitment risks:

  • Use the Minimum Usage as the reservation baseline, leveraging rolling commitments, a technique for overlapping periodic (ex: quarterly) reservation commitments, that reduces risks, increases discount coverage, and relieves the burden of long-range usage predictions.

Should I avoid under-utilized reservations?

There is no definitive answer; it depends on your cost optimization strategy.

  • Some customers prefer achieving 100% utilization of their reservations, even if that means some workloads are not fully covered.
  • Others might prioritize overall savings, even if reservations are only partially utilized throughout the usage period.

The AWS Cost Management reservation recommendations feature provides guidance to maximize your overall savings, even if it results in partial utilization. For insights into your provisioned units and detailed simulations, refer to CUDOS Dashboard visuals.


Conclusion

By following these steps, you can leverage CUDOS v5.5 to optimize DynamoDB cost and usage. These insights help maximize efficiency and ensure your AWS spend aligns with business needs.

If you want to dive deeper into this topic, check out the Cloud Financial Management Tips - DynamoDB, the data source used for this guide.

No comments