Setting up and operating relational databases in the cloud is simple with Amazon Relational Database Service (Amazon RDS). In addition to providing cost-efficient and scalable capacity, Amazon RDS manages time-consuming tasks related to database administration —- such as scaling compute resources or storage capacity associated with a DB instance, and automatic backups and software patching.
With Amazon RDS, you can choose from six popular engines — Amazon Aurora (MySQL or PostgreSQL compatibility), MySQL, MariaDB, PostgreSQL, Oracle, and SQL Server — and deploy on-premises with Amazon RDS on AWS Outposts.
Amazon RDS simplifies database operations tasks, but costs can quickly spiral out of control as Kubernetes environments become more complex. This blog will cover the benefits of using Amazon RDS, the primary cost drivers, and cloud cost management solutions like Anodot can help you control RDS costs.
Amazon RDS benefits
With Amazon RDS, you can deploy a production-ready relational database in minutes — with low admin burden, best practice recommendations, and blue/green deployments that facilitate changes with zero data loss and no impact on production workloads.
Performance and scalability. Amazon RDS general purpose storage delivers a consistent baseline of 3 IOPS per provisioned GB and can burst up to 3,000 IOPS above the baseline. Amazon RDS provisioned IOPS delivers up to 40,000 IOPS per database instance. Optimized reads and writes provide up to 50% faster query processing and up to 2X transaction throughput for My SQL at no additional cost, respectively. Compute and storage can be scaled up to a maximum of 32 vCPUs and 244 GiB of RAM and up to a maximum of 64 TB, respectively. Read Replicas enable elastic scaling beyond the capacity constraints of a single DB instance.
Availability and durability. Amazon RDS provides automatic host replacement in the event of hardware failure and automated backups for a specified retention period. Multi-AZ deployments provide enhanced availability and durability for database instances. Database snapshots serve as fully operational backups which are kept explicitly deleted, and billed only for incremental storage usage.
Security and manageability. Amazon RDS uses AWS Key Management System for encryption at rest and SSL for encryption in transit. AWS Identity and Access Management provides resource-level permissions. Amazon VPC allows you to isolate your database in your own virtual network. Easily manage Amazon RDS using RDS Management Console, Amazon CloudWatch for enhanced monitoring and metrics, Amazon RDS Performance Insights for tuning performance, Amazon SNS for event notification, and AWS Config for configuration governance.
Amazon RDS cost drivers
Amazon RDS pricing has several components:
- DB instance — pay for compute capacity per hour for your DB instance.
- Database storage — pay for the storage capacity (per GB-month).
- I/O — pay for IOPS and throughput above baseline capability bundled into the cost of storage (per IOPS-month and MB/s-month).
- Backups — pay for additional backup storage above 100% of your total database storage for a region (per GiB-month).
- Data transfer — moving data into RDS from the internet is free, but moving it out of RDS can get expensive (per GB).
Let’s go deeper into each cost driver below to find out how they affect your RDS costs.
It is important to note that RDS pricing varies depending on which database engine you select.
Amazon RDS supports six different types of DB engines — MySQL, MariaDB, PostgreSQL, Amazon Aurora with MySQL or PostgreSQL compatibility, Oracle, and SQL Server.
The first three are: open-source relational database technologies, the most economical, and cost almost the same — except for PostgreSQL which is 5-10% more expensive per hour than the others, depending on instance size. They all share the same pricing for storage, provisioned I/O, and RDS data transfer cost.
Amazon Aurora is a proprietary technology that’s compatible with MySQL and PostgreSQL, has a multi-zone backup system, and charges per million replicated I/O operations. It’s 10-20% more expensive than the open-source options, depending on instance size. Aurora is also offered in a serverless option that automatically scales the database instance hardware (assigning up to 488 GiB of memory) to accommodate current usage and stops the instance when not used — helping reduce resource over-provisioning and costs. Aurora can be a cost-effective option if you have intermittent usage or need fast failovers and many read replicas.
Oracle and Microsoft SQL Server are proprietary relational database technologies and their cost includes license fees — instance cost per hour can be more than 100% higher than open-source options, depending on the license. Pricing for storage, provisioned I/O, and data transfer costs are similar to open-source options.
DB Instance classes — which determine the computation (vCPU), network (Mbps), and memory capacity (GiB RAM) of an Amazon RDS DB instance — should be chosen according to the processing power and memory requirements of your application.
A DB instance class consists of both the DB instance type and the size. There are three types of DB instances supported by Amazon RDS: general purpose, memory-optimized, and burstable performance. Amazon RDS offers instances ranging from db.t2.micro (1 vCPU, 1 GiB RAM) to db.m5.24xlarge (96 vCPUs, 384 GiB RAM, 19,000 Mbps). In addition to instance type, instance size (e.g., micro, small, medium, etc.) is the main driver of your underlying Amazon RDS DB instance hourly cost, with costs doubling with every increase in instance size.
Amazon RDS supports 3 types of storage:
General Purpose SSD. Cost-effective storage recommended for most workloads running on medium-sized DB instances. Best for development and testing environments. Baseline IOPS performance proportional to storage provisioned (3 IOPS for each GiB, with a minimum of 100 IOPS, and maximum 16000 IOPS) with bursting capacity. With Amazon RDS, you can choose from 20 GiB to 64 TiB of associated storage capacity. Charged only for storage (gp2) or for storage, IOPS, and throughput (gp3). The least expensive option.
Provisioned IOPS SSD. Recommended for I/O-intensive workloads that require low I/O latency and consistent I/O throughput. Best for production environments. Scale from 1000–256,000 IOPS and 100 GiB – 64 TiB of storage. Charged for the IOPS and storage you provision. The most expensive option.
Magnetic Storage. Supported for backward compatibility purposes. Not recommended for any new storage needs. Low storage size when compared to other storage types.
Amazon RDS offers three deployment options for enhanced data durability and availability:
Single-AZ deployment. Single DB Instance deployed in a single Availability Zone. This is the least expensive deployment option.
Multi-AZ deployment (one standby). In addition to the primary DB instance, Amazon RDS provisions and maintains a standby DB instance in a different Availability Zone for automatic failover in the event of a scheduled or unplanned outage. This deployment option costs 2X more than a Single-AZ instance for a comparable instance type and size.
Multi-AZ deployment (two readable standbys). Amazon RDS provisions and maintains identical DB instances in three different Availability Zones for enhanced data durability and availability. Available only for MySQL and PostgreSQL. This deployment option costs 2.79X more than Single-AZ instances for a comparable instance type and size.
Amazon RDS costs are also affected by the region of your DB instance. Most regions are 10-20% more expensive than Europe (Stockhold), US East or West regions — except for Africa (Cape Town), Asia Pacific (Hong Kong) and South America (São Paulo) which can be 30-100% more expensive.
Amazon RDS DB instances are charged per hour. Instances can be stopped when they aren’t being used (e.g., testing instances after business hours or on weekends) and restarted when needed — either manually via the console or automatically via the API. This option is only available for instances with Single-AZ deployments without Read replicas.
Backup storage and snapshots
DB backup storage refers to the storage associated with automated database backups and user-initiated database snapshots. The backup storage consumed by your database increases with longer backup retention periods and many DB snapshots. Amazon RDS provides free backup storage up to 100% of your total database storage for the region. Additional backup storage is billed at $0.095 per GiB-month. User-initiated DB snapshots are kept until deleted and continue to incur snapshot export fees (per GB of snapshot size), data transfer fees, and S3 storage costs.
The hourly cost of Amazon RDS DB instances is significantly less when purchased as Reserved Instances with a one or three year commitment — up to 72% savings over On-Demand instances. Reserved Instances pricing doesn’t cover storage, provisioned I/O, and data transfer costs.
Optimize Amazon RDS costs with Anodot
Maximizing Amazon RDS without negatively impacting database performance can be quite challenging. Usually, you’ll find yourself with wasted cloud spend — over-allocated resources (e.g., compute, memory, and storage) and unused resources (e.g., backups and snapshots) that you’ll need to optimize or terminate, respectively.
Anodot’s Cloud Cost Management solution makes optimization easy. It can easily connect to AWS, Azure and GCP to monitor and manage your spending. Anodot seamlessly integrates all cloud spending — even in multicloud environments — into a single platform, allowing a holistic approach to optimization.
Additionally, Anodot offers specific recommendations for Amazon RDS that can be implemented easily.
Amazon RDS rightsizing:
- RDS rightsizing instance class
- RDS DB engine
- RDS storage type
- RDS generation update
Amazon RDS Reserved Instances:
Reduce Amazon RDS instance costs beyond rightsizing with Reserved Instances (RI), which offer up to a 72% discount over On-Demand pricing. Anodot’s Amazon RDS RI purchase recommendations are based on your historical usage. We calculate these recommendations using our unique algorithms to analyze all usage eligible for RI coverage and simulate possible combinations of RIs that would cover that usage.
Amazon RDS management:
- RDS outdated snapshot
- RDS backup retention
- RDS Multi-AZ and region
Anodot’s personalized insights and savings recommendations are continuously updated to consider the newest releases from major cloud providers, including AWS. Anodot helps FinOps teams prioritize recommendations by justifying their impact with a projected performance and savings impact.
Anodot is unique in how it learns each service usage pattern, taking seasonality into account to establish a baseline for expected behavior. Real-time anomaly detection enables Anodot to identify irregular cloud spend and usage, providing contextual alerts to relevant teams so they can resolve issues as soon as possible.
ML-based algorithms provide deep root cause analysis and clear remediation guidance. Anodot helps customers align FinOps, DevOps, and finance teams’ efforts to optimize cloud spending.