Learn about DynamoDB, a NoSQL database, and fault tolerant by design.
- [Instructor] While relational databases are great for analytical processing, running them in a highly available manner is complex and resource-intensive. If you can make use of a NoSQL database instead, AWS provides DynamoDB as an option. It's important to appreciate the availability characteristics of DynamoDB. Operationally, DynamoDB is fully managed by AWS. This is similar to the RDS offerings for relational database engines. Initial setup of an RDS instance takes a considerable amount of time.
With DynamoDB, you can simply create tables and start using it. If you want to experiment with DynamoDB locally, you can download and install it on your laptop. This makes sense, due to the latency considerations associated with attempting synchronous replication across such geographically disparate locations. Within an AWS region, it's important to understand that DynamoDB automatically replicates data across three unique data centers in a synchronous manner. The ability to tolerate hardware failure is one of DynamoDB's fundamental design principals.
Using DynamoDB streams, it is possible to replicate a table to a separate region. If you have the need, you can even replicate that same table to more than one region. Since each DynamoDB table is independent, you need to set up a replication job for each table you want to make available in a separate region. In addition to being fault-tolerant by design, DynamoDB is designed to achieve incredible scale. Whether you store 10 or 10 billion items in your table, DynamoDB can handle it. In fact, AWS publishes no limit in terms of how much data can be stored in DynamoDB.
If you have a table which gets particularly hot, you can adjust the amount of throughput to that table using an API call. Regardless of the amount of data or load on the system, DynamoDB remains available. For instance, if you have a table that is hot at night and cools off during the day, you can tune the throughput for that table to match your usage patterns. While DynamoDB reacts to this tuning, your tables remain accessible to your application. DynamoDB is a remarkable piece of engineering for data storage. If you're interested in learning more about NoSQL, be sure to check out other courses in the library.
This course is also part of a series designed to help you prepare for the AWS Certified SysOps Administrator – Associate certification exam.
- What is high availability?
- Designing for failure
- Exploring Route 53
- Working with machine images
- Setting up load balancing
- Creating groups
- Working with auto scaling
- Improving relational database availability
- Setting up an elastic file system