Amazon RDS
Amazon Relational Database Service (RDS) makes it easy to set up, operate, and scale relational databases in the cloud. It handles routine database tasks like provisioning, patching, backup, recovery, and scaling.
Supported Engines
| Engine | Notes |
|---|---|
| PostgreSQL | Our preferred choice for most applications |
| MySQL | Widely supported, good community |
| MariaDB | MySQL-compatible, open-source focused |
| Oracle | Enterprise workloads, licensing options |
| SQL Server | Microsoft ecosystem integration |
| Aurora | AWS's cloud-native MySQL/PostgreSQL compatible |
Key Features
- Automated backups: Point-in-time recovery up to 35 days
- Multi-AZ deployments: Automatic failover for high availability
- Read replicas: Scale read workloads and provide disaster recovery
- Encryption: At-rest encryption via KMS
- Performance Insights: Database performance monitoring
RDS vs Aurora
| Aspect | RDS | Aurora |
|---|---|---|
| Performance | Standard | 3-5x MySQL, 2x PostgreSQL |
| Storage | EBS-based | Distributed, auto-scaling |
| Replication | Async | Low-latency, up to 15 replicas |
| Failover | 60-120 seconds | ~30 seconds |
| Cost | Lower baseline | Higher, but often better value |
What We Like
- Managed operations: No more late-night patching
- Reliability: Multi-AZ provides excellent uptime
- Familiar: Standard database engines, standard SQL
- Security: VPC isolation, encryption, IAM authentication
What We Don't Like
- Less control: Can't access the underlying OS
- Cost: More expensive than self-managed for large deployments
- Scaling limits: Vertical scaling requires downtime (Multi-AZ helps)
- Aurora migration: Moving from RDS to Aurora can be complex
When to Use RDS
RDS is ideal when:
- You need a traditional relational database
- You want managed operations without infrastructure concerns
- Your workload fits a single database instance (with read replicas if needed)
For massive scale or complex access patterns, consider DynamoDB. For analytics, consider Athena or Redshift.