0
0
Lập trình
Harry Tran
Harry Tran106580903228332612117

Hướng Dẫn Sử Dụng Dịch Vụ Cơ Sở Dữ Liệu Quan Hệ AWS RDS

Đăng vào 3 ngày trước

• 8 phút đọc

Giới Thiệu Dịch Vụ Cơ Sở Dữ Liệu Quan Hệ AWS RDS

Amazon RDS (Relational Database Service) là một dịch vụ cơ sở dữ liệu được quản lý bởi AWS, giúp đơn giản hóa việc thiết lập, vận hành và mở rộng các cơ sở dữ liệu quan hệ trong đám mây. RDS cho phép các nhà phát triển tập trung vào việc phát triển ứng dụng thay vì phải lo lắng về việc quản lý các máy chủ, cập nhật, sao lưu và mở rộng các cơ sở dữ liệu.

AWS RDS Là Gì?

RDS tổ chức dữ liệu thành các bảng (hàng và cột) có quan hệ với nhau, sử dụng SQL (Structured Query Language) để truy vấn và thao tác dữ liệu. Việc sử dụng RDS mang lại nhiều lợi ích cho các nhà phát triển, trong đó có:

Lợi ích của AWS RDS:

  1. Quản lý hoàn toàn – AWS tự động hóa việc cung cấp, cập nhật, sao lưu và giám sát.
  2. Khả năng mở rộng – Dễ dàng mở rộng tính toán và lưu trữ theo chiều dọc hoặc chiều ngang (replica đọc).
  3. Tính sẵn sàng cao – Triển khai Multi-AZ cung cấp khả năng chuyển đổi tự động cho các hệ thống sản xuất.
  4. Bảo mật – Hỗ trợ cách ly VPC, tích hợp IAM, mã hóa khi lưu trữ (KMS) và mã hóa khi truyền (SSL/TLS).
  5. Chi phí hiệu quả – Chỉ trả tiền cho những gì bạn sử dụng; hỗ trợ mức miễn phí cho kiểm tra.

Các Động Cơ Cơ Sở Dữ Liệu Hỗ Trợ Trong RDS

AWS RDS hỗ trợ nhiều động cơ cơ sở dữ liệu quan hệ khác nhau:

  • Amazon Aurora (tương thích MySQL & PostgreSQL, tối ưu hóa cho AWS, hiệu suất cao)
  • MySQL
  • PostgreSQL
  • MariaDB
  • Oracle (bao gồm giấy phép hoặc BYOL)
  • Microsoft SQL Server

Aurora là động cơ cơ sở dữ liệu riêng của AWS, cho hiệu suất nhanh hơn tới 5 lần so với MySQL và 3 lần so với PostgreSQL.

Các Thành Phần Chính Của RDS

  1. DB Instance → Môi trường cơ sở dữ liệu thực tế (tính toán + lưu trữ).
  2. Endpoint & Port → Tên miền và cổng để kết nối ứng dụng của bạn.
  3. Security Groups → Kiểm soát quyền truy cập vào DB.
  4. Parameter Groups → Cấu hình cho động cơ DB.
  5. Option Groups → Thêm các tính năng như Oracle TDE, tính năng SQL Server, v.v.
  6. Subnet Group → Định nghĩa các subnet mà RDS có thể khởi chạy.

Tính Năng Nổi Bật

  1. Triển Khai Multi-AZ → Đảm bảo tính sẵn sàng cao bằng cách duy trì bản sao dự phòng.
  2. Read Replicas → Mở rộng khối lượng công việc nặng về đọc bằng cách tạo bản sao cho các truy vấn chỉ đọc.
  3. Sao Lưu Tự Động → Khôi phục theo thời gian, giữ lại tối đa 35 ngày.
  4. Giám Sát → Các chỉ số CloudWatch, Insights hiệu suất, Giám sát nâng cao.
  5. Mã Hóa → Khi lưu trữ (thông qua AWS KMS) và khi truyền (SSL).
  6. Xác Thực IAM DB → Kết nối mà không cần mật khẩu, sử dụng mã thông báo IAM.

Cách RDS Hoạt Động Trong Thực Tế

Hãy tưởng tượng bạn đang xây dựng một ứng dụng thương mại điện tử:

  • Ứng dụng của bạn chạy trên các phiên bản EC2 hoặc container ECS/EKS.
  • Thay vì lưu trữ MySQL trên VM EC2 (nơi bạn quản lý mọi thứ), bạn tạo một phiên bản RDS MySQL.
  • Ứng dụng kết nối qua endpoint RDS:
Copy
mysql -h mydb.rds.amazonaws.com -P 3306 -u admin -p

AWS tự động xử lý:

  • Cập nhật hệ điều hành/cơ sở dữ liệu.
  • Mở rộng đĩa.
  • Chuyển đổi tự động (nếu là Multi-AZ).
  • Sao lưu cho khôi phục thảm họa.

Bạn chỉ cần tập trung vào thiết kế schema và các truy vấn.

Khi Nào Nên Sử Dụng RDS

  • Đối với các khối lượng công việc cơ sở dữ liệu quan hệ truyền thống (tài chính, thương mại điện tử, ERP, CRM, v.v.)
  • Khi bạn cần tính sẵn sàng cao và khả năng mở rộng tự động.
  • Nếu bạn muốn giảm bớt gánh nặng cho DBA (cập nhật, sao lưu, giám sát).
  • Đối với các ứng dụng sử dụng mô hình dữ liệu quan hệ dựa trên SQL.

Bước 1: Tạo MySQL RDS Miễn Phí và Kết Nối Từ EC2

Kế hoạch tổng quan

  1. Tạo một MySQL RDS (miễn phí) — ghi lại endpoint và cổng.
  2. Tạo một phiên bản EC2 (cùng VPC/subnet với RDS hoặc có đường mạng).
  3. Tạo một vai trò IAM với quyền truy cập RDS (sử dụng cho bảo mật nâng cao nếu bạn sử dụng xác thực IAM DB; nếu không thì cần cho các tác vụ của profile phiên bản).
  4. Gắn vai trò IAM vào phiên bản EC2.
  5. Cấu hình Security Groups để EC2 có thể truy cập RDS trên cổng 3306.
  6. Cài đặt mysql client trên EC2 và kết nối đến endpoint RDS bằng thông tin đăng nhập DB.
  7. Chụp ảnh màn hình kết nối thành công (prompt mysql> hoặc kết quả truy vấn đơn giản).

Bước 2: Tạo phiên bản RDS MySQL (trên console)

  • AWS Console → RDS → Databases → Tạo cơ sở dữ liệu.
  • Chọn Tạo tiêu chuẩn → Động cơ: MySQL.
  • Phiên bản: chọn động cơ và phiên bản tương thích với mức miễn phí (ví dụ: MySQL 8.x) và db.t2.micro / db.t3.micro (đủ điều kiện miễn phí).
  • Mẫu: Mức miễn phí.
  • Xác định phiên bản DB, tên người dùng và mật khẩu — lưu lại những thông tin này.
  • Mạng:
  • Chọn VPC nơi EC2 của bạn sẽ ở (hoặc tạo một cái tương ứng).
  • Đặt Tính khả dụng công cộng = Không (được khuyến nghị). Nếu bạn cần truy cập công cộng trực tiếp để kiểm tra, hãy đặt Có — nhưng nên sử dụng riêng + EC2 trong cùng VPC.
  • Chọn một nhóm subnet và khu vực khả dụng (mặc định có thể sử dụng).
  • Kết nối & bảo mật:
  • Chọn hoặc tạo một Security Group cho phép truy cập MySQL (cổng 3306) từ security group EC2 (tốt hơn) hoặc IP của bạn (để kiểm tra nhanh).
  • Tạo DB. Chờ cho đến khi trạng thái trở thành Có sẵn.
  • Sao chép Endpoint và Port (bạn sẽ cần những cái này).

Bước 3: Tạo phiên bản EC2 (trên console)

  • EC2 → Instances → Khởi chạy phiên bản.
  • AMI: Amazon Linux 2 hoặc Ubuntu LTS (các ví dụ dưới đây bao gồm cả hai).
  • Loại phiên bản: t2.micro (mức miễn phí).
  • Cấu hình Mạng: chọn cùng VPC và một subnet có thể định tuyến đến subnet RDS.
  • Vai trò IAM: bạn có thể gắn vai trò IAM tại đây (tạo vai trò trước nếu cần).
  • Security group: cho phép SSH (cổng 22) từ IP của bạn và cho phép outbound đến RDS (outbound mặc định thường là tất cả lưu lượng).
  • Khởi chạy và SSH vào phiên bản.

Bước 4: Tạo vai trò IAM với quyền truy cập RDS (trên console)

  • IAM → Roles → Tạo vai trò → Dịch vụ AWS → EC2 → Tiếp theo.
  • Gắn các chính sách:
  • Để quản lý RDS chung hoặc Xác thực IAM DB: gắn AmazonRDSFullAccess (chỉ cho việc học) HOẶC các chính sách hạn chế hơn (tốt hơn).
  • Nếu bạn dự định sử dụng Xác thực IAM DB cho MySQL, gắn AmazonRDSFullAccess hoặc đảm bảo quyền rds-db:connect có mặt cho tài nguyên DB.
  • Đặt tên cho vai trò (ví dụ: EC2-RDS-Access-Role) và tạo.
  • Gắn vào phiên bản EC2: trong bảng điều khiển EC2 → Chọn phiên bản → Hành động → Bảo mật → Sửa đổi vai trò IAM → gắn vai trò.

Bước 5: Cấu hình Security Groups (quan trọng)

  • Quy tắc inbound của security group RDS: cho phép MySQL/Aurora (TCP 3306) từ security group của phiên bản EC2 (sử dụng ID SG làm nguồn). Điều này an toàn hơn so với việc cho phép địa chỉ IP.
  • Security group EC2: Cho phép SSH từ IP của bạn (TCP 22). Outbound: cho phép cổng đích 3306 (mặc định outbound cho phép tất cả lưu lượng có thể hoạt động).

Bước 6: Cài đặt mysql client trên EC2 & kết nối (các lệnh)

Amazon Linux 2

Copy
# Cập nhật
sudo yum update -y

# Cài đặt MariaDB client (có thể hoạt động như mysql client)
sudo yum install -y mariadb

# Hoặc nếu bạn thích nhị phân client mysql cho MySQL:
# sudo yum install -y mysql

Ubuntu

Copy
sudo apt update && sudo apt upgrade -y
sudo apt install -y mysql-client

Kết nối đến RDS (nhớ thay thế các placeholder)

Copy
# Ví dụ:
mysql -h your-rds-endpoint.rds.amazonaws.com -P 3306 -u your_db_user -p

# Sau đó nhập mật khẩu DB khi được yêu cầu.

Khi đã kết nối, bạn sẽ thấy prompt mysql>. Thực hiện một truy vấn đơn giản:

Copy
SHOW DATABASES;
SELECT NOW();

Bước 7: Nếu bạn muốn sử dụng Xác thực IAM DB (tùy chọn)

  • Kích hoạt xác thực IAM DB khi tạo RDS (hoặc sửa đổi nhóm tham số).
  • Tạo vai trò với rds-db:connect và mối quan hệ tin cậy hợp lý cho EC2.
  • Sử dụng AWS CLI trên EC2 để lấy mã thông báo xác thực:
Copy
# Ví dụ: tạo mã thông báo (cài đặt aws cli v2 và cấu hình thông tin đăng nhập trên EC2)
aws rds generate-db-auth-token --hostname your-rds-endpoint.rds.amazonaws.com --port 3306 --region us-east-1 --username your_db_user
# Sử dụng mã thông báo kết quả như mật khẩu với client mysql và --enable-cleartext-plugin nếu cần:
mysql --host=your-rds-endpoint.rds.amazonaws.com --port=3306 --user=your_db_user --enable-cleartext-plugin --password=TOKEN

Bước 8: Danh sách kiểm tra xử lý sự cố

  • Trạng thái RDS = Có sẵn.
  • Sử dụng endpoint và cổng chính xác.
  • Tên người dùng & mật khẩu DB là chính xác (sao chép/dán cẩn thận).
  • EC2 và RDS ở cùng VPC hoặc kết nối qua định tuyến (VPC peering yêu cầu định tuyến & cập nhật SG).
  • Các nhóm bảo mật: SG RDS inbound cho phép SG EC2 trên cổng 3306.
  • Nếu RDS không công cộng, EC2 phải ở cùng VPC hoặc có VPN/kết nối trực tiếp/bastion.
  • Nếu sử dụng truy cập công cộng, đảm bảo endpoint công cộng RDS và SG cho phép IP của bạn (ít an toàn hơn).

Bước 9: Chụp ảnh màn hình thành công nhỏ

  • SSH vào EC2, chạy lệnh mysql và chụp màn hình hiển thị:
  • prompt mysql> HOẶC
  • Kết quả của SHOW DATABASES; hoặc SELECT NOW();
  • Lưu ảnh chụp màn hình và đăng làm bằng chứng. Đó là chiến thắng nhỏ của bạn.
Gợi ý câu hỏi phỏng vấn
Không có dữ liệu

Không có dữ liệu

Bài viết được đề xuất
Bài viết cùng tác giả

Bình luận

Chưa có bình luận nào

Chưa có bình luận nào