Configuring Your API with DynamoDB for High Availability during AWS Failures

Ensuring High Availability for Your API with DynamoDB during Regional AWS Failures

Prev Question Next Question

Question

You need your API backed by DynamoDB to stay online during a total regional AWS failure.

You can tolerate a couple of minutes of lag or slowness during a large failure event, but the system should recover with normal operation after those few minutes.

What is a good approach?

Answers

Explanations

Click on the arrows to vote for the correct answer

A. B. C. D.

Answer - B.

#Updated based on latest AWS updates.

Option A is invalid because using Latency based routing will send traffic on the region with the standby instance.

This is an active/passive replication, and you can't write to the standby table unless there is a failover.

Answer A can work only if you use a failover routing policy.

Option D is invalid because there is no concept of a cross-region ELB.Amazon DynamoDB global tables provide a fully managed solution for deploying a multi-region, multi-master database without building and maintaining your own replication solution.

When you create a global table, you specify the AWS regions where you want the table to be available.

DynamoDB performs all of the necessary tasks to create identical tables in these regions and propagate ongoing data changes to all of them.

For more information on DynamoDB GlobalTables, please visit the below URL:

https://docs.aws.amazon.com/amazondynamodb/latest/developerguide/GlobalTables.html

The correct answer is B: Set up a DynamoDB Global table. Create an Auto Scaling Group behind an ELB in each of the two regions for your application layer in which the DynamoDB is running in. Add a Route53 Latency DNS Record with DNS Failover, using the ELBs in the two regions as the resource records.

Explanation:

In this scenario, the requirement is to keep the API backed by DynamoDB running during a total regional AWS failure. There should be a tolerance of a few minutes of lag or slowness during a large failure event, and the system should recover with normal operation after those few minutes.

To fulfill this requirement, it is necessary to have a highly available and resilient architecture that can withstand failures in one or more regions. The architecture should also provide low-latency access to DynamoDB, as well as fast recovery times.

Option A: Set up DynamoDB cross-region replication in a master-standby configuration, with a single standby in another region. Create an Auto Scaling Group behind an ELB in each of the two regions for your application layer in which DynamoDB is running in. Add a Route53 Latency routing using the ELBs in the two regions as the resource records.

This option involves setting up cross-region replication for DynamoDB in a master-standby configuration, with a single standby in another region. It also requires creating an Auto Scaling Group behind an ELB in each of the two regions for the application layer. Finally, a Route53 Latency routing using the ELBs in the two regions as the resource records is added.

While this option provides some degree of resilience, it may not meet the requirement of tolerating a few minutes of lag or slowness during a large failure event. Additionally, the recovery time may not be fast enough to ensure normal operation after a few minutes.

Option B: Set up a DynamoDB Global table. Create an Auto Scaling Group behind an ELB in each of the two regions for your application layer in which the DynamoDB is running in. Add a Route53 Latency DNS Record with DNS Failover, using the ELBs in the two regions as the resource records.

This option involves setting up a DynamoDB Global table, which replicates data across multiple AWS regions. It also requires creating an Auto Scaling Group behind an ELB in each of the two regions for the application layer. Finally, a Route53 Latency DNS Record with DNS Failover is added, using the ELBs in the two regions as the resource records.

This option provides high availability and resilience for the API backed by DynamoDB. The DynamoDB Global table ensures that data is replicated across multiple regions, providing resilience against regional failures. The Auto Scaling Groups behind ELBs in each region provide low-latency access to DynamoDB, while the Route53 Latency DNS Record with DNS Failover ensures fast recovery times.

Option C: Set up a DynamoDB Multi-Region table. Create a cross-region ELB pointing to a cross-region Auto Scaling Group, and direct a Route53 Latency DNS Record with DNS Failover to the cross-region EL.

This option involves setting up a DynamoDB Multi-Region table, which replicates data across multiple AWS regions. It also requires creating a cross-region ELB pointing to a cross-region Auto Scaling Group. Finally, a Route53 Latency DNS Record with DNS Failover is directed to the cross-region ELB.

While this option provides some degree of resilience, it may not meet the requirement of tolerating a few minutes of lag or slowness during a large failure event. Additionally, the recovery time may not be fast enough to ensure normal operation after a few minutes.

Option D: Set up DynamoDB cross-region replication in a master-standby configuration, with a single standby in another region.