Choosing an AWS Database Service
Databases on AWS💾
Databases are purpose-built on AWS, which means that each AWS database service is built for a specific use case or set of use cases. Using a database that is a best fitfor the use case can save a lot of time in development hours. In the past, it was common to use relational databases for everything because they were the most commonly operated database on premises. With AWS, you can run different types of databases more easily without managing the infrastructure yourself. This can lead to making decisions that are more aligned with the use case and aren’t limited to in-house skill for database administration.
🧩AWS Cloud Databases
Amazon Aurora is a fully managed relational database engine that is compatible with MySQL and PostgreSQL. You can use the code, tools and applications for your existing MySQL and PostgreSQL databases with Aurora.
Aurora includes a high-performance storage subsystem. It is MySQL-compatible and PostgreSQL-compatible database engines are customized to take advantage of that fast,
distributed storage. The underlying storage grows automatically as needed. An Aurora cluster volume can grow to a maximum size of 128 tebibytes (TiB). Aurora also automates and standardizes database clustering and replication, which are typically among the most challenging aspects of database configuration and administration.
Aurora is part of the managed database service Amazon Relational Database Service (Amazon RDS).Amazon RDS is a web service that makes it easier to set up, operate, and scale a relational database in the cloud.
Amazon DynamoDB is a fully managed NoSQL database service that provides fast and predictable performance with seamless scalability. By using DynamoDB, you can offload the administrative burdens of operating and scaling a distributed database so that you can reduce your need to handle hardware provisioning, setup and configuration, replication, software patching, or cluster scaling. DynamoDB also offers encryption at rest, which reduces your operational burden and the complexity involved in protecting sensitive data.
With DynamoDB, you can create database tables that can store and retrieve virtually any amount of data and serve virtually any level of request traffic. You can scale up or scale down your tables throughput capacity with minimal downtime or performance degradation.
NoSQL is a term used to describe nonrelational database systems that are highly available, scalable, and optimized for high performance. Instead of the relational model, NoSQL databases (such as DynamoDB) use alternate models for data management, such as key-value pairs or document storage. In DynamoDB, tables, items, and attributes are the core components that you work with. A table is a collection of items, and each item is a collection of attributes. DynamoDB uses primary keys to uniquely identify each item in a table, and secondary indexes to provide more querying flexibility. You can use DynamoDB Streams to capture data modification events in DynamoDB tables.
Today, I have only focused on two AWS database services to give you a glimpse of both the SQL and NOsql option offered by AWS and both of them are fully managed services (serverless). Next time I will dive deeper in all services one by one and try to understand how to use and when is best to use a type of database service.