DEV Community

Cover image for Exploring Amazon Aurora: The Next Generation Relational Database
John Bulla for AWS Community Builders

Posted on • Updated on • Originally published at wiki-cloud.co

Exploring Amazon Aurora: The Next Generation Relational Database

Note: ✋ This post was originally published on my blog wiki-cloud.co

Currently, we have various options for hosting databases, where we have a first scenario that would be our corporate datacenter or on-premises where we have an infrastructure at the level of hardware, servers, networks, etc. and there we install and configure our engine database and create one or many instances of our database engine where we finally create or migrate our corporate databases. However, this approach can have significant implications in terms of performance, operability, and cost, and many such implementations are being done today.

Once the concept of virtualization appears and later that of the cloud, a second scenario arises that combines both technologies (Virtualization & Cloud) where through a cloud provider such as AWS we can create and configure virtual machines and that is where we install and configure our database engine and we host our corporate databases, where we finally forget about buying expensive hardware and can acquire the benefits that the AWS cloud provides us, such as scalability and elasticity. This scenario is also known as Infrastructure as a Service (IaaS).

AWS cloud technologies continue to evolve and arises a third scenario that uses all the magic of the cloud and is known as platform as a service (PaaS), where AWS provides native cloud solutions and in the case of databases it is what we know as databases as a service, providing us with many benefits such as eliminating the need to manage hardware and operating systems since this would be done by AWS. In addition to this benefit, we do not have to worry about provisioning resources, planning capacity, hardware maintenance, installing patches or updates, since AWS does all this for us and helps us with many other tasks, which are translates into greater efficiency and performance of the databases.

Image description

Entering in context, in this article we will focus on the native AWS relational database service called Amazon Aurora.

Amazon Aurora is a native relational database service developed by AWS in October 2014, which is available under the relational database schema (RDS). When the service was released to the market, AWS initially offered a MySQL compatible service and as the service evolved, in October 2017 it added PostgreSQL compatibility, having two widely used open source database management systems. With this compatibility, Amazon Aurora can deliver up to five times the performance of MySQL and up to three times the performance of PostgreSQL without the need for major configuration changes.

Image description

During this evolution, apart from compatibility with MySQL and PostgreSQL, relevant features were included such as:

  • Aurora Fast Cloning (copy on write) that allows customers to create copies of their databases. August 2017.
  • Aurora Backtrack, which allows developers to rewind database clusters without creating a new one. May 2018.
  • Aurora serverless version. August 2018.
  • Enable the ability to stop and start Amazon Aurora clusters. September 2018.

Why AWS developed Amazon Aurora?

The main reason why AWS developed Amazon Aurora, was the one to face the common challenges that traditional relational databases have in terms of performance, scalability and availability, where the main objective is to provide customers a relational database solution highly scalable, durable, and high-performance cloud.

This challenge motivated AWS developers to create Amazon Aurora, to which other challenges were added such as reducing downtime during upgrades, improving performance issues with intensive workloads, and improving the difficulty of scaling based on demand with the purpose of providing a user experience without interruptions taking advantage of the power of the AWS cloud infrastructure.

This effort was reflected in a solution that offers greater performance and scalability, while ensuring high availability and durability of the data.

Amazon Aurora Features and Benefits

  • Up to 5x the performance of MySQL and 3x the performance of PostgreSQL: Aurora uses a variety of software and hardware techniques to ensure that the database engine can make full use of available processing, memory, and networking.
  • Serverless configuration: This is an on-demand autoscale configuration, where databases are started, shut down, and automatically scale capacity up or down based on application needs.
  • Storage autoscaling: Amazon Aurora automatically scales I/O to meet the needs of the most demanding applications. It also increases the size of the database volume as storage needs grow. The volume expands in 10 GB increments up to a maximum of 128 TiB.
  • Multi-AZ deployments with Amazon Aurora Replicas: In the event of an instance failure, Amazon Aurora uses Amazon RDS Multi-AZ technology to automate failover to one of up to 15 Aurora Replicas that you have created in three Availability Zones.
  • Amazon Aurora Global Database: For globally distributed applications, an Aurora Global Database can be used, where a single Aurora database can span multiple AWS Regions to enable fast local reads and fast disaster recovery.
  • Automatic, continuous, incremental backups and point-in-time restore: Amazon Aurora's backup capability enables point-in-time recovery of the instance. This allows you to restore the database to any second during its retention period, up to the last 5 minutes. The automatic backup retention period can be set up to 35 days.
  • Integration with the AWS ecosystem: Amazon Aurora easily integrates with other AWS services, making it easy to build highly available, scalable applications. It can be combined with services such as Amazon RDS, AWS Lambda, Amazon CloudWatch, among others, to obtain a complete and optimized solution in the cloud.
  • Simplified management: AWS takes care of management tasks such as resource provisioning, hardware maintenance, backups, and software updates. This allows users to focus on applications and data, without having to worry about the underlying infrastructure.
  • Optimized costs: Amazon Aurora offers superior performance over traditional databases at a significantly lower cost. In addition, the ability to scale up or down based on demand allows for efficient use of resources and further cost optimization.

Amazon Aurora Architecture

Amazon Aurora's basic architecture comprises an Amazon Aurora DB cluster, which consists of a collection of DB instances that work together to provide redundancy, availability, and improved performance. The Amazon Aurora DB Cluster is designed to be compatible with MySQL and PostgreSQL, and offers native support for these databases, making it easy to migrate existing applications. The Aurora cluster is made up of the following components:

  • DB Instances: Exist two types of instances or nodes that are the primary DB instance that supports read and write operations and performs all modifications to the data on the cluster volume.
  • Replicas: These are Amazon Aurora DB instances that connect to the same storage volume as the primary DB instance but only support read operations.
  • Cluster volume: An Aurora cluster volume is a virtual database storage volume that spans multiple Availability Zones, such that one of those zones has a copy of the DB cluster data, ensuring high read and write speed with low latency.

Each Aurora database cluster must have one primary database instance and can have up to 15 replica DB instances.

According to this structure, an Amazon Aurora cluster clearly shows the separation of compute capacity and storage.

One of the distinguishing features of Amazon Aurora DB Clusters is their distributed architecture and automatic, synchronous replication across multiple Availability Zones.

Image description

Conclusion
In summary, AWS developed Amazon Aurora to provide customers with a highly efficient, scalable, and reliable relational database in the cloud that could overcome common challenges associated with traditional databases. Amazon Aurora provides benefits such as high performance, autoscaling, high availability, simplified administration, support for MySQL and PostgreSQL, integration with the AWS ecosystem, and optimized costs, making it an attractive option for many applications and enterprises looking for a foundation reliable and efficient data storage in the cloud.

AWS Databases free tier

💡 The AWS Free Tier offers users an opportunity to explore products for free, with offers including products that are always free, free for 12 months, and short-term free trials. AWS offers the widest selection of purpose-built databases, allowing you to save, grow, and innovate faster.

💡 Build database solutions using these product offerings of the AWS Free Tier.

💡 To obtain updated information on AWS database services, I invite you to follow their page “AWS Databases & Analytics” on Linkedin.

I hope this information is useful.

Follow me:

👉Wiki Cloud | 👉Twitter | 👉LinkedIn | 👉Youtube

Top comments (0)