This article provides a step by step explanation of how to create an Aurora DB cluster that is compliant with MySQL or
AWS RDS Aurora is an AWS native relational database that is compliant with MySQL as well as PostgreSQL, and a fully
managed database service. It is available in an instance sized model as well as a serverless model. It is available
for deployment as a single region as well as a multi-region database. Considering the various features and compliance
it offers with above mentioned open source databases, it is a very promising migration candidate for those who intend
to migrate from open source databases to cloud-native databases without losing compatibility or having to re-work the
entire database and connected systems. In this article, we will learn how to get started with the AWS RDS Aurora DB
cluster and create a new Aurora database instance.
AWS RDS Aurora Setup
Aurora is one of the six databases offered as part of the AWS RDS database offerings. So, we need to first navigate to
the AWS RDS homepage. Open the AWS Management Console, and type AWS in the search console. It would show the AWS RDS
Service link as shown below. Click on that to navigate to the AWS RDS Dashboard page.
Once you land on the dashboard page, it would look as shown below. Generally, there would be an informational message
showing that Aurora is a MySQL and PostgreSQL compatible database, with a Create database button to
start creating the database from the dashboard page itself. You can click this button or you can click on the Database
Instances link in the Resources section.
Clicking on any of the options would land you on the create database wizard. The first option to select on this wizard
is whether one would like to use the Standard Create option or the Easy Create option. The Standard Create option
provides options to configure and customize all the details to configure the AWS RDS Aurora cluster, while the Easy
Create option uses recommended settings for most of the options. Advance users generally go with the Standard Create
option, which is the default option as well. We will select this option as we intend to explore all the settings to
create the cluster.
The next step is the Engine options. As we intend to create an AWS RDS Aurora cluster, we would select Amazon Aurora
as the Engine. Aurora engine comes in two editions – MySQL compatible and PostgreSQL compatible. The topology and
architecture of Aurora remain native of Aurora, but the database engine remains compliant with the selected edition.
This enables users to use their existing MySQL or PostgreSQL tools with the Amazon Aurora engine and still benefit
from the additional features that Aurora provides on the top of these database engines. Select the edition of your
The next step is the Database Location. Aurora allows the creation of a Regional database Or a Global database. As the
name suggests, one can create an Aurora database in any single AWS region, whereas the Global database can span
multiple regions. One does not need a global database unless they need their database existence in multiple
geographies or regions. For the demonstration, we would be continuing with the Regional database.
The next step is to select the database features. There are four options as shown below.
One writer multiple readers – This is the default option, and can be used in general when you have more reads than
writes on your database instance
One writer and multiple readers – Parallel Query – This option is suitable when you have analytical workloads that
may involve large scale data aggregation, complex calculations, and typical operations of analytical workloads on a
massive volume of transactional data
Multiple writers – This option is suitable for use-cases where the database writes are extremely high in volume
compared to reads, and parallel write capacity is required by multiple applications
Serverless – This option is suitable when the database usage is very volatile or unpredictable, and you need the
database capacity to elastically scale with the workloads
After selecting the database feature, the next step is to select the template – whether the database is being created
for production workloads or lower environments. This option sets the default settings of the rest of the database
configuration accordingly. For demo purposes, we can go ahead with Dev/Test template.
In the next step, we need to configure the settings of the database in the Aurora cluster. Provide a name for the
cluster identifier as well as a username and password that would be used to connect to the cluster.
Now we need to select the database instance size. This will determine the compute capacity available to the database.
The Memory-optimized instance class is the default selection. In case if you anticipate workloads that will have
occasional spikes when you need more capacity and for the rest, you need lower capacities, one can consider burstable
If one needs a high-availability deployment of the cluster, one can create database replicas in multiple availability
zones, which may have an impact on the overall database instance cost as well. In lower environments like development
or test, one can opt to not create a database replica. As we selected the templates as Dev/Test, the default option
for Availability and durability is to not create Aurora Replica.
The next step is to configure network connectivity. One can change the VPC and the subnets, if one does not want to go
with the default option. To access this cluster over the internet, one needs to select the Yes option for the publicly
accessible setting. Alternatively, you can also place this cluster in a private subnet, and configure the network
connectivity over a VPN over other suitable options, to avoid exposing the AWS RDS aurora cluster on the private
Security groups control the inbound and outbound traffic over specific ports. While it is possible to choose an
existing security group, there’s also an option to create a new security group just for the AWS RDS Aurora cluster
right through the wizard. We are going to keep all the default values for the network configuration of this AWS RDS
Aurora Cluster. The default database port for Aurora is 3306. One can change this default port to any desired port
number. For this exercise, we are going to keep the default port number as well.
AWS RDS Aurora cluster supports password-based authentication, as well as password and IAM based authentication. If
one’s entire cloud security is not IAM driven, one can just continue with password-based authentication which is
In the additional configuration section, one can configure the initial database name. This is the database that would
be created in the aurora database and would be treated as the default database. This setting is optional, and one can
leave it blank as well. One has the choice to select different parameter groups for the cluster as well as the
database, in case one has created a custom group. Generally, a standard group is created by admin, which gets used by
all the database or cluster instances that get created, and the same can be used. In this exercise, we are going to
continue with the default options. The next setting is fail-over priority. Aurora provider 15 levels of failover
priority as one can have that many read replicas, which will be used as failover instances in case the primary
instance crashes. Setting a preference of failover priority is optional, we here we will continue with the default
option. The backup section provides the option to configure the backup retention duration. Encryption section provides
an option to enable or disable the encryption and use the default or any custom KMS keys for encrypting the data.
The next setting is the Backtrack feature. It’s a unique feature that allows us to rewind the data to a historical
point-in-time, without the need to restore a snapshot as a new cluster, and then deleting the existing cluster. As
backtracking would create more checkpoints and tracking, this feature would create extra charges on the usage of
aurora clusters like multi availability zone configuration. Performance Insights is another feature that provides
performance-related reports and analytic dashboards to analyze performance data. This feature would also cost extra
and is an optional feature. The retention period setting configures the retention period of data held for showing
The next setting is related to monitoring. One can enable enhanced monitoring as well as configure the time period
granularity at which the metrics should be collected. The Log exports section provides an option to enable different
kinds of logs generated in CloudWatch Logs. Depending upon the nature of data and compliance requirements, one can
enable different logs.
The last setting is the maintenance setting, which can be configured to schedule the maintenance window as well as
version upgrades. With this, we have covered all the settings that can be configured to create the AWS RDS Aurora
cluster. Finally, click on the Create database button to create the Aurora cluster.
This will start the creation of the cluster as well as the database, and it would be in an available state in few
minutes generally, as shown below. On the connectivity and security tab, you would find the read-only and read-write
endpoints, which can be used with your existing IDEs that you may be using for MySQL, to connect to the AWS RDS Aurora
One can delete this cluster from the Delete menu item from the Actions drop-down as shown below. This
cluster can prove to be costly if kept on for a long duration without any use. Consider deleting this cluster one the
exercise is completed.
In this way, one can create an AWS RDS Aurora Cluster compliant with MySQL or PostgreSQL.
In this article, we learned how to create a brand-new AWS RDS Aurora cluster. We learned almost every setting that can
be configured while creating the cluster from the AWS Console.