Như ở bài trước Virtual Private Cloud (VPC) và mạng máy tính chúng ta đã hiểu được cách làm thế nào để tính số địa chỉ IP của 1 CIRD và chia địa chị con và nhiều kiến thức khác về hạ tầng mạng, ở bài này chúng ta chỉ tập trung vào VPC của AWS mà thôi, Ok chúng ta bắt đầu thôi !

Hiểu về VPC mặc định

"VPC mặc định" là một môi trường mạng ảo được tạo tự động khi bạn tạo một tài khoản AWS mới. Dưới đây là một số đặc điểm chính của VPC mặc định trong AWS:

  1. Tự động tạo: Mỗi khi bạn tạo một tài khoản mới trên AWS, hệ thống tự động tạo một VPC mặc định để bạn có thể bắt đầu triển khai các tài nguyên mạng ngay lập tức.

  2. Mạng con và Bảng định tuyến (router table) mặc định: VPC mặc định sẽ có ít nhất một mạng con và một bảng định tuyến mặc định đã được cấu hình. Bạn có thể sử dụng chúng hoặc tùy chỉnh theo nhu cầu cụ thể của mình.

  3. Kết nối Internet mặc định: VPC mặc định có kết nối Internet sẵn sàng, giúp các máy ảo EC2 bên trong nó có thể truy cập Internet và được truy cập từ Internet mà không cần thiết lập thêm.

  4. Địa chỉ IPv4 public: Tất cả các máy ảo EC2 được triển khai trong VPC mặc định đều được gán địa chỉ IPv4 public, cho phép chúng có thể trực tiếp truy cập từ Internet.

  5. Tên DNS IPv4 public và private: AWS tự động cung cấp tên miền DNS IPv4 công cộng và tên miền DNS IPv4 tư nhân cho VPC mặc định, giúp quản lý và kết nối các tài nguyên trong mạng.

Lưu ý rằng VPC mặc định có thể được tùy chỉnh và mở rộng theo nhu cầu cụ thể của bạn, nhưng nó cung cấp một điểm khởi đầu thuận tiện để bắt đầu triển khai các dịch vụ và ứng dụng trên nền tảng AWS.

Tại sao lại phải tạo VPC mới trong khi đã có VPC mặc định?

Mặc dù AWS cung cấp một VPC mặc định (Default VPC) khi bạn tạo một tài khoản mới, nhưng có một số lý do mà người ta thường khuyến khích việc tạo VPC mới thay vì sử dụng VPC mặc định:

  1. Quản lý và Kiểm soát:

    • Bảo mật: VPC mặc định có thể chứa một số tài nguyên mặc định, và đôi khi bạn muốn có kiểm soát cao hơn đối với tài nguyên của mình. Bằng cách tạo VPC mới, bạn có thể tùy chỉnh các tùy chọn bảo mật và cấu hình mạng theo nhu cầu cụ thể của tổ chức bạn.
    • Quản lý: Tạo VPC mới giúp tổ chức dễ dàng quản lý và hiểu rõ hơn về cách mạng của họ được cấu hình. Có thể giúp giảm rủi ro về nhầm lẫn và làm tăng khả năng theo dõi và quản lý tài nguyên.
  2. Tùy chỉnh Cấu hình Mạng:

    • Địa chỉ IP: VPC mặc định sử dụng một loạt địa chỉ IP mặc định, trong khi bạn có thể muốn tùy chỉnh không gian địa chỉ IP của mình để phản ánh cấu trúc mạng cụ thể.
    • Subnet và Route Table: Tạo VPC mới cung cấp sự linh hoạt lớn hơn khi bạn muốn xác định các Subnet và bảng định tuyến một cách chi tiết để đáp ứng yêu cầu cụ thể của ứng dụng hoặc hạ tầng.
  3. Phát triển Đa Khu Vực (Multi-AZ):

    • Tính Linh hoạt: Khi bạn có nhu cầu triển khai ứng dụng hoặc hạ tầng đa khu vực, việc tạo VPC mới cung cấp tính linh hoạt cao hơn để quản lý và triển khai các tài nguyên trong các khu vực khác nhau.
  4. Tính Bảo mật và Tuân thủ:

    • Chuẩn Bảo mật: Một số tổ chức có các chuẩn bảo mật nghiêm ngặt và họ thường muốn tạo và quản lý các VPC của riêng họ để đảm bảo tuân thủ các yêu cầu bảo mật nội bộ.

Tóm lại, tạo VPC mới cung cấp tính linh hoạt, kiểm soát và quản lý cao hơn cho việc triển khai và quản lý tài nguyên trên AWS. Việc này giúp bạn tối ưu hóa cấu hình mạng và bảo mật theo nhu cầu cụ thể của tổ chức bạn.

VPC trong AWS – IPv4

Thông tin chi tiết về Virtual Private Cloud (VPC) trong Amazon Web Services (AWS) bao gồm các điểm quan trọng sau:

  • VPC (Virtual Private Cloud): Là một môi trường mạng ảo giúp bạn triển khai và quản lý các dịch vụ và tài nguyên AWS trong một không gian riêng tư.

  • Số lượng VPC trong một khu vực AWS: Bạn có thể có nhiều VPC trong một khu vực AWS, với một giới hạn mềm là tối đa 5 VPC cho mỗi khu vực.

  • CIDR (Classless Inter-Domain Routing) cho mỗi VPC: Số lượng CIDR tối đa cho mỗi VPC là 5. Mỗi CIDR có kích thước từ /28 (16 địa chỉ IP) đến /16 (65536 địa chỉ IP).

  • Kích thước CIDR cụ thể cho mỗi CIDR: Kích thước CIDR tối thiểu là /28 (16 địa chỉ IP), và kích thước tối đa là /16 (65536 địa chỉ IP).

  • IP Address Ranges cho VPC: Vì VPC là môi trường riêng tư, chỉ có các dải địa chỉ IPv4 riêng tư được phép, bao gồm:

    • 10.0.0.0 – 10.255.255.255 (10.0.0.0/8)
    • 172.16.0.0 – 172.31.255.255 (172.16.0.0/12)
    • 192.168.0.0 – 192.168.255.255 (192.168.0.0/16)
  • CIDR của VPC của bạn không nên trùng với các mạng khác của bạn (ví dụ, mạng doanh nghiệp): Để tránh xung đột và xác định rõ ranh giới giữa các mạng, CIDR của VPC không nên chồng lấn với các mạng khác mà bạn đang sử dụng, như mạng doanh nghiệp.

Những quy định này giúp định rõ giới hạn và cấu hình của VPC trong AWS, bao gồm cả số lượng, kích thước và phạm vi của địa chỉ IP được sử dụng.

Tạo VPC mới và kết nối tới máy chủ EC2

Để tạo một VPC mới và kết nối máy chủ EC2 của bạn có thể chạy ngoài Internet, bạn có thể thực hiện các bước sau trên AWS Management Console:

  • Truy cập AWS Management Console:

  • Chọn dịch vụ VPC:

    • Trong thanh điều hướng, chọn "Services" và sau đó chọn "VPC" trong mục "Networking & Content Delivery".
  • Bắt đầu tạo VPC:

    • Trong giao diện VPC, chọn "Your VPCs" và sau đó nhấp vào nút "Create VPC".
  • Điền thông tin cơ bản cho VPC:

    1. Đặt tên cho VPC của bạn trong trường "Name tag".
    2. Chọn CIDR block cho VPC. (Các bạn nhớ nhập theo các IP Address Ranges mà AWS đã chỉ định để đảm bảo rằng nó không chồng lấn với các CIDR block khác trong hạ tầng của bạn! sử dụng một trong những giải sau mà AWS khuyến khích)
      1. 10.0.0.0 – 10.255.255.255 (10.0.0.0/8)
      2. 172.16.0.0 – 172.31.255.255 (172.16.0.0/12)
      3. 192.168.0.0 – 192.168.255.255 (192.168.0.0/16)
    3. Hướng dẫn:

Sau khi tính CIRD 10.0.0.0/20 chúng ta sẽ có kết quả như sau:

  • Tạo các mạng con (Subnets):

    Quyết định tạo ra nhiều mạng con privatepublic trong một VPC AWS thường phụ thuộc vào yêu cầu cụ thể của ứng dụng và môi trường triển khai. Dưới đây là một số trường hợp phổ biến khi bạn có thể muốn sử dụng cả mạng con private và public trong một VPC:

    1. Kiến Trúc Ứng Dụng 3 Tầng:

      • Khi triển khai ứng dụng theo mô hình 3 tầng với web servers ở tầng public, application servers ở tầng private, và databases ở tầng private. Điều này giúp tăng cường bảo mật bằng cách đặt các thành phần quan trọng vào mạng con private.
    2. Web Applications:

      • Đối với các ứng dụng web, có thể bạn muốn mạng con public để chứa các máy chủ web và mạng con private để chứa các máy chủ ứng dụng và database.
    3. Quản lý API hoặc Microservices:

      • Khi triển khai các API hoặc microservices, bạn có thể muốn mạng con public để các dịch vụ này có thể trực tiếp giao tiếp với Internet, trong khi các dịch vụ nội bộ được đặt trong mạng con private.
    4. Bảo Mật và Kiểm Soát Truy Cập:

      • Sử dụng mạng con private cho các máy chủ chứa dữ liệu nhạy cảm hoặc thông tin liên quan đến bảo mật, trong khi các máy chủ phục vụ nội dung công cộng được đặt trong mạng con public.
    5. Quản lý Dịch vụ Nội Bộ:

      • Khi bạn triển khai các dịch vụ nội bộ hoặc các ứng dụng trong doanh nghiệp mà bạn muốn giữ trong môi trường đóng cửa và không trực tiếp truy cập từ Internet.
    6. Môi Trường Thử Nghiệm và Phát Triển:

      • Trong môi trường thử nghiệm và phát triển, có thể muốn sử dụng mạng con public để kiểm thử các thành phần có thể truy cập từ Internet, trong khi giữ mạng con private cho các thử nghiệm nội bộ.
    7. Quản lý Chiến Lược IP:

      • Khi bạn muốn quản lý chiến lược địa chỉ IP và địa chỉ IP công cộng chỉ dành cho các máy chủ có thể truy cập từ Internet.

    Khi tạo mạng con private và public, hãy lưu ý rằng mạng con public thường có địa chỉ IP có thể truy cập từ Internet, trong khi mạng con private thường không trực tiếp truy cập từ Internet mà thông qua một mạng con public có thể truy cập được (thông qua Internet Gateway hoặc NAT Gateway).

  • Các bước để tạo mạng con:

    Trong ví dụ này mình sẽ tạo ra 2 subnet 1 subnet public cho web server1 subnet private cho database

    • Sau khi tạo VPC. Chọn "Subnets" trong menu bên trái và nhấp vào "Create subnet".
    • Chọn VPC mà bạn vừa tạo.
    • Đặt tên và chọn một CIDR block cho mạng con.
    • Hướng dẫn:
      • Với CIRD chính chúng ta đã tạo ở vpc_01 là 10.0.0.0/20 chúng ta sẽ có HostMax: 10.0.15.254 và Hosts/Net: 4094 IPs thì nhớ rằng các giải IPs của 1 subnet của chúng ta phải nằm trong khoảng 10.0.0.0 -> 10.0.15.254 mà thôi! không được vượt quá, Ví dụ: 
        • Với CIRD của subnet 10.0.2.0/24 trong public subnet như hình dưới bạn có thể thấy thì HostMax: 10.0.2.254 và Hosts/Net: 254 IPs thì nó vẫn nằm trong giải mạng của CIRD chính và tương tự private subnet cũng thế.
        • Lưu ý khi tạo subnet, nếu các bạn có nhiều 2 public subnet or private subnet thì các bạn nên chọn Availability Zone khác nhau để nó có thể backup data trong trường hợp có thảm họa nhé !
  • Tạo Internet Gateway:

    Internet Gateway (Cổng Internet) là một dịch vụ quan trọng trong mô hình mạng VPC (Virtual Private Cloud). Internet Gateway cho phép các tài nguyên trong VPC có thể kết nối với Internet.

    Dịch vụ này thường được sử dụng để kết nối các máy ảo và các nguồn tài nguyên khác trong môi trường đám mây của AWS với Internet. Khi một tài nguyên trong VPC cần truy cập Internet hoặc nhận truy cập từ Internet (ví dụ: một máy chủ web cần phải có thể truy cập từ các máy tính bên ngoài), Internet Gateway sẽ giúp định tuyến các gói tin giữa VPC và Internet.

    Một số điểm chính về Internet Gateway trong AWS bao gồm:

    1. Kết nối hai chiều: Internet Gateway cho phép kết nối hai chiều, tức là tài nguyên trong VPC có thể gửi và nhận dữ liệu từ Internet.

    2. Phí sử dụng: AWS tính phí cho việc sử dụng Internet Gateway dựa trên lưu lượng dữ liệu đi và đến qua nó.

    3. Khả năng định tuyến: Internet Gateway tự động hỗ trợ định tuyến dữ liệu giữa VPC và Internet mà không cần cấu hình đặc biệt.

    4. Bảo mật: Mặc dù Internet Gateway cung cấp tiện ích truy cập Internet cho tài nguyên trong VPC, bạn cần kết hợp nó với các biện pháp bảo mật khác như Network Access Control Lists (NACLs) và Security Groups để bảo vệ mạng của bạn.

    Khi tạo một VPC, bạn có thể gắn kết một Internet Gateway vào đó và sau đó cấu hình bảng định tuyến để chỉ định làm thế nào gói tin nên được xử lý khi đi và đến từ Internet.

    Hướng dẫn:

    • Chọn "Internet Gateways" trong menu bên trái và nhấp vào "Create internet gateway".
    • Gán một tên và sau đó kết nối nó với VPC của bạn.
  • Kết nối Internet Gateway với VPC:

    • Trong trang quản lý Internet Gateways, chọn Internet Gateway bạn vừa tạo và nhấp vào "Attach to VPC". Chọn VPC của bạn và xác nhận.
  • Tạo Route Table và thêm Route:

    Trong Amazon Web Services (AWS), Route Table (Bảng định tuyến) là một phần quan trọng của mô hình mạng Virtual Private Cloud (VPC). Bảng định tuyến xác định cách các gói tin được định tuyến giữa các mạng trong VPC. Mỗi VPC có ít nhất một bảng định tuyến, và bạn có thể tạo nhiều bảng định tuyến để quản lý cách định tuyến dữ liệu trong mạng của bạn.

    Một số điểm chính về Route Table trong AWS bao gồm:

    1. Mục đích chính: Route Table quyết định cách các gói tin được định tuyến trong mạng VPC. Nó xác định nơi mà các gói tin sẽ được chuyển đến (đích) dựa trên địa chỉ IP đích của chúng.

    2. Liên kết với Subnet: Mỗi Subnet trong VPC phải được liên kết với một bảng định tuyến. Điều này xác định cách các gói tin từ Subnet sẽ được định tuyến.

    3. Ghi đè được: Bạn có thể tạo nhiều bảng định tuyến và áp dụng chúng cho các Subnet cụ thể. Trong trường hợp xung đột giữa các quy tắc định tuyến, bảng định tuyến được liên kết với Subnet sẽ được ưu tiên.

    4. Quy tắc định tuyến: Mỗi bảng định tuyến chứa một số quy tắc định tuyến, mỗi quy tắc liên kết với một đích và chỉ định nơi mà các gói tin nên được gửi đến khi có địa chỉ IP đích tương ứng.

    5. Bảng Định tuyến Mặc định: Một VPC sẽ tự động có một bảng định tuyến mặc định, nhưng bạn có thể tạo các bảng định tuyến tùy chỉnh nếu cần thiết. Bảng định tuyến mặc định xác định cách các gói tin được định tuyến ra khỏi VPC.

    Khi tạo một Subnet trong VPC, bạn sẽ chọn một bảng định tuyến và liên kết nó với Subnet đó để quyết định cách định tuyến dữ liệu trong Subnet đó.

    Hướng dẫn:

    • Chọn "Route Tables" trong menu bên trái và nhấp vào "Create route table".
    • Gán tên cho bảng định tuyến (route table) và chọn VPC của bạn.
    • Chọn bảng định tuyến (Route table) bạn vừa tạo -> Edit route -> Add route và thêm một route với Destination là "0.0.0.0/0" và TargetInternet Gateway bạn đã tạo.
  • Liên kết Subnet với Route Table:

    • Chọn Route table mà bạn vừa tạo và nhấp vào tab "Subnet associations" -> "Edit Subnet associations"
    • Chọn mạng con vừa tạo (chọn những Public subnet bởi vì mình đang muốn những IPs trong những subnet này có thể truy cập ra ngoài internet) và liên kết public subnet này với bảng định tuyến (Route table).
  • Cấu hình Security Group:

    • Chọn "Security Groups" trong menu bên trái và tạo hoặc cấu hình một nhóm bảo mật cho máy chủ EC2 của bạn. Đảm bảo rằng nó cho phép kết nối từ Internet (đối với dịch vụ và cổng cần thiết).
  • Triển khai máy chủ EC2:

    • Quay lại dịch vụ EC2 và triển khai máy chủ EC2 trong một trong những mạng con bạn đã tạo.
    • copy đoạn cmd sau cho user data khi Lunch 1 EC2
    • #!/bin/bash
      # Use this for your user data (script from top to bottom)
      # install httpd (Linux 2 version)
      yum update -y
      yum install -y httpd
      systemctl start httpd
      systemctl enable httpd
      echo "<h1>Hello World from $(hostname -f)</h1>" > /var/www/html/index.html

Sau khi hoàn tất các bước trên, máy chủ EC2 của bạn sẽ có thể kết nối với Internet thông qua VPC mới của bạn. Hãy đảm bảo rằng máy chủ có địa chỉ IP công cộng và được cấp đủ quyền trong nhóm bảo mật để kết nối với các dịch vụ trên Internet, Và đây là kết quả:

Hiểu về VPC theo cách tưởng tượng

Để hiểu về VPC các bạn có thể tưởng tượng giống mình để nhớ dễ hơn: Mình tưởng tưởng là trong đất nước Việt Nam (Region), Nhà nước mở rộng thêm được 1 vùng đất mới và được đặt tên là Tỉnh Lạng Sơn (VPC), trong vùng đất này được chia ra làm nhiều Huyện(Subnets). Ví dụ Bắc Sơn(Subnet 1), Bình Gia(Subnet 2), Cao Lộc(Subnet 3), Lộc Bình(Subnet 4)... Trong mỗi Huyện thì có rất nhiều nhà dân(Public or Private EC2 Instance) ở trong đó. Những nhà dân này chỉ thuộc về một Huyện(Availability Zone) đó mà thôi tức là Mỗi người dân không thể thuộc về 2 Huyện trong 1 Tỉnh TRỪ trường hợp xảy ra động đất, mất nhà thì Nhà Nước sẽ chuyển họ sang Huyện khác. Để những Người dân này có thể đi giao thương sang Trung Quốc để mua bán ,trao đổi rồi lại mang hàng hóa về Việt Nam thì Nhà Nước cần phải xây dựng 1 cái Cửa Khẩu (Internet Getway). ĐỂ người dân biết đường đến cái cửa khẩu này thì Nhà Nước cần phải xây đường đi và có Map chỉ đường (Route Table) cho những người dân này. Với những người dân mà giao thương kiểu đi đi rồi lại về về như này sẽ được gọi là đi Giao Thương Ngoại (Ra ngoài Internet của những public instance), còn những người dân mà không muốn đi giao thương ngoại và chỉ muốn giao thương trong Huyện đó thôi thì được gọi Giao Thương Nội Bộ (nghĩa là các private instance trong 1 subnet private tự call qua lại cho nhau)

Bastion Hosts

Bastion Host (hoặc Jump Host) là một máy chủ được cấu hình đặc biệt trong mô hình mạng để cung cấp một điểm truy cập an toàn vào mạng nội bộ từ bên ngoài. Trong ngữ cảnh của AWS, Bastion Host thường được triển khai để cung cấp một cổng vào mạng riêng ảo (VPC) từ Internet.

Để sử dụng Bastion Host hiệu quả, máy chủ Bastion Host và các máy chủ private cần phải cùng nằm trong cùng một Virtual Private Cloud (VPC). Điều này giúp đảm bảo rằng Bastion Host có thể kết nối trực tiếp với các máy chủ private trong mạng nội bộ của bạn. Bạn hoàn toàn có thể triển khai một Bastion Host và các máy chủ private trong các VPC (Virtual Private Cloud) khác nhau trên AWS. Tuy nhiên, điều này đặt ra một số thách thức và yêu cầu cấu hình bổ sung để kết nối giữa chúng bạn sẽ cần xem xét và cấu hình một số yếu tố như: Peering giữa VPC và Khả năng định tuyến ...

Một số tính năng:

  1. Bảo mật: Bastion Host đóng vai trò như một lớp bảo vệ giữa mạng nội bộ và mạng không an toàn (thường là Internet). Người dùng từ bên ngoài kết nối vào Bastion Host trước khi có thể tiếp cận các tài nguyên nội bộ khác.

  2. Kết nối từ xa: Người dùng từ xa có thể kết nối vào Bastion Host thông qua giao thức an toàn như SSH (Secure Shell) để có thể truy cập vào mạng nội bộ. Bastion Host thường được cấu hình với các biện pháp bảo mật như mã hóa và xác thực hai yếu tố.

  3. Điểm trung tâm: Bastion Host thường đóng vai trò như một điểm trung tâm cho quản lý từ xa. Người quản trị có thể kết nối vào Bastion Host và sau đó sử dụng nó như một trạm để tiếp cận các máy chủ khác trong mạng nội bộ.

  4. Quản lý truy cập: Bastion Host có thể được cấu hình để giới hạn quyền truy cập của người dùng. Điều này có thể bao gồm việc sử dụng các cơ chế xác thực, quản lý quyền hạn, và ghi log hoạt động.

  5. Giám sát và Ghi log: Bastion Host thường được giám sát chặt chẽ để theo dõi các hoạt động của người dùng và cảnh báo về bất kỳ hoạt động đáng ngờ nào. Ghi log cũng nên được kích hoạt để phục vụ việc điều tra sự cố và tuân thủ bảo mật.

Khi triển khai Bastion Host trong AWS, bạn thường sẽ tạo một EC2 instance (máy ảo) và cấu hình nó để đáp ứng yêu cầu bảo mật và quản lý của bạn. Bastion Host thường được đặt trong một Subnet public của VPC và cần được cân nhắc về chi phí và hiệu suất khi triển khai.

Cách sử dụng Bastion Host trong AWS:

Để tạo một Bastion Host trong AWS, bạn cần thực hiện một số bước sau:

  1. Đăng nhập vào AWS Console:

  2. Chọn dịch vụ EC2:

    • Trong bảng điều khiển AWS, chọn dịch vụ "EC2" (Elastic Compute Cloud).
  3. Tạo EC2 Instance cho Bastion Host:

    • Nhấp vào nút "Launch Instance" để bắt đầu quá trình tạo máy ảo (EC2 instance).
    • Chọn AMI (Amazon Machine Image) phù hợp với hệ điều hành bạn muốn sử dụng (ví dụ: Amazon Linux, Ubuntu, etc.).
    • Chọn loại instance, ví dụ: t2.micro cho miễn phí tier.
    • Trong các bước tiếp theo, cấu hình các chi tiết như instance type, số lượng instances, network, subnet, security group, key pair, vv.
    • Trong phần "Configure Security Group", hãy đảm bảo rằng bạn mở cổng kết nối SSH (port 22) để có thể kết nối vào Bastion Host từ xa.
  4. Kết nối vào Bastion Host:

    • Một khi EC2 instance của bạn đã được khởi tạo, bạn có thể sử dụng SSH để kết nối vào Bastion Host. Sử dụng địa chỉ IP public hoặc DNS của Bastion Host và key pair bạn đã chọn khi tạo instance.
    • chmod 400 key_bastion_host.pem
      ssh -i /path/to/key_bastion_host.pem ec2-user@bastion-host-public-ip
  1. Kết nối từ Bastion Host đến các máy chủ private:
    • Bạn có thể sử dụng Bastion Host để kết nối đến các máy chủ private trong mạng nội bộ của bạn. Sử dụng SSH từ Bastion Host để nhảy tới máy chủ private:
    • Trong máy chủ Bastion host các bạn tạo 1 file mới với tên là key_server_private.pem
    • touch key_server_private.pem
      chmod 400 key_server_private.pem
    • Sau đó SSH vào private server bằng lệnh dưới
    • ssh -i /path/to/key_server_private.pem ec2-user@private-server-private-ip​

Lưu ý: Hãy đảm bảo rằng các máy chủ private được cấu hình để chỉ chấp nhận kết nối từ Bastion Host, và Bastion Host được cấu hình với các biện pháp bảo mật an toàn.

  1. Quản lý Bảo mật và Log:
    • Cấu hình log và giám sát trên Bastion Host để theo dõi các hoạt động và đảm bảo rằng nó được sử dụng an toàn.

Lưu ý: Cần lưu ý rằng sử dụng Bastion Host là một chiến lược, và có nhiều cách tiếp cận khác nhau tùy thuộc vào yêu cầu cụ thể của bạn. Hãy xem xét và tùy chỉnh cấu hình của bạn dựa trên yêu cầu bảo mật và hạ tầng của bạn.

NAT Instance

NAT (Network Address Translation) Instance là một dạng của NAT được triển khai trên một máy ảo chạy trên môi trường đám mây, thường là trong các dịch vụ như Amazon Web Services (AWS). Mục đích chính của NAT Instance là cung cấp kết nối Internet cho các máy ảo (instances) ở trong mạng riêng ảo (VPC - Virtual Private Cloud) mà không cần mở cổng trực tiếp từ Internet đến các máy ảo đó.

Ưu điểm của NAT Instance:

  1. Kiểm soát linh hoạt: NAT Instance cung cấp kiểm soát linh hoạt hơn đối với cấu hình và tùy chỉnh hơn so với NAT Gateway. Bạn có thể quản lý nhiều cài đặt hệ thống và network trên NAT Instance.

  2. Tính linh động và Tùy chỉnh: NAT Instance có thể chạy trên các loại instance khác nhau với hiệu suất và cấu hình tùy chỉnh. Điều này giúp đáp ứng linh hoạt với nhu cầu và yêu cầu cụ thể của bạn.

  3. Chi phí thấp hơn cho lưu lượng mạng lớn: Trong một số trường hợp, NAT Instance có thể có chi phí thấp hơn cho lưu lượng mạng lớn so với NAT Gateway. Điều này đặc biệt quan trọng nếu bạn có nhu cầu chuyển tiếp lượng lớn dữ liệu.

Nhược điểm của NAT Instance:

  1. Quản lý và Bảo trì: NAT Instance đòi hỏi người quản trị hệ thống phải quản lý và bảo trì một máy ảo, bao gồm việc cập nhật hệ điều hành và triển khai các biện pháp an ninh. Điều này có thể đòi hỏi công sức quản lý lớn hơn so với NAT Gateway.

  2. Hiệu suất có thể không đảm bảo cao như NAT Gateway: Trong một số trường hợp, NAT Instance có thể có hiệu suất không cao bằng NAT Gateway. NAT Gateway được quản lý tự động và được tối ưu hóa để cung cấp hiệu suất tốt và khả năng mở rộng.

  3. Phức tạp hóa cấu hình: Việc cấu hình NAT Instance có thể phức tạp hơn, đặc biệt là đối với người mới sử dụng AWS. NAT Gateway có giao diện đơn giản hơn và ít yêu cầu cấu hình.

  4. Khả năng mở rộng hạn chế: Trong một số trường hợp, NAT Instance có thể đối mặt với hạn chế về khả năng mở rộng so với NAT Gateway, đặc biệt là khi lưu lượng mạng tăng lên đột ngột.

Trong nhiều trường hợp, sự đơn giản và tính tự động của NAT Gateway là một lựa chọn phổ biến hơn so với NAT Instance, đặc biệt là khi bạn cần một giải pháp NAT đơn giản và hiệu quả.

Dưới đây là các bước để tạo một NAT Instance trên AWS:

  1. Đăng nhập vào AWS Console:

  2. Chọn EC2 Service:

    • Trong bảng điều khiển AWS, chọn dịch vụ EC2.
  3. Chọn "Launch Instance":

    • Chọn "Launch Instance" để bắt đầu quá trình tạo máy ảo mới.
  4. Chọn AMI (Amazon Machine Image):

    • Chọn AMI phù hợp với NAT Instance. Các AMI thông thường được sử dụng cho NAT Instance là Amazon Linux hoặc một số AMI được cung cấp bởi AWS Marketplace or Community AMIs.
  5. Chọn loại instance:

    • Chọn loại instance phù hợp với nhu cầu của bạn. NAT Instances thường sử dụng các loại instance có hiệu suất vừa đủ và chi phí hợp lý.
  6. Cấu hình instance:

    • Trong quá trình cấu hình, bạn có thể chọn VPC và subnet mà bạn muốn NAT Instance được triển khai.
  7. Tắt Change Source / destination check (Bắt buộc)
    • Chọn NAT Instance trong danh sách các instances của bạn.
    • Chọn tab "Actions" và chọn "Networking."
    • Tại đây, bạn sẽ thấy tùy chọn để tắt tính năng "Source/Destination Check."
  8. Gắn Elastic IP (optional):

    • Để đảm bảo rằng địa chỉ IP của NAT Instance không thay đổi khi nó được khởi động lại, hãy gắn một Elastic IP (EIP) vào NAT Instance.
  9. Cấu hình Security Group:

    • Xác định và cấu hình các quy tắc an ninh (security group) để đảm bảo rằng NAT Instance chỉ cho phép lưu lượng mạng cần thiết (có thể set All traffic).
  10. Thêm Route trong Route Table:

    • Thêm một route trong route table của subnet mà NAT Instance thuộc về, với địa chỉ IP đích là 0.0.0.0/0 và chọn target là Instance, rồi chọn nat instance mà bạn đã tạo trong ec2 và cuối cùng thì thêm subnet associations (private).
  11. Hoàn tất và Khởi chạy Instance:

    • Để có thể test các bạn vào Bastion Host server sau đó thì SSH vào Private server và thử ping đến google.com xem nó có thể thực thi được ra ngoài internet ko nhé!

Lưu ý rằng NAT Gateway là một giải pháp NAT khác được cung cấp bởi AWS, thường được ưa chuộng hơn NAT Instance vì nó không yêu cầu quản lý cấu hình hệ thống và có khả năng mở rộng tốt hơn.

NAT Gateway

NAT Gateway (Network Address Translation Gateway) là một dịch vụ NAT (Network Address Translation) quản lý được cung cấp bởi Amazon Web Services (AWS). NAT Gateway giúp các instance trong mạng riêng ảo (VPC) truy cập Internet mà không tiết lộ địa chỉ IP của chúng, đồng thời giữ cho các instance không được phép truy cập từ Internet.

Ưu điểm của NAT Gateway:

  1. Quản lý Tự động: NAT Gateway là một dịch vụ quản lý tự động hoàn toàn bởi AWS. Không cần phải quản lý một máy ảo như NAT Instance. Điều này giảm độ phức tạp và công sức quản lý từ phía người sử dụng.

  2. Hiệu suất và Khả năng Mở rộng Tốt: NAT Gateway được tối ưu hóa để cung cấp hiệu suất cao và khả năng mở rộng tự động. Nó có thể xử lý lưu lượng mạng lớn và tự động mở rộng theo nhu cầu.

  3. Bảo mật Tốt: NAT Gateway được triển khai trong môi trường phòng chống xâm nhập và có tường lửa tích hợp, giúp bảo vệ các instance trong VPC khỏi các truy cập trực tiếp từ Internet.

  4. Dễ Cấu hình: NAT Gateway có giao diện đơn giản và dễ cấu hình. Không cần quản lý Security Group đặc biệt, và bạn chỉ cần một vài bước để triển khai và cấu hình.

Nhược điểm của NAT Gateway:

  1. Chi phí cao hơn NAT Instance cho lưu lượng lớn: Trong một số trường hợp, chi phí cho việc sử dụng NAT Gateway có thể cao hơn so với việc sử dụng NAT Instance, đặc biệt là khi có lưu lượng mạng lớn.

  2. Không hỗ trợ ICMP và Port Forwarding: NAT Gateway không hỗ trợ ICMP (Ping) và port forwarding, điều này có thể là một hạn chế nếu bạn cần thực hiện các hoạt động này.

  3. Khả năng Định hình Hạn chế: NAT Gateway không cung cấp các tùy chọn cấu hình chi tiết như NAT Instance. Nếu bạn cần kiểm soát nhiều cài đặt hệ thống và network, NAT Instance có thể phù hợp hơn.

Tùy thuộc vào yêu cầu cụ thể của bạn, bạn có thể chọn giữa NAT Gateway và NAT Instance. NAT Gateway thường được ưa chuộng trong nhiều trường hợp do tính đơn giản và hiệu suất cao.

Bước thực hiện NAT Gateway trong AWS:

  1. Truy cập AWS Management Console:

  2. Chọn NAT Gateways:

    • Trong bảng điều khiển AWS, chọn dịch vụ VPC và sau đó chọn "NAT Gateways" từ bên trái.
  3. Tạo NAT Gateway:

    • Chọn "Create NAT Gateway" và sau đó lựa chọn subnet trong VPC nơi NAT Gateway sẽ được triển khai (chọn public subnet).
  4. Chọn Elastic IP:

    • Chọn một Elastic IP để gán cho NAT Gateway. Elastic IP giúp đảm bảo rằng địa chỉ IP của NAT Gateway không thay đổi.
  5. Xác nhận và Tạo NAT Gateway:

    • Xác nhận các cài đặt và chọn "Create NAT Gateway" để bắt đầu quá trình tạo NAT Gateway.
  6. Cập nhật Route Table:

    • Sau khi NAT Gateway được tạo, bạn cần cập nhật route table của subnet mà bạn muốn kết nối với Internet. Thêm một route với địa chỉ IP đích là 0.0.0.0/0 và NAT Gateway làm đích.
  7. Kiểm Tra và Xác nhận:

    • Sau khi NAT Gateway đã được tạo và route table đã được cập nhật, kiểm tra kết nối bằng cách thử nghiệm kết nối Internet từ các instance trong subnet.

Lưu ý rằng NAT Gateway có phí sử dụng theo giờ và phí dữ liệu truyền ra Internet. Việc sử dụng NAT Gateway hoặc NAT Instance tùy thuộc vào yêu cầu cụ thể và mô hình triển khai của bạn.

so sánh giữa NAT Gateway và NAT Instance

  1. Quản lý:

    • NAT Gateway: Là một dịch vụ được quản lý hoàn toàn bởi AWS. AWS tự động thực hiện các công việc vận hành như cập nhật, bảo trì và đảm bảo sẵn có. Bạn không cần quản lý cơ sở hạ tầng cụ thể.
    • NAT Instance: Đòi hỏi sự cấu hình và quản lý thủ công. Bạn phải tạo và cấu hình một EC2 instance để làm thiết bị NAT. Việc này bao gồm việc thiết lập security groups, bảng định tuyến và đảm bảo sẵn có bằng cách sử dụng nhiều instance.
  2. Khả năng mở rộng:

    • NAT Gateway: NAT Gateway có khả năng mở rộng cao và có thể xử lý lưu lượng lớn. Nó tự động mở rộng dựa trên nhu cầu và bạn không cần lo lắng về cơ sở hạ tầng cụ thể.
    • NAT Instance: Khả năng mở rộng của NAT Instance giới hạn bởi loại instance bạn chọn. Bạn có thể cần thay đổi kích thước instance thủ công hoặc triển khai nhiều instance với một load balancer để tăng khả năng chịu tải.
  3. Sẵn có cao:

    • NAT Gateway: NAT Gateway được thiết kế để có sẵn có cao. Chúng nằm trong một Khu vực Có sẵn cụ thể và tự động chuyển giao sang Khu vực khác nếu cần.
    • NAT Instance: Để đạt được sẵn có cao với NAT Instance, bạn cần triển khai chúng ở nhiều Khu vực và thực hiện cấu hình bổ sung như Auto Scaling và các tập lệnh tùy chỉnh để xử lý chuyển đổi.
  4. Nhóm bảo mật:

    • NAT Gateway: NAT Gateway được liên kết với nhóm bảo mật, nhưng bạn không quản lý trực tiếp nhóm bảo mật đó. Bạn xác định nhóm bảo mật khi tạo NAT Gateway, nhưng các thay đổi được quản lý bởi dịch vụ AWS.
    • NAT Instance: Bạn có nhiều quyền kiểm soát hơn đối với nhóm bảo mật cho NAT Instance và bạn phải cấu hình chúng thủ công.
  5. Elastic IP:

    • NAT Gateway: NAT Gateway tự động được gán một địa chỉ IP Elastic công cộng. Địa chỉ IP này không thay đổi trừ khi bạn xóa và tạo lại NAT Gateway.
    • NAT Instance: Bạn cần liên kết một địa chỉ IP Elastic với NAT Instance để đảm bảo một địa chỉ IP công cộng nhất quán, và bạn phải quản lý địa chỉ IP Elastic.
  6. Chi phí:

    • NAT Gateway: NAT Gateway là một dịch vụ được quản lý và bạn được tính phí dựa trên việc sử dụng (xử lý dữ liệu). Thường thì giá của nó cao hơn so với NAT Instance.
    • NAT Instance: NAT Instance được tính phí dựa trên loại instance EC2 bạn chọn và chi phí xử lý dữ liệu. Chúng có thể phù hợp hơn với lưu lượng thấp đến trung bình.

Tóm lại, nếu bạn ưu tiên sự thuận tiện, khả năng mở rộng và giảm công việc quản lý, NAT Gateway có thể là lựa chọn tốt hơn. Nếu bạn có yêu cầu cụ thể, như kiểm soát nhiều hơn về môi trường và chi phí, NAT Instance có thể là một lựa chọn phù hợp.

Network Access Control List (NACL)

Network Access Control List (NACL) là một dịch vụ trong môi trường Amazon Web Services (AWS) được sử dụng để kiểm soát lưu lượng mạng đến và đi từ các subnet trong một Virtual Private Cloud (VPC). NACLs hoạt động ở mức subnet và cung cấp một lớp bảo vệ thêm vào sau Security Groups.

Dưới đây là một số đặc điểm và cách tạo Network Access Control List (NACL):

Đặc điểm của NACL:

  1. Kiểm soát truy cập mạng:

    • NACLs kiểm soát truy cập mạng dựa trên quy tắc đặc biệt mà bạn xác định.
    • Chúng áp dụng cho toàn bộ subnet, không phụ thuộc vào các tài nguyên cụ thể như Security Groups.
  2. Thứ tự quy tắc:

    • Mỗi quy tắc trong NACL được đánh một số thứ tự, và quy tắc được áp dụng theo thứ tự tăng dần.
    • Quy tắc đầu tiên được kiểm tra trước, nếu nó không khớp, quy tắc tiếp theo sẽ được xem xét và tiếp tục cho đến khi có một quy tắc khớp.
  3. Mức độ ưu tiên:

    • NACLs cung cấp mức độ ưu tiên thông qua thứ tự của các quy tắc.
    • Quy tắc có số thứ tự thấp hơn được ưu tiên cao hơn. Ví dụ, quy tắc có số thứ tự 100 sẽ được xem xét trước quy tắc có số thứ tự 200.
  4. Mặc định deny all:

    • Khi bạn tạo một NACL mới, tất cả các quy tắc mặc định là "deny all". Điều này có nghĩa là nếu không có quy tắc nào khớp, lưu lượng sẽ bị từ chối.

Cách tạo Network Access Control List (NACL) trong AWS:

  1. Truy cập bảng điều khiển AWS:

  2. Chọn NACL:

    • Trong mục "VPC Dashboard", chọn "Network ACLs" từ menu bên trái.
  3. Tạo NACL mới:

    • Nhấp vào nút "Create Network ACL".
    • Giao diện tạo mới sẽ xuất hiện. Đặt tên cho NACL và chọn VPC mà bạn muốn liên kết NACL đến.
  4. Thiết lập quy tắc:

    • Mỗi NACL có hai bảng quy tắc: Inbound Rules và Outbound Rules.
    • Thêm các quy tắc dựa trên yêu cầu bảo mật của bạn. Chọn loại quy tắc (ALLOW hoặc DENY), gán một số thứ tự và cấu hình các điều kiện.
  5. Lưu và áp dụng:

    • Sau khi cấu hình quy tắc, nhấp vào nút "Save" hoặc "Apply Rule Changes" để áp dụng thay đổi.

Lưu ý rằng các NACLs không thể được gán trực tiếp cho các tài nguyên, mà chúng được liên kết với các subnet trong VPC. Mỗi subnet có thể chỉ được liên kết với một NACL tại một thời điểm, và một NACL có thể liên kết với nhiều subnet.

 
 

Bình luận (0)

Michael Gough
Michael Gough
Michael Gough
Michael Gough
Michael Gough
Michael Gough
Michael Gough
Michael Gough
Michael Gough
Michael Gough
Michael Gough
Michael Gough
Michael Gough
Michael Gough
Michael Gough
Michael Gough
Learning English Everyday