avatarAshish Patel

Summary

Amazon Aurora is a cloud-native, fully managed relational database service that combines the performance and scalability of high-end commercial databases with the simplicity and cost-effectiveness of open-source databases, offering compatibility with MySQL and PostgreSQL.

Abstract

Amazon Aurora, a service provided by AWS, is designed to deliver the performance and availability of traditional enterprise databases while maintaining the cost-effectiveness and simplicity of open-source databases. It supports both MySQL and PostgreSQL, and operates with a distributed, fault-tolerant, self-healing storage system that scales up to 128TB per database instance. An Aurora DB cluster typically consists of a primary instance for write operations and up to 15 Aurora Replicas for read operations. Aurora Global Database facilitates globally distributed applications with low latency reads and fast disaster recovery. Aurora Serverless offers an on-demand, auto-scaling configuration that adjusts capacity based on the application's needs, suitable for variable workloads. Additionally, Amazon RDS Proxy enhances application scalability and resilience by pooling and sharing database connections. Aurora's architecture supports both single-master and multi-master clusters, with the latter providing improved high availability and suitability for sharded or multi-tenant applications.

Opinions

  • Amazon Aurora is positioned as a high-performance alternative to traditional enterprise databases, offering up to five times the throughput of MySQL and three times that of PostgreSQL.
  • The service emphasizes ease of use and manageability, automating complex tasks such as hardware provisioning, database setup, patching, and backups through Amazon RDS.
  • Aurora's architecture, which separates storage and compute, is seen as advantageous for scalability and performance.
  • The inclusion of features like Aurora Global Database and Aurora Serverless indicates a focus on supporting globally distributed and variable workloads, respectively.
  • The use of Amazon RDS Proxy suggests a recognition of the importance of connection management and resilience in modern applications.
  • Multi-master clusters are highlighted as a significant feature for applications requiring high availability and write scalability, particularly in multi-tenant or sharded database scenarios.
  • Security is a key consideration, with Aurora providing network isolation, encryption at rest, and encryption of data in transit.
  • The summary concludes with a reinforcement of Aurora's value proposition: it simplifies data management and aids in building scalable, reliable, and high-performance applications.

AWS — Amazon Aurora Overview

What is Amazon Aurora? — Introduction to Amazon Aurora.

Amazon Aurora

TL;DR

Amazon Aurora is a fully managed MySQL and PostgreSQL-compatible relational database built for the cloud that combines the performance and availability of traditional enterprise databases with the simplicity and cost-effectiveness of open source databases.

Two types of DB instances make up an Aurora DB cluster:

Primary Instance — Supports read and write operations, and performs all of the data modifications to the cluster volume. Each Aurora DB cluster has one primary DB instance.

Replica Instances— Connects to the same storage volume as the primary DB instance and supports only read operations. Each Aurora DB cluster can have up to 15 Aurora Replicas in addition to the primary DB instance.

Key Points

  • Amazon Aurora architecture gives separation of storage and compute.
  • Automatic failover to reader instance — When a problem affects the primary instance, one of these reader instances takes over as the primary instance.
  • Cluster endpoint always represents the current primary instance in the cluster. To use a connection string that stays the same even when a failover promotes a new primary instance, you connect to the cluster endpoint.
  • Aurora automates and standardizes database clustering and replication, which are typically among the most challenging aspects of database configuration and administration.

Features

Aurora Global Database

  • It is designed for globally distributed applications, allowing a single Amazon Aurora database to span multiple AWS regions.
  • It enables low latency global reads and providing fast global disaster recovery and no impact on performance.
  • It consists of one primary AWS Region where your data is mastered, and up to five read-only secondary AWS Regions.

Advantages:

  • Global reads with local latency.
  • Scalable secondary Aurora DB clusters.
  • Fast replication from primary to secondary Aurora DB clusters.
  • Recovery from Region-wide outages (lower RTO and RPO).

Not supported features:

  • Aurora multi-master clusters.
  • Aurora Serverless v1.
  • Backtracking in Aurora.
  • Amazon RDS Proxy.

Amazon Aurora Serverless

  • Aurora Serverless gives start up, shut down, and scale up or down capacity based on your application’s needs with Aurora Serverless.
  • Aurora Serverless version 1 — is an on-demand auto-scaling configuration for Amazon Aurora and provides a relatively simple, cost-effective option for infrequent, intermittent, or unpredictable workloads.
  • Aurora Serverless version 2 (in preview) — you can get optimal cost performance for your database clusters. Capacity is adjusted automatically based on application demand, and you’re charged only for the resources that your DB clusters consume. It has been architected from the ground up to support serverless DB clusters that are instantly scalable.

Use cases:

  • Infrequently used applications.
  • New applications (when you’re unsure about the instance size you need).
  • Variable and unpredictable workloads.
  • Development and test databases.
  • Multi-tenant applications.

Not supported features:

  • Aurora global databases.
  • Aurora multi-master clusters.
  • Aurora Replicas.
  • IAM database authentication.
  • Performance Insights.
  • Amazon RDS Proxy (only in V2)

Amazon RDS Proxy

  • By using Amazon RDS Proxy, you can allow your applications to pool and share database connections to improve their ability to scale.
  • It makes applications more resilient to database failures by automatically connecting to a standby DB instance while preserving application connections.
  • You can handle unpredictable surges in database traffic that might cause issues due to oversubscribing connections or creating new connections at a fast rate.

Single-master clusters

  • Most kinds of Aurora clusters are single-master clusters. It is the default architecture for Aurora clusters.
  • For example, provisioned, Aurora Serverless, parallel query, and Global Database clusters are all single-master clusters.
  • In a single-master cluster, a single DB instance performs all write operations and any other DB instances are read-only.
  • This architecture is appropriate for general-purpose applications. In such applications, a single DB instance can handle all the data manipulation language (DML) and data definition language (DDL) statements.
  • If the writer DB instance becomes unavailable, a failover mechanism promotes one of the read-only instances to be the new writer.

Multi-master Cluster

  • In a multi-master cluster, all DB instances can perform read/write operations.
  • The notions of a single read/write primary instance and multiple read-only Aurora Replicas don’t apply.
  • Multi-master cluster doesn’t use the failover mechanism, because it doesn’t need to promote another DB instance to have read/write capability.

Advantages:

  • Multi-master clusters improve Aurora’s high availability.
  • Multi-master clusters are well-suited to sharded or multi-tenant applications.
  • Aurora detects write conflicts immediately, not when the transaction commits.

Use Cases:

  • In applications where you can’t afford even brief downtime for database write operations, a multi-master cluster can help to avoid an outage when a writer instance becomes unavailable.

Read Replicas

  • Elastically scale out beyond the capacity constraints of a single DB instance for read-heavy database workloads.
  • Aurora Replicas connect to the same storage volume as the primary DB instance, but support read operations only.
  • Aurora DB cluster with single-master replication has one primary DB instance and up to 15 Aurora Replicas.

Use Cases:

  • You use Aurora Replicas to offload read workloads from the primary DB instance.

Babelfish for Aurora PostgreSQL

  • Babelfish for Aurora PostgreSQL is a new capability for Amazon Aurora PostgreSQL-Compatible Edition that enables Aurora to understand commands from applications written for Microsoft SQL Server.
  • With Babelfish, Aurora PostgreSQL now understands T-SQL, Microsoft SQL Server’s proprietary SQL dialect, and supports the same communications protocol, so your apps that were originally written for SQL Server can now work with Aurora with fewer code changes.

Benefits

  • Fully Managed: Amazon Aurora is fully managed by Amazon RDS which automates time-consuming administration tasks like hardware provisioning, database setup, patching, and backups.
  • High Performance: Aurora can deliver up to five times the throughput of MySQL and up to three times the throughput of PostgreSQL without requiring changes to most of your existing applications. This performance is on par with commercial databases, at 1/10th the cost.
  • Scalability: You can easily scale your database deployment up and down from smaller to larger instance types as your needs change, or let Aurora Serverless handle scaling automatically for you. To scale read capacity and performance, you can add up to 15 low latency read replicas across three Availability Zones. Amazon Aurora automatically grows storage as needed, up to 128TB per database instance.
  • High Availability and Durability: Amazon Aurora is designed to offer 99.99% availability, replicating 6 copies of your data across 3 Availability Zones and backing up your data continuously to Amazon S3. Aurora DB cluster is fault tolerant by design. Your DB cluster can tolerate a failure of an Availability Zone without any loss of data and only a brief interruption of service.
  • Highly Secure: Amazon Aurora provides multiple levels of security like network isolation using Amazon VPC, encryption at rest using AWS KMS and encryption of data in transit using SSL.

Summary

Amazon Aurora is a fully managed relational database engine that’s compatible with MySQL and PostgreSQL which makes it easier, faster, and cost-effective to manage your data and build scalable, reliable, and high performance applications.

View more from Awesome Cloud

Happy Clouding!!!

AWS
Amazon Aurora
Amazon Rds
Aurora Serverless
Aurora
Recommended from ReadMedium