Highly Available Database Solution for AWS Cloud Infrastructure

Achieving Highly Available Database between Regions

Question

A global financial institution is using AWS cloud infrastructure for its three-tier web application.

This is a critical application & any outage would incur a huge financial loss to this institute.

They have deployed EC2 instance & Amazon DynamoDB in us-west1 & ap-northeast-1

For EC2 instance, high availability is already considered by the Infrastructure team.

IT Head is looking for your support to make database tables fully redundant & failure of the database in one region should not impact the working of web applications. Which of the following will provide a solution for having a highly available database between these two regions?

Answers

Explanations

Click on the arrows to vote for the correct answer

A. B. C. D.

Correct Answer -D.

Amazon DynamoDB Global table can be used to replicate data from one region to another region automatically.

Options A, B, C are incorrect as although this would work, this will add additional admin work for replicating data between regions.

For more information on the Amazon DynamoDB Global table, refer to the following URL-

https://aws.amazon.com/dynamodb/global-tables/

The best solution for achieving high availability for the DynamoDB tables between the two regions is to create a DynamoDB global table, which is option D.

A DynamoDB global table is a multi-region, multi-master database that provides fast, local, and consistent access to DynamoDB tables. When you create a global table, you specify the AWS regions where you want the table to be available. DynamoDB automatically replicates the table data across these regions, and each region maintains its own replica of the table. All replicas can read and write to the table, and changes are propagated to all replicas using a strongly consistent replication protocol.

By creating a DynamoDB global table, you ensure that the database tables are fully redundant and that any failure of the database in one region does not impact the working of web applications. The infrastructure team has already taken care of the high availability of the EC2 instances, and by using a global table, you ensure that the database is also highly available.

Option A, copying data from the source DynamoDB table to the destination region using Amazon EBS snapshots, is not a suitable solution for achieving high availability. EBS snapshots are used to backup and restore data in EC2 instances and cannot be used for replicating data between regions. Even if you manage to copy the data, it will not be automatically synchronized with the source table, and you will have to manage the synchronization manually.

Option B, copying data from the source DynamoDB table to the destination region using Amazon S3 buckets, is also not a suitable solution. S3 buckets are object storage services that can store any type of data, but they are not suitable for storing and managing structured data, such as tables. Even if you manage to copy the data, you will have to manage the synchronization manually, and it will not be automatically synchronized with the source table.

Option C, using code to replicate data changes for DynamoDB tables between these two regions, is a possible solution but requires significant effort and management. You will have to write custom code to manage the replication of data, and you will have to ensure that the code is scalable, reliable, and secure. This option is not as robust as using a DynamoDB global table, and there is a risk of data inconsistency if the code is not correctly implemented.

Therefore, the best solution for achieving high availability for the DynamoDB tables between the two regions is to create a DynamoDB global table.