A company is hosting a social media application on AWS.
The application makes use of DynamoDB as the backend.
The read and write capacity has already been defined for the table.
But it has been noticed that during high peak loads, the database begins throttling requests.
Which of the following can be used to effectively manage the high number of requests during high peak loads?
Click on the arrows to vote for the correct answer
A. B. C. D.Correct Answer: C.
The AWS Documentation mentions the following.
DynamoDB auto scaling uses the AWS Application Auto Scaling service to dynamically adjust provisioned throughput capacity on your behalf in response to actual traffic patterns.
This enables a table or a global secondary index to increase its provisioned read and write capacity to handle sudden increases in traffic without throttling.
Application Auto Scaling decreases the throughput when the workload decreases so that you don't pay for unused provisioned capacity.
Option D is incorrect because placing an SQS queue in front of the DynamoDB table would not alleviate the problem of throttling requests for the database ( auto-scaling fits the most for throttling requests ).
All other options are invalid since these are not the right principles to be followed when designing for high throughput on the DynamoDB table.
For more information on AWS DynamoDB Autoscaling, please refer to the below URL-
https://docs.aws.amazon.com/amazondynamodb/latest/developerguide/AutoScaling.htmlWhen a DynamoDB table is unable to handle the incoming read or write requests, it begins throttling these requests, which can lead to an increase in error rates and a decrease in performance. To effectively manage the high number of requests during high peak loads, one needs to ensure that the table can scale up or down based on the demand.
Option A: Place an ELB in front of the DynamoDB table. An Elastic Load Balancer (ELB) is used to distribute incoming traffic across multiple instances or resources. However, it does not support DynamoDB as a backend service, so it cannot be used to manage high traffic loads on a DynamoDB table.
Option B: Add the DynamoDB table to an Autoscaling Group. Adding the DynamoDB table to an Autoscaling Group can automatically increase or decrease the number of read and write capacity units based on the demand. This can help to manage high traffic loads on the table. However, this option is not available for DynamoDB tables.
Option C: Enable Autoscaling for the DynamoDB table. This option allows the table to automatically increase or decrease the number of read and write capacity units based on the demand. DynamoDB autoscaling ensures that the application can handle the increased load during high peak times by scaling up the capacity of the table. Thus, this option is the correct choice.
Option D: Place an SQS queue in front of the DynamoDB table. Amazon Simple Queue Service (SQS) is a message queuing service used to decouple and scale microservices, distributed systems, and serverless applications. However, it cannot be used to manage high traffic loads on a DynamoDB table.
Therefore, the correct answer is C: Enable Autoscaling for the DynamoDB table.