RDS là gì?
Amazon Relational Database Service (RDS) là dịch vụ cơ sở dữ liệu quan hệ được quản lý hoàn toàn (fully managed) của AWS. RDS giúp bạn thiết lập, vận hành và mở rộng database trên cloud mà không cần lo về việc quản lý phần cứng, cài đặt phần mềm, patching hay backup.
Use Cases phổ biến
- Web & Mobile Applications: Backend database cho ứng dụng web, mobile với MySQL/PostgreSQL
- E-commerce: Quản lý sản phẩm, đơn hàng, khách hàng với transaction support
- SaaS Applications: Multi-tenant database cho các ứng dụng SaaS
- ERP & CRM: Chạy Oracle hoặc SQL Server cho enterprise applications
- Analytics: PostgreSQL với extensions cho data warehousing nhỏ
- Content Management: WordPress, Drupal, Joomla với MySQL/MariaDB backend
- Gaming: Lưu trữ game state, leaderboards, player profiles
- Financial Services: Transaction processing với ACID compliance
So sánh RDS vs Self-Managed DB trên EC2
- AWS quản lý OS, patching, backup tự động
- Multi-AZ failover tự động trong ~60 giây
- Monitoring tích hợp (CloudWatch, Performance Insights)
- Encryption at rest chỉ cần 1 click
- Point-in-Time Recovery (PITR) tự động
- Storage auto-scaling không downtime
- Read Replicas tạo trong vài phút
- Automated minor version upgrades
- Bạn phải tự quản lý OS, patching, security
- Tự cấu hình replication, failover phức tạp
- Tự thiết lập monitoring, alerting
- Tự quản lý encryption keys và certificates
- Tự viết script backup, test restore
- Tự resize EBS volume, có thể cần downtime
- Toàn quyền kiểm soát OS và DB config
- Có thể cài extensions/plugins tùy ý
| Tiêu chí | Amazon RDS | DB trên EC2 |
|---|---|---|
| Quản lý OS | AWS quản lý | Bạn quản lý |
| Patching DB | Tự động / Scheduled | Thủ công |
| Backup | Automated + PITR | Tự thiết lập |
| High Availability | Multi-AZ 1 click | Tự cấu hình |
| Scaling | Vài click / API | Phức tạp hơn |
| SSH Access | Không có | Toàn quyền |
| Custom Extensions | Hạn chế | Không giới hạn |
| Chi phí vận hành | Thấp (ít nhân sự) | Cao (cần DBA) |
Kiến trúc RDS
Amazon RDS được xây dựng trên kiến trúc nhiều lớp, bao gồm DB Instance, DB Subnet Group, Parameter Group và Option Group. Hiểu rõ các thành phần này giúp bạn thiết kế và vận hành database hiệu quả.
Các thành phần cốt lõi
DB Instance
- Đơn vị cơ bản của RDS — một môi trường database cô lập chạy trên cloud
- Mỗi DB instance chạy một database engine duy nhất (MySQL, PostgreSQL, v.v.)
- Instance class xác định CPU, RAM, network — ví dụ:
db.r6g.2xlarge(8 vCPU, 64 GB RAM) - Có thể chứa nhiều databases do user tạo (trừ Oracle Single-Tenant và SQL Server)
- Mỗi instance có một endpoint (DNS name) duy nhất để kết nối
- Tối đa 40 DB instances mỗi account mỗi region (có thể request tăng)
DB Instance Classes
| Loại | Prefix | Đặc điểm | Use Case |
|---|---|---|---|
| Standard | db.m6g, db.m7g |
Cân bằng CPU/RAM/Network | Workload đa dụng, web apps |
| Memory Optimized | db.r6g, db.r7g, db.x2g |
RAM cao, phù hợp query nặng | Database lớn, analytics, caching |
| Burstable | db.t3, db.t4g |
Baseline CPU + burst credits | Dev/test, workload nhỏ, không đều |
DB Subnet Group
- Tập hợp các subnets (thường là private subnets) trong VPC mà RDS có thể sử dụng
- Phải chứa subnets ở ít nhất 2 Availability Zones khác nhau
- RDS sẽ chọn subnet trong AZ phù hợp khi tạo instance hoặc failover
- Khuyến nghị: tạo subnet group với subnets ở tất cả AZs trong region
Parameter Group
- Container chứa các cấu hình engine (tương đương file
my.cnfcho MySQL hoặcpostgresql.conf) - Có default parameter group (không thể sửa) và custom parameter group (có thể sửa)
- Chia thành 2 loại: DB Parameter Group (cấu hình instance) và DB Cluster Parameter Group (cấu hình cluster — Aurora)
- Một số parameter thay đổi cần reboot instance (static), một số áp dụng ngay (dynamic)
- Ví dụ parameters:
max_connections,innodb_buffer_pool_size,shared_buffers
Option Group
- Chứa các tính năng bổ sung (optional features) cho database engine
- Chủ yếu dùng cho Oracle (Oracle Enterprise Manager, TDE, APEX) và SQL Server (TDE, Audit)
- MySQL/PostgreSQL/MariaDB có ít options hơn
- Mỗi DB instance được gán một option group
Endpoint & Kết nối
# Endpoint format db-instance-identifier.random-string.region.rds.amazonaws.com:port # Ví dụ MySQL endpoint mydb-prod.c9abcdef12gh.ap-southeast-1.rds.amazonaws.com:3306 # Ví dụ PostgreSQL endpoint mydb-analytics.c9abcdef12gh.us-east-1.rds.amazonaws.com:5432 # Kết nối bằng mysql client mysql -h mydb-prod.c9abcdef12gh.ap-southeast-1.rds.amazonaws.com \ -P 3306 -u admin -p # Kết nối bằng psql psql -h mydb-analytics.c9abcdef12gh.us-east-1.rds.amazonaws.com \ -p 5432 -U admin -d mydb
Supported Engines
Amazon RDS hỗ trợ 6 database engines phổ biến nhất. Mỗi engine có đặc điểm riêng, phù hợp với từng use case khác nhau. Việc chọn đúng engine là quyết định quan trọng nhất khi thiết kế hệ thống.
Bảng so sánh chi tiết các Engine
| Tiêu chí | MySQL | PostgreSQL | MariaDB | Oracle | SQL Server | Aurora |
|---|---|---|---|---|---|---|
| License | GPL (Free) | PostgreSQL (Free) | GPL (Free) | LI / BYOL | LI | AWS Proprietary |
| Max Storage | 64 TB | 64 TB | 64 TB | 64 TB | 16 TB | 128 TB (auto) |
| Read Replicas | Tối đa 15 | Tối đa 15 | Tối đa 15 | Tối đa 5 (Oracle EE) | Tối đa 5 | Tối đa 15 |
| Multi-AZ | Có | Có | Có | Có | Có (mirroring) | Mặc định |
| IAM Auth | Có | Có | Có | Không | Không | Có |
| Serverless | Không | Không | Không | Không | Không | Serverless v2 |
| Global Database | Không | Không | Không | Không | Không | Có |
| Default Port | 3306 | 5432 | 3306 | 1521 | 1433 | 3306 / 5432 |
| Use Case chính | Web apps, CMS | Analytics, GIS, complex queries | Thay thế MySQL | Enterprise, ERP | .NET apps, BI | High-perf, scale |
Chọn Engine nào?
- Mới bắt đầu / Web app: MySQL hoặc PostgreSQL — miễn phí license, cộng đồng lớn
- Cần hiệu năng cao + auto-scaling: Aurora (MySQL hoặc PostgreSQL compatible)
- Ứng dụng .NET / Microsoft stack: SQL Server
- Enterprise legacy / ERP (SAP, PeopleSoft): Oracle
- Cần JSON, GIS, full-text search nâng cao: PostgreSQL
- Workload không đều, muốn tiết kiệm: Aurora Serverless v2
- Migrate từ MySQL, muốn thêm tính năng: MariaDB
Version Policy
AWS quản lý vòng đời phiên bản database engine theo chính sách rõ ràng:
- Major version: Upgrade thủ công (ví dụ: MySQL 5.7 → 8.0). Cần test kỹ trước khi upgrade.
- Minor version: Có thể bật
auto_minor_version_upgradeđể AWS tự động upgrade trong maintenance window. - End of Life: AWS thông báo trước 12 tháng khi một major version sắp hết hỗ trợ. Sau deadline, AWS sẽ tự động upgrade.
- Extended Support: Từ 2024, RDS cung cấp Extended Support cho các phiên bản cũ với phí bổ sung.