Day:23 Unlocking the Power of AWS Databases: A Comprehensive Guide
✍️Introduction:
Welcome back to Day 23 of our 30 Days of AWS series! Today, we delve into an essential aspect of cloud computing: databases. Whether you're just starting your journey with AWS or looking to deepen your understanding of database services, you're in the right place.
Databases form the backbone of modern applications, storing and managing vast amounts of structured and unstructured data. In today's blog, we'll explore the fundamental concepts of databases within the AWS ecosystem. From relational databases like Amazon RDS to NoSQL databases like Amazon DynamoDB, we'll cover the diverse range of database services offered by AWS.
So, whether you're a developer seeking scalable solutions, a data engineer architecting robust data pipelines, or a business owner aiming to leverage data for strategic insights, join us as we unravel the world of AWS databases.
Let's dive in!
✍️Amazon Aurora:
Amazon Aurora is a fully managed relational database engine that is compatible with MySQL and PostgreSQL. It is designed to boost the performance and availability of traditional enterprise databases.
Is part of the fully managed Amazon Relational Database Service (Amazon RDS).
➤ Featured Include:
➦RDS Management Console
➦CLI commands and API operation for the patching.
➦Backup
➦Recovery
➦Database Setup
➦Failure deduction and repair
➦ Aurora is specifically designed for high performance and scalability. It uses a distributed, fault-tolerant architecture that allows it to scale out across multiple instances. This can provide higher throughput and lower latency compared to traditional MySQL RDS instances.
➤ Performace:
➦ Aurora is specifically designed for high performance and scalability. It uses a distributed, fault-tolerant architecture that allows it to scale out across multiple instances. This can provide higher throughput and lower latency compared to traditional MySQL RDS instances.
➦ MySQL RDS offers standard MySQL database engines. While it also supports scalability and performance enhancements, it may not match the performance capabilities of Aurora, especially for demanding workloads.
➦ Amazon Aurora replicates 2 copies of data in each availability zone (minimum of 3 AZ). So a total of 6 copies per region.
✍️Amazon DocumentDB
Amazon DocumentDB is a fully managed NoSQL database service that manages MongoDB databases in AWS.
➤ Features:
➦ It is a non-relational database service and supports document data structures.
➦ Using DocumentDB with Amazon CloudWatch helps to monitor the health and performance of the instances in a cluster.
➦ It works by building clusters that consist of 0 - 16 database instances (1 primary and 15 read replicas) and a cluster storage volume.
➦ It provides 99.99% availability by copying the cluster's data in three different Availability Zones.
➦ It helps to scale storage and compute services independently.
➦ It provides automatic failover either to one of up to 15 replicas created in other Availability Zones or to a new instance if no replicas have been provisioned.
➦ It provides backup capability and point-in-time recovery for the cluster. It has a backup retention period of up to 35 days.
➦ It is best suited for TTL and Timeseries Workloads and supports ACID properties based on transactions across one or more documents.
✍️Amazon DynamoDB
Amazon DynamoDB is a serverless NoSQL database service that provides fast and predictable performance with single-digit millisecond latency.
➤ Features:
➦ It provides a push button scaling feature, signifying that DB can scale without any downtime.
➦ It is a multi-region cloud service that supports key-value and document data structure.
➦ It provides high availability and data durability by replicating data synchronously on solid-state disks (SSDs) across 3 AZs in a region.
➦ It helps to store session states and supports ACID transactions for business-critical application
➦ It provides the on-demand backup capability of the tables for long- term retention and enables point-in-time recovery from accidental write or delete operations.
➦ Amazon DynamoDB Accelerator (DAX) is a highly available in- memory cache service that provides data from DynamoDB tables. DAX is not used for strongly consistent reads and write-intensive workloads.
➦ It supports Cross-Region Replication using DynamoDB Global Tables. Global Tables helps to deploy a multi-region database and provide automatic multi-master replication to AWS regions.
✍️Amazon ElastiCache
ElastiCache is a web service used to manage and run in memory data stores Redis and Memcached in the cloud.
➤ Features:
➦ It is best suited for online Analytical Processing (OLAP) transaction workloads and for storing session states.
➦ It has in- memory caching features provide sub-millisecond laency for read-heavy application workloads.
➤ Amazon ElastiCache for Redis:
➦ It is useful for gaming applications, geospatial service, caching session stores and replication.
➦ Data is persistent.
➦ It is not multi-threaded.
➦ It supports Multiple Availability Zones using read replicas.
➤ Amazon ElastiCache for Memcached:
➦ It is useful for building applications that require caching layers.
➦ Data is not persistent.
➦ It supports Multi-threading.
➦ It does not support Multi-AZ flavour.
➦ It does not support snapshots.
✍️Amazon Keyspaces
Amazon Keyspaces (for Apache Cassandra) is a serverless service used to manage the Apache Cassandra database in AWS.
It provides the following throughput capacity modes for reads and writes.
On-demand: Charges are applied for the reads and writes performed.
Provisioned: Charges are minimized by specifying the number of reads and writes per second in advance.
Using Amazon Keyspaces, tables can be scaled automatically, and read-write costs can be optimized by choosing either on-demand or provisioned capacity mode
➤ Functions of the Keyspaces
➦ It helps to run existing Cassandra workloads on AWS without making any changes to the Cassandra application code.
➦ It eliminates the developers’ operational burden such as scaling, patching, updates, server maintenance, and provisioning.
➦ It offers high availability and durability by maintaining three copies of data in multiple Availability Zones.
➦It implements the Apache Cassandra Query Language (CQL) API for using CQL and Cassandra drivers similar to Apache Cassandra.
➦ It helps to build applications that can serve thousands of requests with single-digit-millisecond response latency.
➦ It continuously backups hundreds of terabytes of table data and provides point-in-time recovery in the next 35 days.
✍️Amazon Neptune:
Amazon Neptune is a graph database service used as a web service to build and run applications that require connected datasets.
The graph database engine helps to store billions of connections and provides milliseconds latency for querying them.
It offers to choose from graph models and languages for querying data.
Property Graph (PG) model with Apache TinkerPop Gremlin graph traversal language.
W3C standard Resource Description Framework (RDF) model with SPARQL Query Language.
➤ Functions of Amazon Neptune:
➦ It is highly available across three AZs and automatically fails over any of the 15 low-latency read replicas.
➦ It automatically scales storage capacity and provides encryption at rest and in transit.
➦ It provides fault-tolerant storage by replicating two copies of data across three availability zones.
➦ It provides continuous backup to Amazon S3 and point-in-time recovery from storage failures.
✍️Amazon RDS:
Amazon Relational Database Service (Amazon RDS) is a service used to build and operate relational databases in the AWS Cloud.
➦ It is best suited for structured data and Online Transaction Processing (OLTP) types of Database workloads such as InnoDB. It supports following database engines.
SQL Server
PostgreSQL
Amazon Aurora
MYSQL
MariaDB
Oracle
➦ AWS KMS provides encryption at rest for RDS instances, DB snapshots, DB instance storage, and Read Replicas. The existing database cannot be encrypted.
➦ Amazon RDS only scales up for compute and storage, with no option for decreasing allocated storage.
➦ It provides Multi-AZ and Read Replicas features for high availability, disaster recovery, and scaling.
Multi-AZ Deployments - Synchronous replication
Read Replicas - Asynchronous replication
➦ Read replicas feature is not available for SQL Server.
➦ If there is a need for unsupported RDS database engines, DB can be deployed on an EC2 instance.
➦ The following tasks need to be taken care of manually.
Encryption and Security
Updates and Backups
Disaster Recovery
✍️Conclusion:
🎉 Congratulations on completing Day 23 of our 30 Days of AWS series! 🎉
Today, we've uncovered the vast landscape of AWS databases, each offering unique features to cater to your application needs. From the lightning-fast performance of Amazon DynamoDB to the flexibility of Amazon Aurora, AWS has you covered.
But our journey doesn't end here! There's still so much more to explore and discover in the world of cloud computing. So, grab your metaphorical explorer hat, and let's continue this adventure together.
Which database service caught your eye the most? 🤔 Dive deeper into its capabilities, and who knows, you might uncover the perfect solution for your next project! 💡
Stay tuned for tomorrow's instalment, where we'll unravel another exciting aspect of AWS that will elevate your cloud game to new heights! Until then, happy exploring, fellow cloud enthusiasts! ☁️✨