Storage Auto Scaling
Cần setting Maximum Storage Threashold (max limit), auto modify storage trong trường hợp dung lượng còn lại <10 % dung lượng đã cấp, sảy ra ít nhất trong vòng 5 phút và hơn 6 giờ từ lần modify cuối cùng.
RDS proxy
Giống connection pool, khi application connect tới RDS sẽ thông qua proxy, qua đó làm giảm số lượng connection tới db
- Multi AZ
- Chỉ sử dụng trong VPC, không bao giờ public internet
- Giảm thời gian failover tới 66%
- Không support RDS Oracle
- Có thể dùng để yêu câu IAM authentication cho DB, lưu credential trong AWS Secret Manager
Read Replica
- Có thể tạo tới 15 Read Replica (MySQL, PostgreSQL) or 5 (Oracle, SQL Server) cần update application trỏ tới các endpoint của các Read Replica
- Có thể cùng AZ, cùng Region hoặc khác Region (sử dụng như Multi AZ, dùng cho trường hợp Disater Recovery, DR)
- Async replication từ main db
- Có thể promote thành 1 db riêng, không liên quan gì tới primary db nữa
- Không bị charge khi Read Replica cùng Region (cùng hoặc khác AZ), khác Region thì mất
- Mặc định không có backup
- Database engine version upgrade phụ thuộc vào primary db

Multi AZ
- Chỉ có thể sử dụng primary db, standby db được sync replication từ primary db
- 1 DNS name, tự động failover sang standby -> Không cần update gì trong application
- Backup từ standby instance
- Database engine version upgrade sảy ra ở primary db
- Khi chuyển đổi từ Single AZ sang Multi AZ, chỉ cần modify database, RDS sẽ tạo 1 snapshot rồi restore sang standby db trong AZ mới, sau đó thiết lập sync replication từ primary sang standby)
Amazon Aurora
- Support MySQL và PostgreSQL
- 5x performance so với RDS MySQL và 3x performance so với RDS PostgreSQL
- Storage auto scaling từ 10GB tới 128TB, bước tăng 10Gb
- Có thể tạo tới 15 Read Replica và độ trễ nhanh hơn MySQL (sub 10ms lag), có thể promote thành master trong vòng 30s khi master lỗi
- Failover nhanh hơn RDS MySQL, Enable tự động, không thể thay đổi
- Giá cao hơn (~20%)
- Data được replication ở storage, với 6 bản copy trong 3 AZ khác nhau, khi write cần 4/6 bản copy, khi read cần 3/6 bản copy
- 1 Instance có thể write (master)
- Restore data at any point of time without using backup
- Không thể disable backup
- Có thể tạo Auto Scaling Read Replica

Aurora DB Cluster
- Writer Endpoint: trỏ tới Master, để có quyền Write
- Reader endpoint: Hoạt động giống load balancer cho các Read Replica, phân chia request tới các Read Replica khác nhau, hoạt động ở level connection, không phải ở level statement.


Amazon Global Aurora
- Có thể sử dụng Aurora Global Database
- 1 Primary Region, có R/W
- Tạo tới 5 Secondary Region (chỉ có Read), replication lag dưới 1s
- Tạo tới 16 Read Replica trong mỗi Secondary Region
- RTO (Promote Region khác) nhỏ hơn 1 phút

Manual Backup
Backup toàn bộ instance, I/O có thể bị tạm dừng trong thời gian ngắn nếu deploy RDS trên single AZ, Multi AZ thì không ảnh hưởng do có thể backup từ Standby instance, trừ SQL Server vì sẽ backup từ primary.
Snapshot không hết hạn.
RDS Security
- Mặc định enable SSL/TLS connection giữa application và RDS
- Có thể dùng IAM Role để connect RDS
- Sử dụng Security Group cho RDS
- Có thể dùng SSH khi sử dụng RDS custom
- Encryption data (AES 256), tất cả snapshot sẽ đều được encrypt,enable khi tạo instance, và chỉ khi tạo. Khi enable rồi thì không disable được.
- Oracle và SQL Server có thể sử dụng TDE, nhưng có thể ảnh hưởng performance
- Có thể sử dụng KMS để quản lý encryption key.
- Read replica sẽ cùng kiểu encrypt/unencrypt với master, sử dụng chung key nếu cùng region với master, khác key nếu khác region.
- Không thể restore unencrypted backup/snapshot sang encrypted instance, nhưng có 1 cách đi vòng

Aurora Deployment Options



RDS Anti-Patterns and Alternatives

