Amazon RDS: Dịch vụ cơ sở dữ liệu quan hệ được quản lý trên AWS
Tìm hiểu Amazon RDS qua các khái niệm cốt lõi: từ instance, storage, backup đến tính sẵn sàng cao và bảo mật.
1. RDS là gì?
Amazon RDS (Relational Database Service) là dịch vụ cho phép bạn vận hành cơ sở dữ liệu quan hệ trên AWS mà không cần tự quản lý máy chủ, cài đặt phần mềm hay cấu hình sao lưu. AWS đảm nhận toàn bộ phần vận hành — bạn chỉ cần tập trung vào dữ liệu và ứng dụng.
RDS hỗ trợ nhiều engine phổ biến:
- Amazon Aurora (tối ưu cho AWS, hiệu năng cao)
- MySQL
- PostgreSQL
- MariaDB
- Oracle
- Microsoft SQL Server
Với RDS, bạn có thể tạo cơ sở dữ liệu chỉ trong vài phút, mở rộng dung lượng tự động, bật sao lưu định kỳ và thiết lập dự phòng — tất cả qua giao diện AWS Console hoặc API.

2. Các khái niệm cốt lõi
2.1. DB Instance
DB Instance là đơn vị cơ bản của RDS — tương đương một máy chủ cơ sở dữ liệu đang chạy. Mỗi instance có:
- Engine (MySQL, PostgreSQL, v.v.)
- Phiên bản (version)
- Cấu hình CPU/RAM (db.t4g.micro, db.m6g.large, v.v.)
- Dung lượng lưu trữ (từ 20 GB đến 64 TB)
- Endpoint (địa chỉ kết nối, ví dụ: mydb.123456789012.ap-southeast-1.rds.amazonaws.com)
2.2. Storage và I/O
RDS sử dụng EBS (Elastic Block Store) làm lớp lưu trữ, với ba loại chính:
- General Purpose (SSD): Phù hợp với hầu hết ứng dụng — cân bằng giữa hiệu năng và chi phí.
- Provisioned IOPS (SSD): Dành cho workload yêu cầu tốc độ I/O cao và ổn định, như ERP hoặc hệ thống tài chính.
- Magnetic: Đã lỗi thời — không khuyến khích sử dụng.
Dung lượng lưu trữ có thể tự động mở rộng nếu bật tính năng Storage Autoscaling.
2.3. Backup và Point-in-Time Recovery
RDS cung cấp hai cơ chế sao lưu chính:
- Snapshots: Bản sao thủ công hoặc tự động (khi xóa instance). Có thể dùng để khôi phục thành một instance mới.
- Automated backups: Tự động sao lưu hàng ngày và ghi transaction log mỗi 5 phút. Cho phép khôi phục cơ sở dữ liệu về bất kỳ thời điểm nào trong khoảng lưu giữ (mặc định 7 ngày, tối đa 35 ngày) — gọi là Point-in-Time Recovery.
Ví dụ: Nếu bạn xóa nhầm bảng lúc 10:15 AM, bạn có thể khôi phục cơ sở dữ liệu về trạng thái lúc 10:10 AM.
3. High Availability với Multi-AZ
Khi bật Multi-AZ, RDS tự động tạo một bản sao đồng bộ (standby) ở Availability Zone khác trong cùng vùng (region).
Cơ chế hoạt động:
- Ứng dụng luôn kết nối đến primary instance.
- Nếu primary gặp sự cố (mất điện, lỗi phần cứng), RDS sẽ tự động chuyển sang standby trong vòng 60–120 giây.
- Quá trình này diễn ra trong suốt với ứng dụng — chỉ bị gián đoạn ngắn.
Lưu ý: Multi-AZ không dùng để mở rộng khả năng đọc — standby chỉ hoạt động khi failover. Để tăng hiệu suất đọc, hãy sử dụng Read Replicas.
4. Read Replicas — mở rộng khả năng đọc
Read Replica là bản sao bất đồng bộ của cơ sở dữ liệu chính, dùng để giảm tải cho primary khi có nhiều truy vấn đọc (SELECT).
Đặc điểm:
- Có thể tạo trong cùng region hoặc khác region.
- Có endpoint riêng — ứng dụng cần kết nối trực tiếp để đọc dữ liệu.
- Không hỗ trợ ghi, chỉ đọc.
- Có độ trễ vài giây so với primary.
Phù hợp cho các mục đích như báo cáo, phân tích hoặc dashboard — nơi không yêu cầu dữ liệu thời gian thực tuyệt đối.
5. Bảo mật trong RDS
RDS tuân theo mô hình bảo mật nhiều lớp:
5.1. Mạng (VPC và Security Group)
Mỗi DB instance chạy trong một VPC riêng, thường nằm trong private subnet — không có public IP. Ứng dụng (EC2, ECS) sẽ kết nối qua mạng nội bộ.
Security Group cho RDS chỉ nên mở port database (3306 cho MySQL, 5432 cho PostgreSQL) cho các nguồn tin cậy, chẳng hạn security group của EC2.
5.2. Xác thực và mã hóa
- RDS hỗ trợ tạo user/password khi khởi tạo instance.
- Dữ liệu được tự động mã hóa khi lưu trữ nếu bật Encryption at rest (sử dụng AWS KMS).
- Nên bật SSL/TLS để mã hóa dữ liệu khi truyền — ứng dụng cần kết nối với tham số SSL.
5.3. IAM Database Authentication (tùy engine)
Với MySQL và PostgreSQL, bạn có thể sử dụng token xác thực tạm thời từ IAM thay vì mật khẩu, giúp tăng cường bảo mật và dễ quản lý hơn.
6. Best practices khi sử dụng RDS
- Luôn đặt RDS trong private subnet — không công khai ra Internet.
- Bật Multi-AZ cho môi trường production.
- Sử dụng Parameter Group để tinh chỉnh cấu hình engine (ví dụ: max_connections).
- Dùng Option Group để bật các tính năng bổ sung (như Timezone, SQL Server Agent).
- Giám sát hiệu năng qua CloudWatch (CPU, FreeStorage, ReadIOPS…).
- Đặt cảnh báo khi dung lượng lưu trữ còn trống thấp.
7. Kết luận
Amazon RDS không chỉ là dịch vụ chạy cơ sở dữ liệu — mà là một giải pháp vận hành chuyên nghiệp, giúp bạn đạt được:
- Độ tin cậy cao (Multi-AZ, sao lưu tự động)
- Khả năng mở rộng linh hoạt (autoscaling, read replicas)
- Bảo mật toàn diện (VPC, KMS, SSL, IAM)
- Tiết kiệm thời gian — không cần quản trị viên DBA để xử lý patch, backup hay failover
Hãy bắt đầu với một instance đơn giản (db.t4g.micro, MySQL), bật automated backup và Multi-AZ — bạn sẽ có một hệ thống cơ sở dữ liệu sẵn sàng cho production chỉ trong vài phút.
Trong DevOps, dữ liệu là tài sản quý giá nhất — và RDS chính là người bảo vệ đáng tin cậy cho tài sản đó.