DynamoDB High Availability
Backup and Restore
Point in Time Recovery
The course is part of these learning paths
This course explores Amazon Web Service's DynamoDB and teaches you how to architect DynamoDB setups—with an emphasis on high availability—ensuring that your internet-scale applications are always available. The course begins by looking at the various option offered by DynamoDB, before moving onto on-demand backup and restore, and rounding off by looking at point in time recovery. In each section, there is a real-world demonstration from the AWS platform which walks you through the topics covered.
If you have any feedback, queries, or suggestions relating to this course, please contact us at firstname.lastname@example.org.
- Understand how to provision and configure DynamoDB in a manner that ensures it is highly available and able to serve all read and write requests to it.
This course has been created for those who are responsible for architecting DynamoDB setups.
To get the most from this course you should be familiar with basic NoSQL concepts, and DynamoDb concepts such as Tables, Items, and Attributes. Consider watching our dedicated “Working with Amazon DynamoDB” course and/or review the “10 Things You Should Know” about DynamoDB blog post, before taking this course.
The following GitHub repository is referenced within this course:
Welcome back! In this lecture, you’ll learn about the HA configuration options available within DynamoDb - which when configured maximizes the uptime of your dependent applications.
Firstly, DynamoDB is a NoSQL schemaless managed service built and provided by AWS - and is designed internally to automatically partition data and incoming traffic across multiple partitions which are themselves stored on numerous backend servers distributed across three availability zones within a single region. This is the default starting point for a DynamoDb Table in terms of its availability posture. The amount and required availability can be increased using and configuring additional options as you’ll soon hear about.
A DynamoDb partition is a dedicated area of SSD storage allocated to a table and for which is automatically replicated synchronously across 3 availability zones within a particular region. DynamoDB being a managed service takes care of performing both the partition management and replication for you, therefore you can remain focused on your application design and not be distracted by the needs of data replication requirements. The synchronous AZ replication provides protection against any single node outage and/or a full availability zone outage - which although is a rare event should never be assumed to not happen. The synchronous replication takes place using low latency interconnects between each of the availability zones within a region and ensures high-speed sub second replication.
Dialing up and down the provisioned throughput of a DynamoDB database is possible, and ensures that your DynamoDb database can meet the needs of your application as it grows. Changing the provisioned throughput results in additional partitions and replication which again happens automatically in the background.
DynamoDB provides a secondary layer of availability in the form of cross-region replication which in its latest implementation is now known as Global Tables. A Global table gives you the capability to replicate a single table across 1 or many alternate regions and in doing so protects your table from regional outages. When configured, a Global Table not only elevates the availability of your data but also enables applications to take advantage of data locality. Users can be served data directly from the closest geographically located table replica which minimizes the network latency involved in accessing the data.
A single DynamoDB table can be globally replicated to 1 or multiple other tables located in different AWS regions. Replication must take place within an AWS account - that is you cannot configure Global tables in different AWS accounts. Global Tables implement multi master read/write capability with eventual consistency. Both read and writes can be performed against any one of the configured global tables. All writes will then be replicated in near sub second to time to all other globally configured tables of the same table name.
Existing DynamoDB tables can be converted into Global tables either by using the relevant configuration options exposed within the AWS DynamoDB console - or by using the aws cli and executing the “aws dynamodb update-table” command specifying one or several regions into which the table should be replicated.
About the Author
Jeremy is the DevOps Content Lead at Cloud Academy where he specializes in developing technical training documentation for DevOps.
He has a strong background in software engineering, and has been coding with various languages, frameworks, and systems for the past 20+ years. In recent times, Jeremy has been focused on DevOps, Cloud, Security, and Machine Learning.
Jeremy holds professional certifications for both the AWS and GCP cloud platforms.