Amazon Relational Database Service or Amazon RDS is a managed cloud database service from AWS (Amazon Web Services). It is a service designed to simplify a relational database’s creation, operation, management, and scaling. AWS launched the RDS service initially in October 2009 with support for MySQL. As years went on, the RDS service added managed services for various other databases like RDS SQL Server, Oracle database, PostgreSQL, and MariaDB.
Amazon RDS- A workhorse for AWS
RDS is one of the most popular services in AWS, boasting a wide array of customers seeking to reduce dependency on their DBAs and enabling their existing staff to operate more databases than they were able to previously. AWS teams manage the provisioning of the infrastructure and perform maintenance tasks on the RDS instance.
Administration processes such as patching the RDS database, backing up databases, and point-in-time recovery are automated. In addition, a single API call scales the storage and computing resources as AWS does not provide an SSH link to RDS instances.
Customers running an RDS instance have limited control over the underlying infrastructure and the operating system. By preventing root access to the node, AWS limits the customers from installing any 3rd party software on the node, including special database encryption software or log-shipping software that may require root access to the node.
Amazon RDS Critical to AWS’s Initial Growth
Despite these limitations, Amazon RDS has proven to be an incredible workhorse for AWS and its customer base.
If Amazon S3 attracted initial customers to AWS and EC2 instances made them stay, then RDS enabled AWS to scale its operations by making customers loyal to their cloud services. Many websites that run on the LAMP stack have made RDS their backend. One can say that leading with MySQL was an intelligent move for AWS because the service attracted smaller customers with less mission-critical applications who were also resource-constrained.
Offloading a sizable portion of the infrastructure management to AWS enabled small teams to focus on more value-added work. At the same time, AWS leveraged this opportunity to strengthen its product offering and services. As a result, RDS now boasts many enterprise customers like Unilever, Airbnb, Netflix, and Expedia, demonstrating the service’s capability, convenience, and value.
Features of Amazon RDS
Easy to use
AWS offers multiple ways to access and manage the RDS service, including the AWS Management Console, the RDS Command Line Interface (CLI), and REST API calls. Upon invoking an RDS instance creation process with pre-defined parameters, an RDS instance is spun up and is ready for use within minutes. Administrators continue to access database configuration parameters that they can modify to get optimal performance from their RDS instance.
Amazon RDS Automatic Software Patching
Amazon oversees the patching of the underlying OS and the database alleviating the burden on the database administrators. However, RDS administrators continue to have the option to decide when to patch the RDS instance. Amazon RDS ensures that the relational database software powering your deployment stays updated with the latest patches. In addition, you can exercise optional control over when and if your database instance requires patching.
Amazon RDS Recommendation Engine
Amazon RDS service runs thousands of databases for various clients, enabling them to identify best practices for achieving optimal utilization, security, and performance of the RDS instance. RDS customers receive these recommendations on the Amazon RDS Management console. They can assess the validity of the offers and take appropriate actions according to their preference or dismiss the suggestions.
Amazon RDS Performance
Users can decide from a slew of available computing and storage options on Amazon RDS. SSD-backed storage supports both General Purpose, and Provisioned IOPS use cases. For customers running RDS instances to support broad-based workloads, General Purpose SSDs offer excellent value. However, for more demanding workloads that require predictable performance and high I/O throughput, Provisioned IOPS (SSD) Storage is a better choice. Storage selection options are available to the users during the RDS instance creation process.
RDS Instance Scalability
Storage, compute, and memory are the three aspects of a database where scalability is required. RDS offers a push-button scalability option for administrators, enabling them to add more storage to their RDS instance or scale up or down compute and memory allocated to it.
Storage scalability options vary by the flavor of RDS, i.e., MySQL, Oracle, SQL Server, and others. No downtime is required to provide additional storage for an RDS instance. Amazon RDS allows you to scale the compute and memory resources, powering your deployment up or down, up to a maximum of 32 vCPUs and 244 GiB of RAM. The compute scaling operations take a couple of minutes. Amazon Aurora engine automatically expands your database size as your database storage size grows. It allows up to 64 TB, or the maximum storage you define. The SQL Server supports up to 64 TB of storage, while the MySQL, MariaDB, Oracle, and PostgreSQL engines can scale up to 64 TB of storage. The storage scaling-up process happens instantly with zero downtime.
Amazon RDS Read Replicas
RDS is a single instance database. Therefore, users can only scale up to address the increasing demand for write workloads. However, RDS also allows the creation of multiple read replicas to serve read requests from application users and database users on the RDS instance.
Each RDS replica has attached storage synchronized by leveraging log shipping techniques and offers scale-out capabilities for reading operations. RDS Read replicas are offered for MySQL, MariaDB, Microsoft SQL Server, PostgreSQL, Oracle, and Amazon Aurora DB. RDS Read Replicas for Microsoft SQL Server and Oracle can be created only in the same region in different Availability Zones. Customers can also create read replicas for other supported databases in another area.
RDS Automated Backups and Recovery
Amazon RDS automatically creates backups of the instance and supports point-in-time recovery. Amazon RDS backs up and stores the database and transaction logs for a specified retention period that a user selects. The database restoration process is simple and can be controlled directly from the console, CLI, or REST APIs. Databases can be restored up to the nearest second, thus minimizing data loss. However, backups and restores are typically time-consuming and prone to human errors. By automating this feature, RDS reduces significant risks to the business that can occur due to manual errors.
Amazon RDS Database Snapshots
Users can initiate database snapshots for storage in S3 buckets. These snapshots help create new instances like development or testing instances in minutes. The snapshots also double up as database backups.
Amazon RDS Availability
RDS instances can be deployed across multiple availability zones to increase the availability of the database service. In a multi-availability zone setup, RDS ensures that standby is up to date with the production RDS instance. The Initiation of a failover process occurs automatically upon the failure of a production instance.
It is a good practice for production environments to have a standby in a different availability zone, preferably a region, to mitigate the impacts of a complete availability zone failure. Although such instances are rare, they do occur occasionally. In case of an underlying hardware failure, RDS replaces the compute node.
Amazon RDS Security
Encryption
Public cloud database services have encryption at rest and in transit capabilities. RDS offers robust encryption capabilities. Users can opt to manage their encryption keys using the AWS Key Management Service (KMS). Encryption capabilities are not limited to the production instance. Snapshots, backups, read replicas, and standby nodes are also encrypted. SSL is used to secure data in transit.
Networking
Emphasis on security at the network layer is also vital. For example, a database instance can be isolated from the rest of the environment by running the instance in its VPC. RDS is also well integrated with AWS services like firewall and VPN.
AWS Identity and Access Management
AWS Identity and Access Management (IAM) integrates with all services in AWS. IAM enables customers to control access to the RDS instances and other cloud resources running on AWS. Role-based access controls grant specific permissions to users on the actions they can perform on the RDS instance.
RDS Manageability and Monitoring
Amazon CloudWatch captures the metrics like CPU and memory utilization, I/O, and connection activity for the RDS instances at no extra charge. In addition, powerful alerting mechanisms ensure critical issues are communicated to a suitable audience at once upon the occurrence of any issue.
RDS Pricing
RDS pricing is like other AWS database services like Amazon Redshift. Pay as you go and reserved instance pricing with multi-year commitments are available for customers. Pay per use pricing is applicable for lower environments, while production and standby environments typically run-on reserved instances.
Pros & Cons of Amazon RDS
Pros of Amazon RDS | Cons of Amazon RDS |
Automated Patching | Patching forces a downtime |
Automated Backups | No scale-out for write workloads |
Encryption at rest and in-transit | Downtime required for scaling operations |
A significant improvement over on-premise databases | No automated performance tuning |
Integrated with the rest of the AWS ecosystem | Not a zero-administration database |
No hardware maintenance needed | No automated partition management |
Simplified scaling in comparison to on-premise databases | No automated compression management |
Automated log shipping and read replica | No root access to the server |
Simplified disaster recovery and automatic failover | No native support as a read replica for on-premise Databases |
Automated additional storage allocation | CPU and Storage performance is not guaranteed |
Point in time recovery | Zero data loss is not guaranteed |
Conclusion
At Saras Analytics, we firmly believe in the power of data and how organizations of all sizes can now benefit from the rapid innovations in cloud data warehousing technologies.
Our cloud-based data pipeline, Daton, provides a simple yet cost-effective way to replicate your data to Amazon Redshift. Daton has 100+ pre-built adapters for databases, SaaS applications, files, webhooks, marketing applications, and more. Replicate your data to Amazon Redshift from any source in three simple steps without having to write any code in a matter of minutes.
We hope that this article is helpful for you in understanding RDS and Amazon RDS’s pros and cons. Head over to our blog to learn more about other AWS database services like Redshift.