ℹ️ Information: Amazon Relational Database Service (Amazon RDS) là dịch vụ quản lý cho phép bạn triển khai và quản lý cơ sở dữ liệu quan hệ trên AWS. Amazon RDS được thiết kế cho xử lý giao dịch trực tuyến (OLTP) và phù hợp nhất với các yêu cầu lưu trữ dữ liệu có cấu trúc và quan hệ.
Amazon RDS cung cấp các lợi ích chính:
Amazon RDS hỗ trợ các hệ thống cơ sở dữ liệu sau:
⚠️ Warning: RDS là dịch vụ được quản lý và bạn không có quyền truy cập vào máy chủ EC2 cơ bản (không có quyền truy cập root). Ngoại lệ là Amazon RDS Custom, cho phép truy cập vào hệ điều hành cơ bản, nhưng chỉ có sẵn cho một số DB Engine giới hạn.
Dịch vụ quản lý Amazon RDS bao gồm:
ℹ️ Information: DB instance là môi trường cơ sở dữ liệu trong đám mây với tài nguyên tính toán và lưu trữ mà bạn chỉ định. DB instances được truy cập thông qua các điểm cuối (endpoints) có thể được truy xuất từ AWS Management Console, API DescribeDBInstances hoặc lệnh describe-db-instances.
💡 Pro Tip: Mặc định, khách hàng được phép có tối đa 40 DB instances Amazon RDS (chỉ có 10 trong số này có thể là Oracle hoặc MS SQL trừ khi bạn có giấy phép riêng).
Cửa sổ bảo trì được cấu hình để cho phép thực hiện các sửa đổi DB instances như mở rộng và cài đặt phần mềm vá. Bạn có thể xác định cửa sổ bảo trì hoặc AWS sẽ lên lịch cho một cửa sổ 30 phút.
ℹ️ Information: Xác thực tích hợp với Windows chỉ hoạt động với SQL khi sử dụng các miền được tạo bằng AWS Directory Service - cần thiết lập mối tin tưởng với thư mục AD trên nơi làm việc truyền thống.
Dịch vụ lưu trữ dữ liệu | Khi nào sử dụng |
---|---|
Cơ sở dữ liệu trên EC2 | Kiểm soát tối đa về cơ sở dữ liệu, ưa chuộng DB không có sẵn trên RDS |
Amazon RDS | Cần cơ sở dữ liệu quan hệ truyền thống cho OLTP, dữ liệu có cấu trúc tốt, ứng dụng hiện có yêu cầu RDBMS |
Amazon DynamoDB | Dữ liệu cặp tên/giá trị, cấu trúc không dự đoán được, hiệu suất trong bộ nhớ với tính bền vững, nhu cầu I/O cao |
Amazon RedShift | Khối lượng lớn dữ liệu, chủ yếu là tải phân tích (OLAP) |
Amazon Neptune | Mối quan hệ giữa các đối tượng là một phần quan trọng của giá trị dữ liệu |
Amazon ElastiCache | Lưu trữ tạm thời nhanh cho lượng dữ liệu nhỏ, dữ liệu biến động cao |
Amazon S3 | Đối tượng nhị phân lớn (BLOBs), các trang web tĩnh |
💡 Pro Tip: Nếu trường hợp sử dụng của bạn không được hỗ trợ trên RDS, bạn có thể chạy cơ sở dữ liệu trên Amazon EC2 với kiểm soát đầy đủ và tính linh hoạt tối đa, nhưng phải tự quản lý mọi thứ như sao lưu, dự phòng, cập nhật và mở rộng.
Yêu cầu | Dịch vụ thích hợp hơn |
---|---|
Nhiều đối tượng nhị phân lớn (BLOBs) | Amazon S3 |
Khả năng tự động mở rộng | Amazon DynamoDB |
Cấu trúc dữ liệu tên/giá trị | Amazon DynamoDB |
Dữ liệu không có cấu trúc hoặc không dự đoán được | Amazon DynamoDB |
Các nền tảng cơ sở dữ liệu khác như IBM DB2 hoặc SAP HANA | Amazon EC2 |
Kiểm soát hoàn toàn trên cơ sở dữ liệu | Amazon EC2 |
🔒 Security Note: Bạn có thể mã hóa các DB instances và bản chụp Amazon RDS khi nghỉ bằng cách bật tùy chọn mã hóa. Mã hóa khi nghỉ được hỗ trợ cho tất cả các loại DB và sử dụng AWS KMS.
Khi sử dụng mã hóa khi nghỉ, các yếu tố sau cũng được mã hóa:
⚠️ Warning: Bạn không thể mã hóa một DB hiện có. Bạn cần tạo một bản chụp, sao chép nó, mã hóa bản sao, sau đó xây dựng một DB đã được mã hóa từ bản chụp.
ℹ️ Information: RDS hỗ trợ mã hóa SSL giữa các ứng dụng và DB instances RDS. RDS tạo chứng chỉ cho instance.
Nhóm DB Subnet là tập hợp các subnet (thường là riêng tư) mà bạn tạo trong VPC và chỉ định cho DB instances.
💡 Pro Tip: Mỗi nhóm DB Subnet nên có các subnet trong ít nhất hai AZ. Khuyến nghị cấu hình nhóm subnet với các subnet trong mỗi AZ (ngay cả cho các instance độc lập).
Trong quá trình tạo instance RDS, bạn chọn nhóm DB Subnet và AZ để đặt instance RDS DB. Bạn không thể chọn địa chỉ IP trong subnet được cấp.
AWS tính phí cho:
ℹ️ Information: Lưu trữ sao lưu cho sao lưu tự động RDS miễn phí đến kích thước ổ EBS đã cung cấp. Tuy nhiên, AWS sao chép dữ liệu qua nhiều AZ nên bạn phải trả tiền cho không gian lưu trữ thêm trên S3.
Đối với Multi-AZ, bạn phải trả tiền cho:
💡 Pro Tip: Đối với Multi-AZ, bạn không phải trả phí cho truyền dữ liệu DB trong quá trình sao chép từ instance chính sang trạng thái đứng.
Giấy phép Oracle và Microsoft SQL được bao gồm, hoặc bạn có thể tự mang (BYO). Giá ứng dụng dự phòng và giá ứng dụng dự phòng có sẵn.
⚠️ Warning: Bạn chỉ có thể mở rộng RDS lên (tính toán và lưu trữ). Bạn không thể giảm lưu trữ đã cấp cho instance RDS.
Bạn có thể mở rộng lưu trữ và thay đổi loại lưu trữ cho tất cả các DB engine ngoại trừ MS SQL. Đối với MS SQL, giải pháp tạm thời là tạo instance mới từ bản chụp với cấu hình mới.
ℹ️ Information: Việc mở rộng lưu trữ có thể xảy ra trong khi instance RDS đang chạy mà không gây sự cố, tuy nhiên có thể có sự suy giảm hiệu suất. Việc mở rộng tính toán sẽ gây thời gian ngừng hoạt động.
Tất cả các loại DB RDS hỗ trợ kích thước DB tối đa là 64 TiB ngoại trừ Microsoft SQL Server (16 TiB).
Amazon RDS sử dụng ổ đĩa EBS (không sử dụng lưu trữ instance) cho lưu trữ DB và log. Có ba loại lưu trữ:
Mục đích chung (SSD - gp2):
Provisioned IOPS (SSD):
DB Engine | Phạm vi IOPS được cấp | Phạm vi kích thước lưu trữ |
---|---|---|
MariaDB | 1.000-80.000 IOPS | 100 GiB-64TiB |
SQL Server | 1.000-64.000 IOPS | 20 GiB-16TiB |
MySQL | 1.000-80.000 IOPS | 100 GiB-64TiB |
Oracle | 1.000-256.000 IOPS | 100 GiB-64TiB |
PostgreSQL | 1.000-80.000 IOPS | 100 GiB-64TiB |
Từ tính (Magnetic):
Multi-AZ và Read Replicas được sử dụng để đảm bảo tính sẵn có cao, khả năng chịu lỗi và mở rộng hiệu suất.
Multi-AZ Deployments | Read Replicas |
---|---|
Sao chép đồng bộ - bền vững cao | Sao chép không đồng bộ - mở rộng cao |
Chỉ có DB trên primary instance hoạt động | Tất cả read replicas đều truy cập được và dùng để mở rộng đọc |
Sao lưu tự động từ standby | Không có sao lưu được cấu hình mặc định |
Luôn bao gồm hai vùng khả dụng trong một Region | Có thể nằm trong một AZ, Cross-AZ hoặc Cross-Region |
DB instances được nâng cấp trên primary | Nâng cấp DB instances độc lập với instance nguồn |
Tự động chuyển đổi sang standby khi phát hiện sự cố | Có thể được thăng cấp thủ công thành DB instance độc lập |
ℹ️ Information: Multi-AZ RDS tạo bản sao ở AZ khác và sao chép đồng bộ đến đó (chỉ dành cho DR). AWS khuyên sử dụng lưu trữ provisioned IOPS cho DB instances RDS Multi-AZ.
Mỗi AZ chạy trên cơ sở hạ tầng riêng biệt, độc lập về vật lý và được thiết kế để đảm bảo tính tin cậy cao. Bạn không thể chọn AZ nào sẽ được chọn cho bản sao DB dự phòng.
Failover có thể được kích hoạt trong các trường hợp:
💡 Pro Tip: Trong quá trình failover, RDS tự động cập nhật cấu hình (bao gồm điểm cuối DNS) để sử dụng nút thứ hai. Tùy thuộc vào lớp instance, có thể mất từ 1 đến vài phút để failover. Nên triển khai việc thử lại kết nối DB trong ứng dụng và sử dụng điểm cuối thay vì địa chỉ IP.
⚠️ Warning: Bản sao DB thứ cấp trong cấu hình Multi-AZ không thể được sử dụng như nút đọc độc lập. Không tính phí cho việc truyền dữ liệu giữa các instance RDS chính và dự phòng.
Các nâng cấp hệ thống (cập nhật hệ điều hành, thay đổi kích thước DB Instance) được áp dụng trước tiên trên replicas trước khi failover và sửa đổi DB Instance khác. Trong cấu hình Multi-AZ, các bản snapshot và sao lưu tự động được thực hiện trên replicas để tránh tạm dừng I/O trên DB instance chính.
ℹ️ Information: Amazon RDS Read Replicas cho MySQL, MariaDB, PostgreSQL và Oracle hỗ trợ triển khai Multi-AZ. Kết hợp Read Replicas với Multi-AZ cho phép xây dựng chiến lược phục hồi thảm họa chắc chắn và đơn giản hóa quá trình nâng cấp DB engine.
Read snapshot ở AZ khác so với DB nguồn có thể được sử dụng như DB dự phòng và được thúc đẩy trở thành DB sản xuất mới khi có sự cố vùng. Điều này cho phép mở rộng khả năng đọc đồng thời cũng như có Multi-AZ cho DR.
ℹ️ Information: Bạn có thể nâng cấp thủ công DB instance lên phiên bản DB engine mới từ AWS Console. Mặc định, nâng cấp có hiệu lực trong cửa sổ bảo trì tiếp theo, nhưng có thể buộc nâng cấp ngay lập tức.
⚠️ Warning: Trong triển khai Multi-AZ, nâng cấp phiên bản được thực hiện trên cả primary và replicas cùng lúc, gây sự cố cho cả hai DB Instance. Đảm bảo SG và NACL cho phép máy chủ ứng dụng giao tiếp với cả primary và replicas.
ℹ️ Information: Read Replicas được sử dụng cho DB có tải đọc nhiều và sao chép không đồng bộ. Chúng giúp chia sẻ và giảm tải công việc, cung cấp khả năng khôi phục dữ liệu ở chế độ chỉ đọc.
Read Replicas được tạo từ snapshot của bản chính. Phải bật tính năng sao lưu tự động trên bản chính (thời gian lưu trữ > 0). Chỉ được hỗ trợ cho các DB engine lưu trữ giao dịch (InnoDB).
Read Replicas có sẵn cho MySQL, PostgreSQL, MariaDB, Oracle, Aurora và SQL Server. Đối với MySQL, MariaDB, PostgreSQL và Oracle, Amazon RDS tạo bản thứ hai từ snapshot của bản chính, sau đó sử dụng sao chép không đồng bộ tự nhiên để cập nhật Read Replicas.
💡 Pro Tip: Bạn có thể có tối đa 5 Read Replicas của một DB sản xuất. Bạn không thể có nhiều hơn bốn bản sao trong chuỗi sao chép. Bạn có thể có Read Replicas của Read Replicas cho MySQL và MariaDB nhưng không cho PostgreSQL.
Cấu hình Read Replicas có thể thiết lập từ Giao diện AWS hoặc API. Bạn có thể chỉ định region của Read Replicas. Loại lưu trữ và lớp bản chính có thể khác với nguồn, nhưng tính toán phải ít nhất bằng hiệu suất của nguồn.
⚠️ Warning: Trong trường hợp mất kết nối đa region, các Read Replicas được chuyển sang bản chính mới. Read Replicas phải được xóa một cách tường tận. Nếu bản chính bị xóa mà không xóa các bản sao, mỗi bản sao trở thành bản chính độc lập tại một region.
Bạn có thể thăng cấp Read Replicas thành bản chính (mất vài phút). Read Replicas được thăng cấp giữ lại thời gian lưu trữ sao lưu, cửa sổ sao lưu, nhóm tham số DB, và các Read Replicas hiện có vẫn hoạt động bình thường.
Mỗi Read Replica có điểm cuối DNS riêng. Read Replicas có thể bật đa region và bạn có thể tạo Read Replicas từ DB nguồn đa region. Cấu hình này có thể tập trung dữ liệu từ các region khác nhau cho phân tích.
ℹ️ Information: DB Snapshots là tình huống do người dùng khởi tạo, cho phép sao lưu DB instance ở trạng thái xác định và khôi phục về trạng thái đó. Không thể dùng để khôi phục tại điểm thời gian cụ thể.
Snapshots được lưu trữ trên S3 và tồn tại cho đến khi bị xóa thủ công. Sao lưu được thực hiện trong khoảng thời gian đã định. I/O tạm ngừng trong thời gian sao lưu và có thể tăng độ trễ (áp dụng cho RDS chỉ có một vùng).
💡 Pro Tip: DB Snapshots thủ công được lưu trữ ngay cả sau khi DB instance RDS bị xóa. DB được khôi phục luôn là DB instance RDS mới với điểm cuối DNS mới. Có thể khôi phục lên đến 5 phút trước.
⚠️ Warning: Chỉ có tham số DB mặc định và nhóm bảo mật được khôi phục - phải liên kết tham số DB và SG khác thủ công. Nên chụp Snapshot cuối cùng trước khi xóa DB instance RDS.
Snapshot có thể chia sẻ với các tài khoản AWS khác.
💡 Pro Tip: Thứ tự ưu tiên cho tính sẵn có cao:
Sao lưu RDS thường xuyên bảo vệ trước sự hỏng dữ liệu và không ảnh hưởng hiệu suất triển khai Multi-AZ. Sao lưu dự phòng region cũng là lựa chọn nhưng không đảm bảo nhất quán mạnh mẽ.
⚠️ Warning: Nếu cơ sở dữ liệu chạy trên EC2, bạn phải tự thiết kế tính sẵn có.
ℹ️ Information: AWS Database Migration Service (DMS) giúp di chuyển cơ sở dữ liệu vào AWS nhanh chóng và an toàn. Sử dụng kèm với Schema Conversion Tool (SCT) để di chuyển cơ sở dữ liệu vào RDS hoặc cơ sở dữ liệu dựa trên EC2.
Cơ sở dữ liệu nguồn vẫn hoạt động trong quá trình di chuyển, giảm thiểu thời gian chết cho ứng dụng. DMS có thể di chuyển dữ liệu tới và từ hầu hết cơ sở dữ liệu thương mại và nguồn mở phổ biến.
SCT có thể sao chép schema cho di chuyển đồng nhất (cùng loại DB) và chuyển đổi schema cho di chuyển không đồng nhất (khác loại DB). DMS dùng cho chuyển đổi nhỏ hơn, đơn giản hơn và hỗ trợ MongoDB và DynamoDB. SCT dùng cho bộ dữ liệu lớn hơn, phức tạp hơn như kho dữ liệu.
DMS có chức năng sao chép từ nơi trên cơ sở vào AWS hoặc vào Snowball hoặc S3.
Công cụ theo dõi tự động cho Amazon RDS:
Amazon RDS tích hợp với: