RDS (Relational Database Service)

Tổng quan về Amazon RDS
- RDS là viết tắt của Relational Database Service
- Đây là service CSDL được quản lý, sử dụng SQL làm ngôn ngữ truy vấn.
- Service này cho phép bạn tạo cơ sở dữ liệu trên cloud và được AWS quản lý hoàn toàn.
- Các loại CSDL được hỗ trợ:
- Postgres
- MySQL
- MariaDB
- Oracle
- Microsoft SQL Server
- Aurora (CSDL độc quyền của AWS)

Ưu điểm của việc sử dụng RDS so với triển khai DB trên EC2
- RDS là một dịch vụ được quản lý (Managed Service):
- Cấp phát tài nguyên và cập nhật hệ điều hành tự động (Automated provisioning, OS patching)
- Backup liên tục và có khả năng khôi phục về một thời điểm cụ thể (Point in Time Restore)
- Có sẵn dashboard để giám sát (Monitoring dashboards)
- Hỗ trợ Read Replicas để cải thiện hiệu năng đọc
- Cấu hình Multi-AZ phục vụ cho Disaster Recovery
- Có thể cấu hình Maintenance Window để nâng cấp
- Hỗ trợ scaling cả theo chiều dọc và ngang (vertical and horizontal)
- Dữ liệu được lưu trữ trên EBS (gp2 hoặc io1)
- Nhược điểm: Không thể SSH vào instance
Storage Auto Scaling
- Giúp tăng dung lượng lưu trữ của RDS DB instance một cách động (dynamically)
- Khi RDS phát hiện bạn sắp hết dung lượng, nó sẽ tự động scale
- Không cần scale thủ công dung lượng database nữa
- Bạn cần cấu hình Maximum Storage Threshold (ngưỡng tối đa cho lưu trữ DB)
- Hệ thống sẽ tự động tăng dung lượng nếu:
- Dung lượng trống < 10% so với dung lượng đã cấp phát
- Tình trạng thiếu dung lượng kéo dài ít nhất 5 phút
- Đã trôi qua 6 giờ kể từ lần scale gần nhất
- Phù hợp với ứng dụng có workload khó dự đoán (unpredictable workloads)
- Hỗ trợ tất cả các RDS database engine (MariaDB, MySQL, PostgreSQL, SQL Server, Oracle)

RDS Read Replicas
Tổng quan
Amazon RDS Read Replica là một tính năng cho phép bạn tạo bản sao chỉ để đọc của một RDS instance (cơ sở dữ liệu gốc). Tính năng này được sử dụng chủ yếu để mở rộng khả năng xử lý các truy vấn đọc (read scalability), giảm tải cho DB chính, và hỗ trợ các mục đích như báo cáo, analytics hoặc tăng khả năng chịu tải khi truy cập để đọc cao.

- Hỗ trợ tối đa 15 Read Replicas
- Có thể triển khai trong cùng AZ, Cross-AZ hoặc Cross-Region
- Cơ chế replication là ASYNC (bất đồng bộ) ⇒ dữ liệu eventually consistent
- Các replica có thể được promote (nâng cấp) thành DB độc lập
- Ứng dụng cần update connection string để tận dụng read replica
Use case
- Có một DB production đang hoạt động bình thường
→ Đây là source DB đang nhận ghi (write) từ ứng dụng chính. - Bạn muốn chạy một ứng dụng báo cáo hoặc analytics riêng
→ Dạng workload đọc nhiều, truy vấn nặng nhưng không cần ghi. - Tạo một Read Replica để chuyển workload mới sang đó
→ Read Replica lấy dữ liệu từ DB chính qua replication bất đồng bộ (ASYNC). - Ứng dụng production không bị ảnh hưởng
→ Vì truy vấn nặng chạy ở replica nên giảm tải cho DB chính. - Read Replica chỉ dùng cho truy vấn dạng
SELECT
→ Không đượcINSERT,UPDATE,DELETE. Vì nó không phải DB chính.

Network cost
- Replication trong cùng region (dù khác AZ) thì miễn phí.
- Replication giữa region khác nhau thì tính phí cao.

RDS Multi-AZ
Đây là một cơ chế triển khai có 2 instance DB (primary + standby) nằm ở 2 Availability Zones khác nhau, với replication đồng bộ (SYNC) giữa chúng.

- Replication đồng bộ (SYNC replication)
- Chỉ sử dụng một tên DNS – ứng dụng tự động chuyển sang instance standby khi xảy ra failover
- Tăng độ sẵn sàng (availability)
- Nếu instance chính gặp sự cố (AZ down, instance lỗi, storage/network failure…), failover tự động xảy ra:
- Standby DB instance trở thành primary mới.
- DNS trỏ về instance mới một cách tự động, không cần chỉnh sửa app code.
- Không dùng để mở rộng hệ thống (scaling)
- Lưu ý: Read Replica cũng có thể được cấu hình dưới dạng Multi-AZ để phục vụ mục tiêu Disaster Recovery (khôi phục thảm họa)
Từ Single-AZ sang Multi-AZ
- Thao tác không downtime (không cần dừng CSDL)
- Chỉ cần nhấn “modify” đối với database
- Những bước xử lý nội bộ sẽ diễn ra như sau:
- Tạo một snapshot của DB hiện tại (nằm ở AZ cũ — ví dụ
us-east-1a) - Khôi phục snapshot này tại một Availability Zone khác (ví dụ
us-east-1b) - Thiết lập replication đồng bộ (SYNC replication) từ instance chính sang instance standby mới này
- Tạo một snapshot của DB hiện tại (nằm ở AZ cũ — ví dụ

- Đây là quá trình chuyển đổi từ single-AZ deployment sang Multi-AZ (High Availability) mà không gây gián đoạn cho ứng dụng.
- AWS dùng snapshot để tạo bản sao standby và sau đó cấu hình replication đồng bộ.
- Sau khi cấu hình xong, hệ thống sẵn sàng failover tự động nếu AZ chính gặp sự cố.
RDS Custom

- Quản lý database Oracle và Microsoft SQL Server với khả năng tuỳ chỉnh hệ điều hành (OS) và database
- RDS: Tự động hóa việc cài đặt, vận hành và scale database trong AWS
- Custom: Cung cấp quyền truy cập vào database và hệ điều hành bên dưới để bạn có thể:
- Cấu hình các thiết lập
- Cài đặt các bản vá (patch)
- Kích hoạt các tính năng gốc của DBMS
- Truy cập trực tiếp vào EC2 Instance thông qua SSH hoặc SSM Session Manager
- Tắt chế độ Automation để thực hiện tuỳ chỉnh — nên snapshot DB trước khi thao tác
- So sánh RDS và RDS Custom:
- RDS: Cả database và OS đều được AWS quản lý hoàn toàn
- RDS Custom: Bạn có toàn quyền admin đối với OS và database bên dưới
Bạn thấy bài này thế nào?