What is Amazon RDS?
Amazon Relational Database Service (Amazon RDS) is a web service that makes it easier to set up, operate, and scale a relational database in the AWS Cloud. It provides cost-efficient, resizable capacity for an industry-standard relational database and manages common database administration tasks.
Features of AWS RDS
- With Amazon RDS, AWS resources such as CPU, Memory, Storage, and IOPS are split apart so you can scale them independently. If you need more CPU, fewer IOPS, or more storage, you can easily allocate them
- Supported databases – MySQL, MariaDB, PostgreSQL, Oracle, Microsoft SQL Server, and Amazon Aurora.
- Amazon RDS manages backups, software patching, automatic failure detection, and recovery.
- Amazon RDS offers high availability with a primary instance and a synchronous secondary instance you can failover to when problems occur. You can also use MariaDB, Microsoft SQL Server, MySQL, Oracle, and PostgreSQL read replicas to increase read scaling.
- Amazon RDS can help control who can access your RDS databases by using AWS Identity and Access Management (IAM) to define users and permissions.
In this blog, we are going to describe the configuration option settings for all supported DBS in Amazon RDS while creating a database environment. AWS offers two types of database creation viz
- Standard creates – You set all the configuration options, including ones for availability, security, backups, and maintenance.
- Easy create – use recommended best-practice configurations. Some configuration options can be changed after the database is created.
Here we are choosing the Standard creation method and provide details for all supported DB engines in Amazon RDS
Creating a database in Amazon RDS
Login to AWS console with root account credentials. Select Services → Database → RDS and choose the “Create Database” button as shown below.
Amazon Aurora – Configuration options while selecting RDS engine Amazon Aurora
Database edition selection :
RDS Aurora offers two editions of database engines viz
Aurora with MySQL compatibility and Aurora with PostgreSQL compatibility. You can choose either to proceed. In our case, we are choosing MySQL compatibility
Capacity type – Here two types of offers available viz
Provisioned – comprises one or more DB instances and a cluster volume that stores your data. You can adjust the number and instance classes of the DB instances depending on your workload. Additional DB instances help to increase read scalability and high availability. The cluster volume spans multiple Availability Zones (AZs), with each AZ having a copy of the DB cluster data.
Serverless – provides a relatively simple, cost-effective option for infrequent, intermittent, or unpredictable workloads. The cluster comprises a single DB instance and a cluster volume that stores your data. Aurora scales the compute capacity of the DB instance to match your application’s usage. Aurora also starts up the cluster when needed and shuts it down when it’s not in use. The cluster volume has the same benefits as for a provisioned cluster.
Replication features – With Aurora MySQL, you can use single-master replication or multi-master replication for each cluster database you create. Single-master clusters are suitable for most general use cases. These clusters combine high availability with scalability for read-intensive workloads. Multi-master clusters enable write capability for all DB instances. These clusters have a lower limit on cluster size and are suitable for use cases where continuous writer availability is crucial.
Engine version – When you choose Aurora MySQL, the global database and parallel query features are enabled for specific engine versions. You can choose any Aurora MySQL Versions from the list.
Templates – You can choose Production or Dev/Test template depending on your use case requirements.
DB cluster identifier – Provides a name for your DB cluster. The name must be unique across all DB clusters owned by your AWS account in the current AWS Region.
Credential settings – Setup a login id for the master user to access the DB instance. Provide a master username and password. You can also generate a password automatically recommended by AWS.
DB instance size – Choose the DB instance class that allocates the computational, network, and memory capacity required by the planned workload of this DB instance. You can choose db.r5 large to db.r5.24xlarge instances from the drop-down list. By default, the memory-optimized classes option is selected. You can choose a burstable class set also ( Either db.t3 small or db.t3.medium instances )
Availability & Durability – Multi-AZ deployment
Select Create Replica in Different Zone to have Amazon RDS maintain a synchronous standby replica in a different Availability Zone than the DB instance. Amazon RDS will automatically failover to the standby with a planned or unplanned outage of the primary. Available options are: You can create a replica or Don’t create a replica.
Connectivity – VPC & Subnet group.
Choose the Virtual Private Cloud (VPC) that defines the virtual networking environment for this DB instance. Only VPCs with a corresponding DB Subnet Group are listed. You can create a new VPC or can use the existing VPC shown in the list.
Choose the DB subnet group that defines which subnets and IP range the DB instance can use in the Virtual Private Cloud (VPC) you chose. You can create a new DB subnet group or can use the existing subnet group associated with a VPC
Public Access – Select Yes if you want EC2 instances and devices outside of the VPC hosting the DB instance to connect to the DB instance. If you select No, Amazon RDS will not assign a public IP address to the DB instance, and no EC2 instance or devices outside of the VPC will be able to connect. If you select Yes, you must also select one or more VPC security groups that specify which EC2 instances and devices can connect to the DB instance
VPC Security Group – Choose a VPC security group to allow access to your database. Ensure that the security group rules allow the appropriate incoming traffic. You Can choose an existing security group or can create a new VPC security group by selecting the Create a new option.
Database authentication – You can choose either Password authentication or Password and IAM database authentication
- Password authentication – Manage your database user credentials through your DB engine’s native password authentication features. To learn more, see the documentation for your DB engine.
- Password and IAM database authentication – Manage your database user credentials through your DB engine’s native password authentication features and IAM users and roles. IAM helps an administrator securely control access to AWS resources. IAM administrators control who can be authenticated and authorized for RDS resources.
Additional configuration – You may configure additional settings such as Database options, encryption enabled, failover, backup enabled, backtrack disabled, Performance Insights enabled, Enhanced Monitoring enabled, maintenance, Cloud watch Logs, delete protection enabled in this configuration.
Adobe mentioned the detailed configuration for RDS Aurora MySQL database creation. Once done click Create database at the bottom of the page to proceed further.
Oracle – Configuration options while selecting RDS engine Oracle
Similarly, if you choose Oracle as the database engine in RDS, you may come across the same configuration options for creating templates, credentials for the master user, DB instance size, VPC & subnet group configuration, security group configuration, etc. Some other parameters may be exclusively defined for Oracle and are given below.
Edition – This defines which edition of the oracle you choose, Oracle Enterprise edition or Standard edition. You can also choose the version you want to deploy from the list, and the latest will be the default.
Storage type – Here you can choose the storage type, and specify allocated storage size and provisioned IOPS
- General Purpose (SSD) storage is suitable for a broad range of database workloads. Provides baseline of 3 IOPS/GiB and ability to burst to 3,000 IOPS.
- Provisioned IOPS (SSD) storage is suitable for I/O-intensive database workloads. Provides flexibility to provision I/O ranging from 1,000 to 80,000 IOPS.
Storage auto-scaling – Enabling this feature will allow the storage to increase once the specified threshold is exceeded. You can choose the maximum storage threshold required by the planned workload of this DB instance.
Click create a database to proceed further.
Microsoft SQL – Configuration options while selecting RDS engine Microsoft SQL
When you choose Microsoft SQL server as RDS database most of the configuration settings are the same as described before, and few are exclusive configurations for Microsoft SQL database.
Edition – Available editions are
- SQL Server Express Edition – Affordable database management system that supports database sizes up to 10 GB.
- SQL Server Web Edition – Under Microsoft”s licensing policies, it can only be used to support public and Internet-accessible webpages, websites, web applications, and web services.
- SQL Server Standard Edition – Core data management and business intelligence capabilities for mission-critical applications and mixed workloads.
- SQL Server Enterprise Edition – Comprehensive high-end capabilities for mission-critical applications with demanding database workloads and business intelligence requirements.
You can also choose different versions for each edition in the drop-down list.
Microsoft SQL Server Windows Authentication – You can enable this when choosing a directory in which you want to allow authorized domain users to authenticate with this SQL Server instance using Windows Authentication. By choosing a directory and continuing with database instance creation, you authorize Amazon RDS to create the IAM role necessary for using Windows Authentication.
Click the create database button to proceed further.
For other database engines such as MySQL, PostgreSQL ( not with Arora ), and MariaDB, all configurations are the same and are discussed earlier.
Amazon Relational Database Service (RDS) is a web service that simplifies the process of setting up, operating, and scaling a cloud’s relational database. It has affordable and easy to change capacity and controls all lengthy database management tasks for the user and cost-effective for mid-size and enterprise-level organizations.