1. Amazon RDS là gì?
Amazon RDS là dịch vụ quản lý cơ sở dữ liệu quan hệ (Relational Database Service) của Amazon. RDS cung cấp các cơ sở dữ liệu quan hệ quản lý (managed) như MySQL, PostgreSQL, Oracle, SQL Server, v.v., cho phép người dùng dễ dàng triển khai, quản lý và mở rộng các cơ sở dữ liệu quan hệ của họ trên đám mây Amazon Web Services (AWS) mà không cần phải quan tâm đến việc phát triển, triển khai và vận hành cơ sở dữ liệu truyền thống. Các cơ sở dữ liệu trong RDS sử dụng ngôn ngữ truy vấn SQL (Structured Query Language) để thao tác và truy vấn dữ liệu.
Đây là các loại cơ sở dữ liệu quan hệ (relational database) mà Amazon RDS hỗ trợ, cho phép bạn tạo cơ sở dữ liệu trên đám mây AWS được quản lý bởi Amazon. Các loại cơ sở dữ liệu này bao gồm Postgres, MySQL, MariaDB, Oracle, Microsoft SQL Server và Aurora (một cơ sở dữ liệu được phát triển bởi Amazon và chỉ có sẵn trên AWS). Bằng cách sử dụng Amazon RDS, bạn có thể tạo cơ sở dữ liệu dễ dàng hơn và không phải quan tâm đến việc quản lý cơ sở dữ liệu.
2. Các lợi ích của Amazon RDS?
RDS có nhiều lợi ích hơn so với triển khai cơ sở dữ liệu trên EC2, bởi vì RDS là một dịch vụ quản lý:
- RDS được tự động cung cấp và cập nhật hệ điều hành.
- RDS cung cấp khả năng sao lưu liên tục và khôi phục cơ sở dữ liệu đến thời điểm cụ thể (Point in Time Restore).
- RDS cung cấp bảng điều khiển giám sát.
- RDS cung cấp read replicas để cải thiện hiệu suất đọc.
- RDS hỗ trợ thiết lập Multi AZ cho Disaster Recovery.
- RDS cung cấp cửa sổ bảo trì cho các bản nâng cấp.
- RDS hỗ trợ khả năng mở rộng (dọc và ngang).
- RDS sử dụng EBS làm ổ đĩa lưu trữ (gp2 hoặc io1).
Lưu ý là khi sử dụng Amazon RDS, bạn không thể SSH vào các instances của RDS như bạn có thể làm khi triển khai cơ sở dữ liệu trên Amazon EC2. Thay vào đó, bạn quản lý và thực hiện các tác vụ cần thiết trên cơ sở dữ liệu thông qua các công cụ quản lý RDS, chẳng hạn như bảng điều khiển quản trị hoặc API. Việc giới hạn truy cập đến các instance của RDS có thể giúp bảo mật và quản lý được dữ liệu của bạn.
3. Tính năng.
– RDS – Storage Auto Scaling.
RDS Storage Auto Scaling là một tính năng giúp tăng dung lượng lưu trữ trên RDS DB instance của bạn một cách động. Khi RDS phát hiện bạn đang sắp hết không gian lưu trữ cơ sở dữ liệu miễn phí, nó sẽ tự động thay đổi dung lượng lưu trữ.
Tính năng này giúp bạn tránh việc phải tăng dung lượng lưu trữ cơ sở dữ liệu thủ công. Bạn phải thiết lập ngưỡng tối đa cho dung lượng lưu trữ (Maximum Storage Threshold). Tính năng này sẽ tự động thay đổi dung lượng lưu trữ nếu: không gian lưu trữ còn lại ít hơn 10% dung lượng lưu trữ được cấp phát, không gian lưu trữ thấp kéo dài ít nhất 5 phút, và đã trôi qua 6 giờ kể từ lần thay đổi cuối cùng. Tính năng này hữu ích cho các ứng dụng có khối lượng công việc không đều và hỗ trợ tất cả các động cơ cơ sở dữ liệu RDS (MariaDB, MySQL, PostgreSQL, SQL Server, Oracle).
– RDS Read Replicas for read scalability.
Đây là các tính năng liên quan đến Read Replica của dịch vụ Amazon RDS. Read Replica cho phép tạo bản sao của database instance chính (primary) và sử dụng cho việc đọc dữ liệu để tăng hiệu suất đọc của database. Các điểm cần lưu ý về tính năng này bao gồm:
- Có thể tạo đến 5 bản sao Read Replica, trong cùng Availability Zone (AZ), khác AZ hoặc khác khu vực (Cross Region).
- Cơ chế sao chép (replication) của dữ liệu là ASYNC, nghĩa là đọc dữ liệu từ bản sao sẽ không được đảm bảo luôn đồng nhất (eventually consistent) với bản primary.
- Các bản sao Read Replica có thể được thăng cấp (promoted) thành bản primary riêng biệt nếu cần.
- Ứng dụng cần cập nhật connection string để sử dụng Read Replica.
– RDS Read Replicas – Use Cases.
Nếu bạn có một cơ sở dữ liệu sản xuất đang xử lý công việc bình thường và bạn muốn chạy một ứng dụng báo cáo để thực hiện một số phân tích, bạn có thể tạo một bản sao đọc để chạy khối lượng công việc mới đó. Khi đó ứng dụng sản xuất không bị ảnh hưởng.
Bản sao đọc này được sử dụng cho các câu lệnh đọc dữ liệu (SELECT), không được sử dụng cho các câu lệnh cập nhật dữ liệu (INSERT, UPDATE, DELETE). Với việc sử dụng bản sao đọc, cơ sở dữ liệu sản xuất không bị quá tải bởi khối lượng công việc mới.
– RDS Read Replicas – Network Cost.
Trong AWS có một chi phí mạng khi dữ liệu di chuyển từ một AZ sang AZ khác. Tuy nhiên, nếu sử dụng Read Replicas của RDS trong cùng khu vực (region), bạn sẽ không phải trả chi phí này. Điều này giúp tiết kiệm chi phí và tăng hiệu suất cho hệ thống của bạn.
– RDS Multi AZ (Disaster Recovery).
RDS Multi-AZ là tính năng hỗ trợ khôi phục thiết bị (Disaster Recovery) để đảm bảo sẵn sàng cao cho cơ sở dữ liệu. Khi bạn kích hoạt tính năng Multi-AZ cho một instance RDS, AWS sẽ tạo một bản sao đồng bộ chính xác của cơ sở dữ liệu đó trên một vùng khác trong cùng một khu vực. Khi có sự cố xảy ra trên instance chính, AWS tự động chuyển dữ liệu đến bản sao, giúp cho ứng dụng vẫn tiếp tục hoạt động mà không yêu cầu sự can thiệp của người quản trị. Tính năng này sử dụng đồng bộ hóa SYNC để đảm bảo tính nhất quán giữa cơ sở dữ liệu chính và bản sao. Multi-AZ không được sử dụng để scale cơ sở dữ liệu và các Read Replicas cũng có thể được thiết lập như là Multi-AZ cho mục đích khôi phục thiết bị. Lưu ý rằng sử dụng tính năng này có thể phát sinh phí khi dữ liệu được di chuyển giữa các AZ trong một khu vực khác nhau.
– RDS – From Single-AZ to Multi-AZ.
Một database instance có thể được triển khai trong một Availability Zone (AZ) hoặc nhiều AZ khác nhau để đảm bảo tính sẵn sàng và khả năng phục hồi sau thảm họa. Khi bạn muốn nâng cấp từ Single-AZ sang Multi-AZ, bạn có thể thực hiện hoạt động này mà không cần tắt database của bạn bằng cách chỉnh sửa cấu hình trong RDS console. Quá trình bên trong sẽ chụp ảnh snapshot của database, khôi phục database mới ở một AZ khác và thiết lập đồng bộ giữa hai cơ sở dữ liệu. Quá trình này được thực hiện mà không ảnh hưởng đến hoạt động database của bạn, do đó không có thời gian chết (zero downtime) và đảm bảo tính sẵn sàng của dịch vụ.
– RDS Custom.
RDS và RDS Custom là các dịch vụ quản lý cơ sở dữ liệu Oracle và Microsoft SQL Server trên AWS.
RDS cung cấp các tính năng tự động hóa thiết lập, vận hành và tự động điều chỉnh quy mô cơ sở dữ liệu trong AWS.
RDS Custom cung cấp quyền truy cập đầy đủ vào hệ điều hành và cơ sở dữ liệu cơ bản để cấu hình cài đặt, cài đặt bản vá, kích hoạt tính năng và truy cập vào EC2 Instance cơ bản bằng SSH hoặc SSM Session Manager.
Tắt chế độ tự động hóa trên RDS Custom để thực hiện tùy chỉnh của riêng bạn, tốt hơn hết nên tạo một bản snapshot của cơ sở dữ liệu trước khi thực hiện tùy chỉnh.
4. Thực hành.
Vào Amazon RDS -> Databases -> Create database.
Tại phần Choose a database creation method bạn có 2 lựa chọn Standard create và Easy create là hai cách khác nhau để tạo database trên Amazon RDS.
- “Standard create” là quá trình tạo database truyền thống, nơi người dùng cần phải cấu hình tất cả các tùy chọn cơ bản và nâng cao cho database.
- “Easy create” là một phương pháp đơn giản hơn để tạo database, cho phép người dùng chỉ cần chọn loại database mong muốn, kích thước và cấu hình tối thiểu, và RDS sẽ tự động cấu hình tất cả các cài đặt cần thiết. “Easy create” thường được sử dụng cho các trường hợp có khối lượng công việc nhỏ hoặc không yêu cầu nhiều tùy chọn cấu hình cơ bản.
Phần này cung cấp cho chúng ta 6 loại Databasesm, mình sẽ chọn MySQL cho quen thuộc.
Chọn version cho db
Tại phần Templates bạn có 3 tuỳ chọn, các tuỳ chọn “Production”, “Dev/Test” và “Free tier” trong Choose a sample template to meet your use case được cung cấp để giúp người dùng lựa chọn mẫu cho phù hợp với mục đích sử dụng của họ.
- Tùy chọn “Production” cung cấp các mẫu thiết kế cho môi trường sản xuất, trong đó các tài nguyên được cấu hình để đảm bảo độ tin cậy, khả năng mở rộng, hiệu suất và bảo mật cao nhất.
- Tùy chọn “Dev/Test” cung cấp các mẫu thiết kế cho môi trường phát triển và kiểm thử, trong đó các tài nguyên được cấu hình để tối ưu hóa hiệu quả phát triển ứng dụng, thử nghiệm và kiểm thử.
- Tùy chọn “Free tier” cung cấp các mẫu thiết kế cho môi trường miễn phí, trong đó người dùng có thể sử dụng các tài nguyên AWS miễn phí để tạo và triển khai các ứng dụng và dịch vụ của mình.
Ví dụ mình chọn tuỳ chọn là Production.
Tại phần Availability and durability bạn có 3 tuỳ chọn như đã tìm hiểu ở phần lý thuyết. Giả sử mình chọn Single DB instance.
Bạn hãy điền thông tin mà bạn quy hoạch vào.
Phần “Instance configuration” trong trang tạo instance của Amazon RDS cho phép bạn cấu hình các tùy chọn cho DB instance mà bạn đang tạo. Tùy chọn này bao gồm loại instance, kích thước lưu trữ, bộ nhớ, CPU, băng thông mạng và các tùy chọn khác liên quan đến hiệu suất và tính sẵn sàng của database
Phần này mình sẽ chọn lưu trữ là gp2 và có dung lượng 20GB.
Phần Storage autoscaling chính là phần tự động tăng dung lượng lưu trữ nếu nó đạt tới ngưỡng nhất định.
Ở tuỳ chọn Compute resource nếu bạn muốn kết nối DB này vào 1 EC2 đang sẵn có thì lựa chọn Connect to an EC2 compute resource, nếu hiện tại bạn chỉ muốn tạo DB mà không muốn kết nối vào EC2 nào thì chọn Don’t connect to an EC2 compute resource. Trường hợp của mình thì mình sẽ chọn Don’t connect to an EC2 compute resource.
Hãy chọn 1 VPC, Subnet mà bạn muốn gắn. Lựa chọn Public access là Yes sẽ giúp bạn có thể kết nối vào DB từ một thiết bị ở ngoài môi trường AWS.
Tại phần PC security group (firewall) hãy chọn hoặc tạo mới 1 security group. Trường hợp của mình, mình sẽ tạo mới. Bạn có thể chỉ định 1 AZ tại Availability Zone nhưng nó không cần thiết trong trường hợp của mình.
Chỉ định port kết nối.
Có 3 cơ chế để xác thực, mình sẽ chọn Password Authentication.
- Password Authentication: Ở đây, người dùng cung cấp một tên đăng nhập và mật khẩu để đăng nhập vào cơ sở dữ liệu.
- IAM Authentication: Đây là cơ chế xác thực dựa trên Identity and Access Management (IAM) của AWS. Với cơ chế này, người dùng sử dụng AWS Access Key và Secret Access Key của mình để xác thực và truy cập cơ sở dữ liệu.
- Kerberos Authentication: Đây là một cơ chế xác thực dựa trên chuẩn Kerberos, một hệ thống xác thực mạng phổ biến. Với cơ chế này, người dùng cung cấp một TGT (Ticket-Granting Ticket) từ một máy chủ Kerberos để xác thực vào cơ sở dữ liệu.
Phần monitoring sẽ giúp bạn giám sát DB nhưng trường hợp của tôi, tôi sẽ tắt nó bằng cách bỏ tích ở Enable Enhanced monitoring.
Ở phần cài đặt bổ sung bạn có thể cho phép tạo 1 Database khi RDS được tạo.
Bạn có thể lựa chọn tự động backup ở phần này.
“Enable auto minor version upgrade” là một tùy chọn trong Amazon RDS cho phép tự động cập nhật phiên bản nhỏ của cơ sở dữ liệu. Khi tùy chọn này được bật, RDS sẽ tự động cập nhật phiên bản nhỏ mới nhất của cơ sở dữ liệu mà không cần sự can thiệp của người dùng. Tùy chọn này giúp đảm bảo rằng cơ sở dữ liệu của bạn luôn được cập nhật với phiên bản mới nhất và bảo mật hơn.
Maintenance window là thời gian được chọn để thực hiện các hoạt động bảo trì và nâng cấp hệ thống cho database instance.
- Choose a window: Bạn có thể chọn cửa sổ bảo trì theo lịch trình của bạn. Nếu bạn không muốn thực hiện bảo trì vào thời điểm nào đó, bạn có thể chọn tùy chọn này và chọn cửa sổ thích hợp.
- No preference: AWS sẽ tự động chọn cửa sổ bảo trì phù hợp để thực hiện việc bảo trì định kỳ, và bạn không cần phải chọn bất kỳ thời gian bảo trì cụ thể nào.
Tùy chọn “Enable deletion protection” được sử dụng để ngăn chặn việc xóa hoặc thay đổi cấu hình của cơ sở dữ liệu RDS một cách vô tình. Khi tùy chọn này được bật, người dùng không thể xóa hoặc thay đổi cấu hình của cơ sở dữ liệu RDS bằng cách sử dụng API, CLI hoặc giao diện người dùng AWS Management Console. Tùy chọn này cung cấp bảo vệ cho cơ sở dữ liệu RDS để đảm bảo rằng cơ sở dữ liệu không bị mất hoặc bị thay đổi một cách vô tình. Để thay đổi hoặc xóa cơ sở dữ liệu RDS, tùy chọn “Enable deletion protection” phải được tắt trước.
Và cuối cùng là phần báo giá chi phí. Nếu không còn lăn tăn thì hãy tạo RDS này bằng cách bấm vào Create database.
Chờ ít phút database đã được tạo ở trạng thái Available.
Kéo xuống phần Connectivity & security, tại phần Endpoint bạn nhận được domain và port để kết nối vào DB. Nhưng do security group của mình chưa mở port 3306 nên tôi sẽ vào security group này để cho phép các kết nối từ bên ngoài vào DB bằng cách mở port 3306.
Chỉnh sửa phần Inbound rules xong rồi lưu lại nhé.
Hãy vào 1 phần mềm nào đó có thể test được kết nối đến MySQL của bạn, điền thông tin kết nối thử.
Ví dụ để tạo 1 bản sao có quyền chỉ đọc, bạn chỉ cần vào Create read replica, điền các thông tin rồi bấm Create read replica để tạo bản sao. Nhưng lần này tôi sẽ không làm điều này nên bạn có thể tự tìm hiểu sau.
Bạn sẽ còn có rất nhiều thứ hay ho ví dụ như tạo, restore, hoặc thậm chí là migrage snapshot. Bạn tự tìm hiểu nhé.
Để xoá được RDS bạn cần phải tắt Enable deletion protection nếu lúc tạo bạn đã kích hoạt nhé.
– RDS Backups.
RDS Backups là các bản sao lưu của cơ sở dữ liệu trên RDS.
Có hai loại backup: Automated backups (tự động) và Manual DB Snapshots (thủ công). Automated backups thực hiện backup toàn bộ cơ sở dữ liệu hàng ngày (trong khung thời gian backup), và transaction logs được backup mỗi 5 phút. Nó cho phép khôi phục lại cơ sở dữ liệu tới bất kỳ thời điểm nào (từ bản backup cũ nhất đến 5 phút trước đó). Có thể giữ các bản sao lưu từ 1 đến 35 ngày, với giá trị 0 để vô hiệu hóa các bản sao lưu tự động. Các manual DB snapshots được kích hoạt thủ công bởi người dùng và được giữ trong thời gian tùy ý. Nếu bạn dự định ngưng hoạt động RDS trong thời gian dài, bạn nên tạo một bản snapshot và khôi phục khi cần thiết, vì khi dừng RDS thì bạn vẫn phải trả phí lưu trữ.