Chương 07: Database Services
Tổng Quan
AWS cung cấp nhiều dịch vụ database cho các use case khác nhau. Kỳ thi SAA tập trung vào việc bạn chọn đúng database cho từng tình huống.
1. Amazon RDS (Relational Database Service)
1.1 Tổng quan
- Managed service: AWS quản lý OS patching, backup, monitoring.
- Hỗ trợ: MySQL, PostgreSQL, MariaDB, Oracle, SQL Server.
- KHÔNG thể SSH vào RDS instance.
1.2 Multi-AZ (High Availability)
- Tạo Standby replica ở AZ khác (cùng Region).
- Synchronous replication → Standby luôn cập nhật.
- Failover tự động khi Primary gặp sự cố → DNS tự chuyển sang Standby.
- KHÔNG dùng để read → chỉ phục vụ failover.
1.3 Read Replicas (Scalability)
- Tạo bản sao đọc của database (tối đa 15 replicas).
- Asynchronous replication → có thể có độ trễ nhẹ.
- Có thể đặt cross-Region.
- Use case: Ứng dụng đọc nhiều (reporting, analytics).
- Read Replica có thể promote thành DB độc lập.
| Multi-AZ | Read Replica | |
|---|---|---|
| Mục đích | HA (failover) | Scalability (đọc) |
| Replication | Synchronous | Asynchronous |
| Cross-Region | Không | Có |
| Dùng để read | Không | Có |
1.4 RDS Backup & Restore
- Automated Backup: Retention 1-35 ngày. Point-in-time recovery.
- Manual Snapshot: Giữ vĩnh viễn cho đến khi bạn xóa.
- Restore tạo DB mới (không restore vào DB cũ).
1.5 RDS Encryption
- Encryption at rest bằng KMS (AES-256). Phải bật khi tạo DB.
- DB chưa mã hóa → Snapshot → Copy with encryption → Restore.
1.6 RDS Proxy
- Connection pooling — giảm số kết nối trực tiếp đến DB.
- Cải thiện failover time (giảm 66%).
- Phù hợp cho Lambda (nhiều connections ngắn hạn).
2. Amazon Aurora
2.1 Đặc điểm
- Tương thích MySQL & PostgreSQL (5x faster MySQL, 3x faster PostgreSQL).
- Storage tự động scale từ 10GB → 128TB.
- 6 copies data trên 3 AZs (cực kỳ durable).
- 1 Writer endpoint + 1 Reader endpoint (load balance tự động giữa read replicas).
- Tối đa 15 Read Replicas với failover < 30 giây.
2.2 Aurora Serverless
- Tự động scale compute theo nhu cầu (0 → max ACU).
- Trả tiền theo giây sử dụng.
- Phù hợp: workload không dự đoán được, dev/test, traffic ít.
2.3 Aurora Global Database
- 1 Primary Region (read/write) + tối đa 5 Secondary Regions (read only).
- Replication lag < 1 giây.
- Promote secondary Region thành Primary trong < 1 phút (DR).
2.4 Aurora Multi-Master
- Tất cả nodes đều write được → High Availability cho write operations.
3. Amazon DynamoDB
3.1 Đặc điểm
- NoSQL database (key-value & document).
- Serverless — không cần quản lý server.
- Latency single-digit milliseconds.
- Tự động scale.
3.2 Capacity Modes
| Mode | Đặc điểm | Use case |
|---|---|---|
| Provisioned | Chỉ định RCU/WCU trước, auto scaling optional | Traffic dự đoán được |
| On-Demand | Trả theo request, không cần plan | Traffic không dự đoán được |
3.3 DynamoDB Accelerator (DAX)
- In-memory cache cho DynamoDB.
- Latency giảm từ milliseconds → microseconds.
- Không cần thay đổi application code.
3.4 DynamoDB Global Tables
- Multi-Region, multi-active replication.
- Read/Write ở bất kỳ Region nào.
- Yêu cầu: bật DynamoDB Streams.
3.5 DynamoDB Streams
- Ghi lại mọi thay đổi (insert, update, delete) → trigger Lambda.
- Use case: real-time processing, cross-region replication.
4. Amazon ElastiCache
4.1 Mục đích
- In-memory cache (Redis hoặc Memcached) giúp giảm tải DB.
- Latency cực thấp (sub-millisecond).
4.2 Redis vs Memcached
| Redis | Memcached | |
|---|---|---|
| Multi-AZ | ✅ (Cluster Mode) | ❌ |
| Backup/Restore | ✅ | ❌ |
| Data types | Phong phú (strings, lists, sets, sorted sets) | Chỉ key-value đơn giản |
| Replication | ✅ Read Replicas | ❌ |
| Use case | Session store, leaderboard, pub/sub | Simple caching, multi-threaded |
💡 Exam Tip: Cần backup, replication, complex data → Redis. Cần đơn giản, multi-threaded → Memcached.
5. Các Database Khác (Biết Tên & Use Case)
| Database | Loại | Use case |
|---|---|---|
| Redshift | Data Warehouse (SQL) | Analytics, OLAP, BI reporting |
| Neptune | Graph Database | Social Network, recommendation engine |
| DocumentDB | Document DB (MongoDB compatible) | JSON data, content management |
| Keyspaces | Cassandra compatible | IoT, time-series data |
| QLDB | Ledger Database | Immutable, cryptographically verifiable (tài chính) |
| Timestream | Time-series DB | IoT metrics, monitoring data |
Exam Tips 💡
- RDS Multi-AZ = HA (failover). Read Replica = Scalability (đọc).
- Aurora khi cần performance RDS cao hơn + auto-scaling storage.
- DynamoDB khi cần serverless NoSQL, single-digit ms latency.
- DAX cho DynamoDB (microsecond cache). ElastiCache cho RDS (in-memory cache).
- Aurora Global Database cho multi-region DR (< 1 giây lag).
- Redis > Memcached trong hầu hết use cases (trừ khi cần multi-threaded đơn giản).
- QLDB khi đề nói "immutable", "ledger", "verifiable". Neptune khi nói "graph", "social network".
Câu Hỏi Ôn Tập 📝
Câu 1: Ứng dụng cần database relational với tự động failover, performance cao, storage tự động scale. Chọn gì?
Xem đáp án
Amazon Aurora. Multi-AZ failover < 30 giây, 5x faster MySQL, storage auto-scale 10GB-128TB, 6 copies data trên 3 AZs.
Câu 2: DynamoDB table bị bottleneck khi đọc. Cách cải thiện performance tốt nhất mà không cần thay đổi code?
Xem đáp án
DynamoDB Accelerator (DAX). In-memory cache tích hợp, giảm latency xuống microseconds, không cần thay đổi application code.
Câu 3: Cần lưu session data cho web app, yêu cầu sub-millisecond latency và hỗ trợ data replication. Chọn ElastiCache Redis hay Memcached?
Xem đáp án
ElastiCache Redis. Hỗ trợ replication (Multi-AZ), backup/restore, và nhiều data types phong phú. Memcached không hỗ trợ replication.