Databases and RDS Notes for AWS Cloud Practitioner Exam
In general, a database should be highly available, easy to scale and separate from application servers. For AWS Cloud Practitioner exam, we need to know comparison between database types like Relational SQL databases and NoSQL databases, managed and unmanaged database services on AWS, AWS RDS service and Amazon DynamoDB. Amazon RDS stands for Relational Database Services which is a managed relational SQL database service on AWS.
Basically, when choosing a database for your applications, we consider following criteria:
Scalability: We should have an idea about the throughput requirements and the ability to scale up in future to answer this need.
Total Storage Requirement: We should know the size of the data that you will store; GB, TB or PB of data?
Object Size and Type: Are you going to store simple data structures of large data objects?
Durability: How much durability, availability and data recovery do you need? Is there regulation obligations?
Database Types
Relational Databases: For example SQL Server, Oracle, MySQL, etc.
Non-relational Databases: For example MongoDB, Casandra, Redis, etc.
SQL Relational Databases
In SQL relational databases, data is stored in rows and columns
A SQL database schema is fixed.
SQL databases scale vertically by increasing hardware capabilities
You can prefer using a SQL relational database in following conditions:
Strict schema rules are required,
In case of data quality enforcements,
No need for extreme read/write capacity and extreme database performance is required
NoSQL Databases
In NoSQL databases, data is stored in one of following storage models:
Key-Value pairs,
Documents, or
Graphs
NoSQL schemas are dynamic
NoSQL databases scale horizontally by increasing number of servers
NoSQL databases should be preferred in case:
You have to scale your database horizontally,
Your database schema does not have strict rules,
Your application requires extreme read/write database performance
Comparison of Relational SQL and NoSQL Databases
Relational SQL Database | NoSQL Database | |
Data Storage | rows and columns | key-value pairs, documents, graphs |
Schemas | fixed, strict rules | dynamic |
Scalibility | vertical | horizontal |
Querying | SQL based | based on collection of documents |
Unmanaged and Managed Databases
Besides running a database on-premises, you have the option of running your database on AWS as an unmanaged database installed on an EC2 instace or running as an RDS instance managed by AWS.
Here is a comparison. Blue tasks are managed by you and orange tasks are managed by AWS in each column.
On-premises Database | Unmanaged Databaes on AWS EC2 | AWS RDS Managed Database |
Application optimization | Application optimization | Application optimization |
Scaling | Scaling | Scaling |
High availibility | High availibility | High availibility |
Database backups | Database backups | Database backups |
Database software patches | Database software patches | Database software patches |
Database software installation | Database software installation | Database software installation |
OS patches | OS patches | OS patches |
OS installation | OS installation | OS installation |
Server maintenance | Server maintenance | Server maintenance |
Rack and stack | Rack and stack | Rack and stack |
Power, HVAC, net | Power, HVAC, net | Power, HVAC, net |
By using an AWS RDS database instance, most of the tasks are handled to AWS and users can focus on data models, SQL developments and query optimization
I hope this database notes will help for AWS users who want to pass AWS Cloud Practitioner Certification exam