DynamoDB cost-efficiency

0

Hi AWS, there is a question i.e.

A company is designing a new web application that will run on Amazon EC2 Instances. The application will use Amazon DynamoDB for backend data storage. The application traffic will be unpredictable. The company expects that the application read and write throughput to the database will be moderate to high. The company needs to scale in response to application traffic.

Which DynamoDB table configuration will meet these requirements MOST cost-effectively?

  1. Configure DynamoDB with provisioned read and write by using the DynamoDB Standard table class. Set DynamoDB auto scaling to a maximum defined capacity.
  2. Configure DynamoDB in on-demand mode by using the DynamoDB Standard table class.
  3. Configure DynamoDB with provisioned read and write by using the DynamoDB Standard Infrequent Access (DynamoDB Standard-IA) table class. Set DynamoDB auto scaling to a maximum defined capacity.
  4. Configure DynamoDB in on-demand mode by using the DynamoDB Standard Infrequent Access (DynamoDB Standard-IA) table class.

According to me it should be option (C) as there is a keyword "unpredictable". I know DynamoDB is a managed service and Standard class by default is capable enough to handle such cases but having said that the other keyword which makes me think to check option C is the keyword "moderate to high".

Poll suggests 60% for option (B) and 30% for option (A) and mine is option (C). Who is right and why?

Please suggest.

2 Answers
1

Overview

  1. Configure DynamoDB with provisioned read and write by using the DynamoDB Standard table class. Set DynamoDB auto scaling to a maximum defined capacity.
  • This is a good option as its cost-effective as you utilize provisioned capacity mode which is more cost effective than on-demand mode. It also uses application-autoscaling so can scale to meed demand of unpredictable traffic.
  1. Configure DynamoDB in on-demand mode by using the DynamoDB Standard table class.
  • This option is extrememly good to suit unpredictable traffic, but the requirements emphasize that it wants the most cost-efficient solution which this is not (in comparison to A)
  1. Configure DynamoDB with provisioned read and write by using the DynamoDB Standard Infrequent Access (DynamoDB Standard-IA) table class. Set DynamoDB auto scaling to a maximum defined capacity.
  • Standard-IA is optimized for workloads that have a high amount of storage and little throughput, hence the name Infrequent Access. But the suggested workload states read and write throughput to the database will be moderate to high, so this is not a valid solution and will actually be more costly than option A
  1. Configure DynamoDB in on-demand mode by using the DynamoDB Standard Infrequent Access (DynamoDB Standard-IA) table class.
  • This is a mix of B and C, which means its likely the worst option for this given workload in terms of cost efficiency.

Summary

When cost is a major factor is best to utilize provisioned capacity mode. You can also buy capacity reservations in provisioned capacity mode which helps reduce costs even more by committing to a 1 or 3 year capacity reservation.

On-demand mode is great for unpredictable traffic and should cost not be the main factor in this workload, option B would have been best.

Option A takes the win, burst capacity can help with handling the unpredictable aspect of the workload and application autoscaling will ensure it scales easily. Provisioned capacity mode and possible reservations ensure its cost effective.

profile pictureAWS
EXPERT
answered 10 months ago
-1

Here’s why it’s not C

The Amazon DynamoDB Standard Infrequent Access (DynamoDB Standard-IA) table class helps you reduce your DynamoDB costs by up to 60% for tables that store data that is infrequently accessed. The DynamoDB Standard-IA table class is ideal for use cases that require long-term storage of data that is infrequently accessed, such as application logs, old social media posts, ecommerce order history, and past gaming achievements.

I would opt for A and here’s a good article to why. It’s known demand will be moderate to high and has to be most cost effective.

https://www.techtarget.com/searchcloudcomputing/answer/DynamoDB-on-demand-vs-provisioned-capacity-Which-is-better#:~:text=For%20small%20applications%2C%20the%20flexibility,better%20fit%20for%20your%20applications

profile picture
EXPERT
answered 10 months ago
profile picture
EXPERT
reviewed 10 months ago
profile picture
EXPERT
reviewed 10 months ago

You are not logged in. Log in to post an answer.

A good answer clearly answers the question and provides constructive feedback and encourages professional growth in the question asker.

Guidelines for Answering Questions