Amazon RDS Pros and Cons – A detailed overview
Amazon Relational Database Service or Amazon RDS is a managed cloud database service from AWS. It is a service designed to simplify the creation, operation, management, and scaling of a relational database for use as an application backend. 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 SQL Server, Oracle database, PostgreSQL, and MariaDB.
Go to the end of the section if you’s like to skip reading about RDS and go directly to the section where we cover Amazon RDS Pros and Cons.
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 performing maintenance tasks on the RDS instance. Administration processes such as patching the RDS database, backup of databases and point-in-time recovery are automated. A single API
call scales storage and computing resources as AWS does not provide an ssh link to RDS instances. Customer running an RDS instance have limited control on 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, and that may include special database encryption software or log-shipping software that may require root access to the node.
Amazon RDS critical to AWS 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, RDS enabled AWS to scale its operations by making customers more sticky to their cloud services. Many websites that run on the LAMP stack have made RDS as their backend. One can say that leading with MySQL was a smart move on the part of AWS because the service attracted smaller customers with less mission-critical applications who were also resource-constrained.
Offloading a significant portion of the infrastructure management to AWS enabled small teams to focus on more value-added work. At the same time, AWS used this opportunity to strengthen their product offering and services, a win-win for both parties. RDS now boasts many enterprise customers like Unilever, Airbnb, Netflix and Expedia, which demonstrates the capability, convenience, and the value provided by the service.
Features of Amazon RDS
Lower administrative overhead
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 the invocation of 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 have access to database configuration parameters that they can modify to get optimal performance from their RDS instance.
Amazon RDS Automatic software patching
Amazon handles 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 makes sure that the relational database software powering your deployment stays up-to-date with the latest patches. 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 which enables them to identify best practices for achieving optimal utilization, security, and performance of the RDS instance. RDS customers receive these recommendations. They can assess the validity of the recommendations and take appropriate actions according to their preference or ignore the suggestion.
Amazon RDS Performance
Users can decide from a slew of compute and storage options that are available 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. For more demanding workloads that require predictable performance and high I/O throughput, Provisioned IOPS 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 and enables them to add more storage to their RDS instance or to scale up or scale down compute and memory allocated to the instance. Storage scalability options vary by the flavour of RDS in use, i.e. MySQL, Oracle, SQL Server, and others. No downtime is required to provision additional storage for an RDS instance. RDS currently limits the scaling operations to a maximum of 32 vCPUs and 244 GiB of memory. Scaling compute involves taking a downtime although the downtime typically lasts only a few minutes.
Amazon RDS Read Replicas
RDS is a single instance database. User can only scale up as a result to address the increasing demand of write workloads. However, RDS also offers the capability to create multiple read replicas to serve read requests coming in from application users and database users on the RDS instance. Each RDS replica has attached storage that is synchronized by leveraging log shipping techniques and offers scale-out capabilities for read operations. RDS Read replicas are offered for MySQL, MariaDB, Microsoft SQLServer, PostgreSQL, and Oracle as well as for Amazon Aurora DB. RDS Read Replicas for Microsoft SQL Server and Oracle can be created only in the same region in different Availability Zones whereas, for other supported databases, customers can create read replica in another region also.
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 logs and the transaction logs for a specified retention period that a user selects. Database restoration process is also simple and can be controlled directly from the console, CLI or by using the REST APIs. Databases can be restored up to the nearest second and thus, minimizing data loss. Backups and restores are typically time-consuming activities and are prone to human errors. By automating this feature RDS reducing 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 are useful in the creation of new instances like development or testing instances in a matter of 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 stand-by 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 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
Public cloud database services generally come with encryption at rest and in transit capabilities. RDS offers robust encryption capabilities. Users can opt for managing their encryption keys using the AWS Key Management Service (KMS). Encryption capabilities are not limited to the production instance. All snapshots, backups, read replicas, standby nodes are also encrypted. SSL is used to secure data in transit.
Emphasis on security at the network layer is also vital. 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. Powerful alerting mechanisms ensure critical issues are communicated to a suitable audience immediately upon the occurrence of any issue.
RDS pricing is similar to other AWS database services like Amazon Redshift. Pay as you go and reserved instance pricing with multi-year commitments are available for customers to choose. Pay per use pricing is applicable for lower environments, while production and standby environments typically run on reserved instances.
Amazon RDS Pros and Cons
|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|
We hope that this article is helpful for you in understanding Amazon RDS pros and cons. To learn more about other AWS database services like Redshift, head over to our blog.