Amazoan Relational Database Service (RDS) is a fully managed service provided by AWS (Amazon Web Services) that makes it easier to set up, operate, and scale relational databases in the cloud. It automates tasks such as hardware provisioning, database setup, patching, backups, and scaling. Here are some key features and components of AWS RDS:
Scalability: You can easily scale the compute and storage resources of your RDS instances based on your workload. This includes vertical scaling (increasing instance size) and horizontal scaling (using read replicas).
High Availability: You can deploy RDS instances with Multi-AZ (Availability Zone) configurations for high availability. This ensures automatic failover to a standby instance in case of hardware or software failures.
Automated Backups: RDS automatically takes daily backups of your database and retains transaction logs for point-in-time recovery. You can also manually trigger backups.
Security: RDS integrates with AWS Identity and Access Management (IAM) for controlling access. You can also encrypt data at rest and in transit using AWS Key Management Service (KMS).
Monitoring and Metrics: AWS provides monitoring through Amazon CloudWatch to keep track of database performance and resource utilization. You can set alarms and get notifications when certain thresholds are reached.
Managed Patching: AWS automatically applies patches to the RDS instances, ensuring they stay up-to-date with the latest security updates.
Cost Management: RDS offers different pricing models (on-demand and reserved instances) to optimize costs based on your usage patterns.
Database engines
- MySQL
- MariaDB
- Oracle (21c, 19c, 12c Release 1 and 2)
- PostgreSQL
- Amazon Aurora
- Microsoft SQL Server
Licenses
In RDS all versions of Microsoft SQL Server and Oracle (SE2) include a license.
Bring Your Own License is supported for Oracle EE and SE2
Amazon RDS vs EC2 Instance with Database
Feature | Amazon RDS | EC2 Instance with Database |
---|---|---|
Management and Maintenance | Fully managed; automatic backups, patching, and scaling | You manage the entire database setup, backups, and patching |
Customization and Control | Limited control over underlying OS and system setup | Full control over the OS, database engine, and custom configurations |
Scalability | Automated vertical scaling and horizontal scaling (read replicas) | Manual scaling; requires setting up additional EC2 instances or replicas |
High Availability | Built-in Multi-AZ deployments and automatic failover | You must configure high availability and failover yourself |
Backup and Recovery | Automated backups with point-in-time recovery, manual snapshots | You must manually configure backup solutions and recovery |
Security | Built-in encryption, automatic security patches, IAM integration | You manage your own security configurations, including encryption and patching |
Cost | Typically higher due to the managed nature and features | Generally cheaper, but you manage all costs associated with the EC2 instance and database management |
Performance Tuning | Limited access to underlying system for tuning | Full access to the server and database for performance tuning |
Use Cases | Ideal for standard applications needing managed services | Suitable for custom setups, complex workloads, or when specific database engines/features are needed |
Maintenance Overhead | Low maintenance overhead (AWS handles most tasks) | High maintenance overhead (you handle everything from patching to backups) |
Multi-Region Deployments | Supports cross-region read replicas and automatic failover | Requires custom setup for multi-region deployments and failover |
Disaster Recovery | Automated backups, snapshots, and Multi-AZ deployments | You are responsible for designing and managing your disaster recovery strategy |
Instance Classes:
Class | Purpose | Use Case | Example Instances |
---|---|---|---|
General Purpose | Balanced CPU, memory, and network performance | Most workloads | db.t3, db.m5, db.m6g |
Memory Optimized | High memory-to-CPU ratio | Memory-intensive applications | db.r5, db.r6g, db.x1e, db.u-6tb1.metal |
Compute Optimized | High CPU performance | Compute-intensive workloads | db.c5, db.c6g |
Storage Optimized | High storage throughput and low latency | High IOPS or large storage workloads | db.i3, db.d2 |
Bursty/Low-Cost | Low-cost, burstable performance | Small apps or dev/test environments | db.t2 |
Comparison of RDS Storage Options:
Storage Type | Use Case | Performance Characteristics | Max IOPS/Throughput | Max Storage Size |
---|---|---|---|---|
General Purpose (SSD) – gp3 | General-purpose workloads | Balanced price/performance with configurable IOPS and throughput | 16,000 IOPS and 1,000 MB/s throughput | 64 TB |
Provisioned IOPS (SSD) – io1 | High-performance, I/O-intensive workloads | Low-latency, high throughput for transaction-heavy workloads | 64,000 IOPS (dependent on instance size) | 16 TB |
Magnetic (Standard) | Low-budget, less demanding workloads | Lower performance and cost-effective but less predictable | 3,000 IOPS (typical) | 1 TB |
Aurora Storage | High-availability, scalable workloads | Automatically scales, high availability and durability | Scales with workload automatically | 64 TB |