AWS Aurora DB: AWS Relational database services came into existence in 2009 offering the cloud-based MySQL database and others as services. This has been a great boon for all the developers out there because a lot of maintenance and availability related chores and tasks were taken care by AWS itself. Now lately in 2014, there was a new addition to the AWS RDS stack, namely the Aurora, which has disrupted the entire scenario! Let us see in this blog what exactly Aurora database engine is and why it has become so popular?.
Why AWS Aurora DB?
Aurora is a database service created by AWS, which aims at providing much higher levels of performance and scalability. The significance of Aurora is that, in earlier days, there was a need to compromise on one’s database requirement, as one needed to scale up. The limitation was that when there was a need of scaling
a. An open-source solution provided the cheapest way, but along with it comes the trouble of maintenance, performance hurdles and much more issues providing you and your DevOps team sleepless nights.
b. A commercial solution solves the problems of maintenance and others but dents you with hefty bills.
So Amazon realized, there was a space between the two. That is what if one database can provide the hassle-free operating environments that was provided by the commercial database and comparable cost benefits provided by the open source solutions?. This was the primary motive behind the introduction of Aurora by the AWS team.
AWS claims that it is one by tenth cheaper than analogous commercial solution while offering high performance, reliability and durability. Also, it claims tha Aurora is 5 times faster than its open source counterpart MySQL.
AWS Aurora DB: Scalability and Availability
Apart from the above-mentioned factors, other significant features that was considered and offered in Aurora are the scalability and availability.
Right out of the box, Aurora is equipped with the high auto scalability and availability features that once we launch the Aurora cluster we need not worry about both.
Aurora cluster can be configured for a minimum size of 10 GB. This is so designed that whenever the capacity limits are about to exceed, this automatically scales to the next higher capacity. The incremental step size here is 10 GB.
This increments can go all the way up to the database reaching 64TB, which is the maximum capacity currently offered by Aurora.
This is an extremely good feature on many fronts as when the application grows the database need not be closely monitored but takes care of itself and scales accordingly.
This is one of the major features of the Aurora DB. Aurora is designed to be highly available right from the initiation of the cluster.
AWS provides 2 copies of data in each availability zone and there will be a minimum of 3 availability zones. This in total makes 6 copies of data. A high-level picture of the system is as shown in the figure below:
It is designed to transparently handle the loss of 2 copies of data without affecting write capability and can handle the loss of 3 copies without affecting the read capability
AWS Aurora DB: Setting up an Aurora Cluster
Now let us have a look in the setting up of an Aurora cluster using the AWS console. Note that this is a paid service and in order to avoid possible mishaps, I will not be launching the application.
So first login into the AWS console and search for RDS and go to the RDS page of the AWS console. Click on the left navbar and then click on the “clusters” tab (marked as 1 in the below picture):
In the above screen click on the “create database” button. This will redirect to the databases page of the RDS, which will show AWS Aurora DB, MySQL and other databases supported by RDS.
In that screen click on the AWS Aurora Db engine and then click the “next” button. This will direct you to the first of the two settings page like below:
Here you can select the type of database instances needed and then fill out the settings like the database identifier, master username and the password corresponding to it.
Upon clicking next, we will be redirected the second page of the settings, which is a bit longer than the first. The second settings page can be viewed here as it is a bit longer screenshot.
Here we can configure settings like the VPC, encryption preference, failover options configurations etc. After this, clicking the “create database” would create the database and initiate the billing process for the created Aurora database.
When to use AWS Aurora DB
There might be cases when the normal RDS solution should suffice for our requirements, but it would be good to have a general idea of when you should use Aurora and when should you turn to other solutions.
If we are planning to develop a highly available solution and then again if we need not want to worry about the maintenance or other works coming along with it, Aurora would be a good choice.
Likewise in the use cases where we are fully okay with AWS being responsible for all the updates, bug fixes etc as these things cannot be controlled from our side.
I have introduced you to yet another AWS database as a service, namely the Aurora. Here we have seen that the primary purpose of this database is cost-effectiveness, scalability, availability and performance and all these come bundled with this database right from its inception.