Skip to main content

Command Palette

Search for a command to run...

VPC cơ bản

Published
4 min readView as Markdown
H

I am a software engineer with 4 years of experience in developing web applications. My expertise lies in backend development, and I have a deep interest in problem-solving, algorithms, system design, and databases. I am always eager to learn and embrace challenging projects, striving to deliver applications that exceed user expectations. I also love sharing my knowledge and learning from others to foster mutual growth and improvement

VPC

  • AWS Virtual private cloud là một mạng ảo tùy chỉnh nằm bên trong AWS Cloud và tách biệt với toàn bộ thế giới bên ngoài. Khái niệm này cũng tương tự giống với việc triển khai mạng riêng trong on-premise.

  • Bên trong VPC, bạn được toàn quyền kiểm soát môi trường của mình, bao gồm mạng, các tài nguyên,..

  • Các bước để tạo VPC như sau:

    • Tạo account IAM

    • Chọn region, đối với Việt Nam thì sẽ chọn region Singapore (ap-southeast-1) vì độ trễ nhỏ nhất.

    • Tạo VPC include multi AZ

  • Khai báo không gian dải mạng IPv4 hoặc IPv6 cho VPC. Ta chỉ định phạm vi địa chỉ IPv4 bằng cách lựa chọn một Classless Inter-Domain Routing (CIDR), chẳng hạn như 10.0.0.0/16. Phạm vi chỉ định sẽ không được thay đổi khi VPC được tạo. Phạm vi địa chỉ có thể là /16 (65536 địa chỉ khả dụng) hoặc nhỏ bằng /28 (16 địa chỉ khả dụng)

  • Giới hạn tối đa được phép tạo là 5 VPC trên 1 region / 1 account

  • VPC thường dùng phân tách môi trường (Prod, dev, test, staging).

Subnet

  • Subnet là một phân đoạn (mạng con) của dải địa chỉ IP mà bạn sử dụng khi khởi tạo Amazon VPC, cung cấp trực tiếp dải mạng hoạt động cho các tài nguyên AWS có thể chạy bên trong nó như Amazon EC2, Amazon RDS.

  • VPC subnet sẽ nằm trong 1 Availability Zone (AZ) cụ thể.

  • Khi tạo subnet, chỉ định CIDR cho mạng đó và là tập con của VPC CIDR. Subnet nhỏ nhất có thể tạo được là /28 (16 địa chỉ).

  • Thông thường khi thiết kế subnet, người ta sẽ chia thành 2 subnet là Public subnet và Private Subnet. Public Subnet dùng cho các tài nguyên truy cập trực tiếp Internet bên ngoài, còn Private Subnet cho các tài nguyên giao tiếp nội bộ bên trong. Các subnet cũng được chia đều lên các AZ khác nhau để tăng tính khả dụng (High Availability)

  • AWS sẽ giữ 5 địa chỉ IP khi tạo Subnet, gồm 4 địa chỉ đầu tiên và 1 địa chỉ cuối cùng. ví dụ CIRD là 10.10.1.0/24 (256 địa chỉ), AWS sẽ giữ lại các địa chỉ sau:

    • địa chỉ network (10.10.1.0)

    • địa chỉ broadcast (10.10.1.255)

    • đại chỉ cho bộ định tuyến (10.10.1.1)

    • địa chỉ cho DNS (10.10.1.2)

    • đại chỉ cho tính năng tương lai (10.10.1.3)

Route table

  • Route table là bảng định tuyến, để xác định đường đi cho mạng.

  • khi tạo VPC, AWS sẽ tạo 1 default route table, default route table không thể bị xoá và chỉ chứa 1 route duy nhất cho phép tất cả các subnet VPC liên lạc với nhau (như hình dưới chính là dòng Target Local).

  • Route table được gán vào subnet.

  • Có thể custom route table, tuy nhiên không thể xoá default route.

Elastic network interface (ENI)

  • Là card mạng ảo, giúp các tài nguyên có thể kết nối mạng.

  • ENI tách biệt với các tài nguyên, nên có thể chuyển sang các EC2 instance khác.

  • Khi chuyển sang 1 máy chủ mới, một card mạng ảo vẫn sẽ duy trì:

    • địa chỉ IP Private

    • địa chỉ elastic ip address

    • địa chỉ mac

Elastic ip address (EIP)

  • EIP là 1 địa chỉ public IPv4 tĩnh, có thể liên kết 1 ENI

  • Khác với địa chỉ IPv4 được gán dynamic khi tạo instance, EIP sẽ không mất đi ngay cả khi ta stop instance. Còn nếu ta stop instance với dynamic IPv4, thì khi khởi động lại instance sẽ được gán địa chỉ mới.

Internet gateway (IGW)

  • Là thành phần của VPC giúp các tài nguyên trong có thể giao tiếp với Internet bên ngoài.

  • IGW có khả năng mở rộng quy mô theo chiều ngang (scale out), được quản lý trực tiếp bởi AWS, không cần cấu hình autoscale hoặc HA.

  • Khi các EC2 ở Public subnet muốn giao tiếp bên ngoài internet, IGW sẽ biên dịch địa chỉ Private IP của EC2 thành địa chỉ Public IP được gắn với nó. Các gói tin khi nhận về cũng được IGW biên dịch thành địa chỉ Private IP theo chiều ngược lại.

NAT Gateway

  • Mặc định các EC2 instance trong Private Subnet sẽ không thể giao tiếp được với Internet bên ngoài, chẳng hạn cần cài thư viện,.. Để có thể giao tiếp mạng bên ngoài, cần có NAT Gateway hoặc NAT Instance.

  • EC2 ở private subnet sẽ giao tiếp với Internet thông qua NAT Gateway (hoặc NAT Instance). Lưu ý, NAT Gateway phải đặt ở Public subnet và cần phải cấu hình Route Table 2 đường, 1 đường từ Private subnet đến NAT và 1 đường từ NAT đến IGW.

  • NAT Gateway được quản lí bởi AWS, còn NAT Instance là EC2 instance được quản lí thủ công.