Aurora is a hosted relational database developed for the cloud. It is a new service in Amazon Web Services (AWS) that has both characters performance and high availability databases with its simplicity and cost efficiency. The serverless concept by AWS helps existing users of MySQL to migrate without any major changes in the applications. It is a well-managed service which is up to five times faster than MySQL.
Though Aurora is a serverless concept, it does have servers. But, the general idea for something to be “serverless”, it should meet the following requisites:
- Charge only for what is used.
- No need of server maintenance.
- Provide seamless scaling.
- High availability and fault tolerance.
By just configuring the cluster, all the maintenance, patching, backups, replication and scaling are handled automatically.
Features of Aurora Relational Database Service (RDS) with ‘Serverless’ Concept
Connecting to your Serverless Cluster:
Any Virtual Private Cloud (VPC) resource that has access to your cluster can connect to your cluster on port 3306 with an existing Elastic Compute Cloud (EC2) instance that can connect from the terminal. Connect to your cluster from a local machine via Virtual Private Network (VPN) or Secure Shell (SSH) tunnel. The diagram below shows how it is connected.
Addressing the cost-effectiveness, storage, data transfer and I/O will be charged flat rates as per corresponding units. Having said that, data transferred within the same Availability Zone is free.
Autoscaling in Aurora:
Load balancing is designed to scale up based on the load generation with the help of the application and cluster will automatically scale up if below variation occurs:
- Utilization is above 70%.
However, there will be an automatic scale down if any of the following variations occurs:
- Utilization drops below 30%.
- 40% or less connections are used.
Manual Capacity Settings:
Cluster settings can be done manually via the console, AWS Command Line (CLI), or the RDS Application Programming Interface (API).
Approximate time taken to Scale:
Few tests with different scenarios were conducted and most of the scaling operations were less than a minute. Keeping these results in mind, the performance for autoscaling operations will be the best practice to handle the steadily increasing scaling or sudden traffic bursts.
Monitoring Aurora Serverless:
CloudWatch provides the same metrics for provisioned clusters.
Limitations of Aurora Serverless:
Having seen the top-level advantages, let us now take a look at a few top-level limitations:
- Need to be compatible with MySQL 5.6.
- Connecting port number must be 3306.
- Need to be accessed from a VPC.
- AWS VPN connections and inter-region VPC peering connections are not available.
In conclusion, even though there are limitations such as IAM authentication, S3 integration and Lambda triggers, lack of these features fail to outweigh the tremendous value that Aurora Serverless provides. If you are thinking of PostgreSQL or MySQL 5.7, Aurora could be the way towards relational databases at scale.
Do you agree that Aurora serverless is a better option when compared to MySQL? Share with us any comments or questions you may have at [email protected]