Thiết lập hạ tầng mạng

Tạo môi trường VPC của bạn

ℹ️ Thông tin: Trong phần này, chúng ta sẽ tạo một Virtual Private Cloud (VPC) với các public và private subnet trải dài qua nhiều Availability Zone để đảm bảo tính sẵn sàng cao (high availability) cho kiến trúc Auto Scaling của chúng ta.

  1. Điều hướng đến AWS Management Console. Trên thanh tìm kiếm, tìm và chọn VPC VPC Console Navigation

  2. Trong Console của VPC, nhấp vào Create VPC Create VPC Button

  3. Trong giao diện Create VPC:

  • Chọn VPC and more để sử dụng trình hướng dẫn thiết lập toàn diện
  • Tại tên VPC, nhập AutoScaling-Lab
  • Tại IPv4 CIDR block, nhập 10.0.0.0/16

VPC Configuration

  1. Cấu hình kiến trúc VPC:
  • Number of Availability Zones: 2 (để đạt khả năng phục hồi tối đa)
  • Number of public subnets: 2 (mỗi AZ một subnet)
  • Number of private subnets: 2 (mỗi AZ một subnet)
  • NAT gateways: None (chúng ta sẽ giữ chi phí ở mức tối thiểu cho bài lab này)

VPC Architecture Configuration

  1. Hoàn tất việc tạo VPC:
  • VPC endpoints: None
  • Nhấp vào Create VPC

Create VPC Final Step

Cấu hình tự động gán IP cho Public Subnet

ℹ️ Thông tin: Để các EC2 instance nằm trong các public subnet có thể tự động nhận địa chỉ public IP, chúng ta cần kích hoạt tính năng tự động gán địa chỉ IPv4 công khai (auto-assign public IPv4 addresses).

  1. Để kích hoạt tự động gán public IP:
  • Chọn Subnets ở menu điều hướng bên trái
  • Chọn một public subnet
  • Nhấp vào Edit subnet settings

Edit Subnet Settings

  1. Trong phần cài đặt subnet:
  • Tích chọn Enable auto-assign public IPv4 address
  • Nhấp vào Save

Enable Auto-assign Public IP

  1. Xác minh cấu hình đã thành công:

Verify Subnet Configuration

💡 Mẹo chuyên nghiệp: Lặp lại quá trình này cho tất cả các public subnet để đảm bảo bất kỳ EC2 instance nào được khởi chạy trong các subnet này đều tự động nhận được địa chỉ public IP.

Tạo Security Group

ℹ️ Thông tin: Các Security Group hoạt động như những tường lửa ảo cho các instance của bạn để kiểm soát lưu lượng truy cập vào (inbound) và ra (outbound).

  1. Để tạo một security group cho ứng dụng của bạn:
  • Trong console của VPC, chọn Security groups
  • Nhấp vào Create security group

Create Security Group

  1. Cấu hình các thông tin cơ bản của security group:
  • Security group name: fcaj-sg
  • Description: Security Group cho FCAJ Management
  • VPC: Chọn VPC AutoScaling-Lab mà bạn đã tạo

Security Group Basic Configuration

  1. Cấu hình các inbound rules:
  • Thêm rule cho SSH (port 22) với Source: My IP để truy cập quản trị an toàn
  • Thêm rule cho HTTP (port 80) với Source: Anywhere-IPv4 cho lưu lượng truy cập web
  • Thêm rule cho Custom TCP (port 5000) với Source: Anywhere-IPv4 cho ứng dụng FCJ Management
  • Thêm rule cho HTTPS (port 443) với Source: Anywhere-IPv4 cho lưu lượng truy cập web an toàn

Security Group Inbound Rules

🔒 Lưu ý về bảo mật: Trong môi trường thực tế (production), hãy cân nhắc việc giới hạn quyền truy cập cho các dải IP cụ thể thay vì sử dụng “Anywhere” để tăng cường bảo mật.

  1. Xem lại các outbound rules (mặc định cho phép tất cả lưu lượng đi ra) và nhấp vào Create security group

Security Group Outbound Rules

Tạo Database Security Group

ℹ️ Thông tin: Đối với các database instance, chúng ta sẽ tạo một security group riêng biệt với các kiểm soát truy cập nghiêm ngặt hơn để tăng cường bảo mật.

  1. Cấu hình database security group:
  • Security Group name: fcaj-db-sg
  • Description: Security Group cho DB instance
  • VPC: Chọn VPC AutoScaling-Lab của bạn
  1. Cấu hình các inbound rules:
  • Thêm rule cho MYSQL/Aurora (port 3306)
  • Đặt source trỏ đến application security group là fcaj-sg

Database Security Group Configuration

🔒 Lưu ý về bảo mật: Bằng cách tham chiếu đến application security group làm source, bạn đảm bảo rằng chỉ những EC2 instance sử dụng security group đó mới có thể truy cập vào cơ sở dữ liệu, tuân thủ nguyên tắc đặc quyền tối thiểu (principle of least privilege).

💡 Mẹo chuyên nghiệp: Kiến trúc mạng với các security group tách biệt cho tầng ứng dụng (application tier) và tầng cơ sở dữ liệu (database tier) tuân theo các best practices của AWS Well-Architected về bảo mật và sự cô lập.