This course provides a high-level overview of the managed database offerings available from AWS.
It covers relational and non-relational databases, how they work, their strengths, and what workloads are best suited for them.
It includes an overview and the characteristics of non-relational databases as well as what NoSQL means and why it’s important to application development.
If you have any feedback relating to this course, feel free to contact us at support@cloudacademy.com.
Learning Objectives
- Gain a general understanding of databases within AWS
- Learn about non-relational databases and how they can be used
- Understand the characteristics of NoSQL databases and how they can be used for application development
- Gain a comprehensive understanding of the different types of managed NoSQL databases on AWS
Intended Audience
This course is intended for people that are relatively new to relational and non-relational databases and want to gain an understanding of what types of databases are available on AWS.
Prerequisites
To get the most out of this course, you should ideally have a very basic knowledge of relational and non-relational databases and previous experience with AWS.
In this course, I covered the 9 types of managed database services available from AWS. They fall into two primary categories, relational and NoSQL databases.
The Amazon Relational Database Service is the managed service providing relational databases. The engines include Amazon Aurora, MySQL, MariaDB, Postgres, Microsoft SQL Server, and Oracle.
The managed NoSQL database offerings include Key-Value stores, Document stores, In-Memory Databases, Graph stores, Time Series stores, Ledger databases, and Search databases.
Amazon DynamoDB is a key-value store. Data is accessed using a key that retrieves a value. It’s a binary operation. Data is returned or it isn’t.
Amazon DocumentDB is a document database. Document databases store semi-structured data and the data structure is embedded in the document, itself. Data is accessed using a key but the value, because it can have a structure, can also be queried to return specific information.
Amazon ElastiCache is an in-memory store. The primary use case for an in-memory store is caching. A cache improves database performance by serving often requested data from memory instead of from a disk or from a memory-intensive calculation.
Amazon Neptune is a graph database. Graph databases store and analyze the relationships between things. Graph databases can visualize people in terms of a social network but they can also be used to see how systems and processes are connected.
Amazon Timestream is a Time Series database. Time series databases answer questions about trends and events. While it is a type of key-value store with the time as the key, a time series database looks at ranges of data points to calculate answers.
Amazon Quantum Ledger Database is a ledger database. A ledger database uses cryptographic controls to ensure that the data stored is immutable. Records are not edited. Instead, when information changes, new versions of the record are created. It also uses a blockchain to ensure data integrity. When a hash is created to verify data integrity it uses the data along with the hash from the previous record. If the chain is tampered with, the chain will be broken.
Amazon Elasticsearch Service is a search database. Search databases create indexes to help people find important information. Web searching is a common application but searching is also done in product catalogs, enterprise documentation, and in content management systems.
Relational databases are best for transactional workloads that have highly-structured data and require ACID compliance. ACID compliance means that transactions will take a database from one stable state to another stable state.
Relational databases can scale but, when they do, it is done vertically. They’re made bigger by adding more CPU, memory, or expanding existing storage.
Relational databases are often used for online transactional processing applications. These types of applications usually work on small amounts of data per transaction to record an exchange of goods or services.
Relational databases use a schema to define the structure of the data stored. Schemas are built based on reporting, data validation, and compliance requirements. The database cannot be used until the design has been completed and implemented.
Relational databases report on and manage known processes.
NoSQL databases are a family of databases that share certain characteristics. They usually scale horizontally by adding compute notes. They do not, generally, require a schema to define data. Data is usually semi-structured or unstructured.
The term NoSQL originally meant that a programming language other than SQL was used to access data. This has been expanded to mean “Not Only SQL” because some databases in the NoSQL family can use a modified version of SQL to access data.
NoSQL databases are often used for online analytical processing workloads. OLAP workloads answer questions that are unknown. That is, where a relational database report might show the number of items sold in a given month, an analytic application might reveal the trends as to why certain items sold while others didn’t.
NoSQL databases use unstructured or semi-structured data. This means that developers can write code using a NoSQL database without having to wait until the design has been completed.
Data drives business. Data drives innovation. Data can be as unique as a fingerprint or as ubiquitous as water.
The cloud has the promise of agility, scalability, and elasticity. Agility is about changing to meet needs, scalability means that growth can happen when needed, and elasticity is about turning the lights off when leaving a room.
Picking the correct database to manage data will take some effort. It could be that several database types are needed.
Being agile is more than adapting to change, it’s also about being able to fit into places that, at one time were too big or too small.
This brings me to the end of this course. But, it really isn’t the end. There’s more to learn and experience about databases and cloud computing. It seems that I learn something new every day. Part of this is the rate of change in the cloud and part of it is having the freedom to explore and experiment.
There are several options for your next steps, depending on your needs.
There’s some courseware but don’t be afraid to do a lab or two before continuing. Cloud Academy's labs will walk you through the process. You might not understand everything, at first, but, over time, you will. Get your hands “virtually” dirty. This will create questions in your mind that will make the answers memorable.
For example, consider the lab Create Your First RDS Database...
https://cloudacademy.com/lab/create-your-first-amazon-rds-database/
...or the lab Introduction to DynamoDB.
https://cloudacademy.com/lab/introduction-dynamodb/
Then, consider the Learning Path, Working with AWS Databases
https://cloudacademy.com/learning-paths/working-with-aws-databases-274/
If you have any feedback, positive or negative, please contact us at support@cloudacademy.com, your feedback is greatly appreciated.
Your comments, questions, and suggestions on our courses are of great value to us at Cloud Academy. We use this information to improve our courses in terms of both content and delivery.
Thank you for your time. I hope you found this material useful and that you can use it to take your next steps on your cloud journey.
Good luck with your continued learning and enjoy cloud computing.
Thank you!
Lectures
Course Introduction - The AWS Database Landscape - Relational Databases - NoSQL Databases - Types of Managed NoSQL on AWS - Part 1 - Types of Managed NoSQL on AWS - Part 2
Stephen is the AWS Certification Specialist at Cloud Academy. His content focuses heavily on topics related to certification on Amazon Web Services technologies. He loves teaching and believes that there are no shortcuts to certification but it is possible to find the right path and course of study.
Stephen has worked in IT for over 25 years in roles ranging from tech support to systems engineering. At one point, he taught computer network technology at a community college in Washington state.
Before coming to Cloud Academy, Stephen worked as a trainer and curriculum developer at AWS and brings a wealth of knowledge and experience in cloud technologies.
In his spare time, Stephen enjoys reading, sudoku, gaming, and modern square dancing.