RDS (Relational Database Service)
💡 Definition
Amazon RDS makes it easy to set up, operate, and scale a relational database in the cloud. It provides cost-efficient and resizable capacity while automating time-consuming administration tasks.
🔑 Key Concepts
- Managed Service: AWS handles patching, backups, failure detection, and recovery.
- Database Engines: Supports Amazon Aurora, PostgreSQL, MySQL, MariaDB, Oracle Database, and SQL Server.
- Multi-AZ Deployment: Synchronously replicates data to a standby instance in a different AZ for High Availability (Disaster Recovery).
- Read Replicas: Asynchronous copies of the database for read-heavy workloads (Performance).
⚙️ How it Works
- Choose Engine: Select the DB engine (e.g., MySQL).
- Configure Instance: Choose instance class (CPU/RAM) and storage type.
- Network: Place in a private subnet within a VPC.
- Connect: App servers connect via endpoint URL.
🎯 Use Cases
- Web and Mobile Apps: Storing user profiles, transactions, and inventory.
- Enterprise Applications: ERP, CRM systems requiring complex queries and transactions.
- E-commerce: Consistent transactional data.
💰 Pricing Model
- Instance Hours: Pay for the time the DB instance is running.
- Storage: Pay for GBs of storage provisioned.
- I/O Requests: Pay for input/output requests (for magnetic storage).
- Backup Storage: Free up to the size of your DB; pay for extra retention.
📝 Exam Tips (CLF-C02)
- RDS vs DynamoDB: RDS is for structured (SQL) data with complex relationships. DynamoDB is for unstructured (NoSQL) data needing single-digit ms latency.
- Automated Backups: Enabled by default (retention 1-35 days).
- Aurora: AWS-built compatible with MySQL/PostgreSQL, but 5x faster and highly durable.