Tổng hợp AWS: Tìm hiểu về Amazon VPC
- June 28, 2021
- Posted by: codestar
- Category: Uncategorized
Trong bài viết này mình sẽ không đi theo các trình tự nhất định, như đưa ra các khái niệm, chức năng, cách sử dụng… Vì những phần này chúng ta có thể tự tìm hiểu trên mạng được. Ở đây mình chỉ muốn note lại những điều theo mình là cơ bản nhưng rất hữu dụng, giúp cho việc thi chứng chỉ AWS hay thực tế hơn là để phục vụ công việc với AWS.
Amazon VPC là gì?
- VPC là viết tắt của Virtual Private Cloud.
- Hiểu nôm na là trung tâm dữ liệu ảo trên AWS Cloud.
- Nó cho phép chúng ta cung cấp một phần tách biệt của AWS Cloud, nơi mà chúng ta có thể thiết lập một mạng ảo và khởi chạy các AWS resources.
Một số thứ hay ho mà ta có thể làm trên VPC
Tạo connect VPN
- Bạn có thể kết nối mạng của bạn(ví dụ như mạng công ty, phòng trọ) với VPC.
- Lúc này có thể sử dụng VPC giống như một phần mở rộng của mạng công ty, giúp lưu trữ các ứng dụng và tài nguyên của công ty.
VPC peering
- Như phần khái niệm thì mỗi VPC thì sẽ là một mạng riêng ảo, tách biệt với nhau. Vậy nên, để hỗ trợ kết nối giữa chúng, chúng ta có thể sử dụng VPC peering.
- AWS cho phép kết nối giữa 2 VPC, chúng giao tiếp với nhau thông qua một private IP như thể nằm cùng một mạng.
- Chúng ta có thể peer giữa 2 VPC:
- Thuộc cùng 1 account hoặc khác account- Cùng khu vực và cũng có thể khác khhu vực
- Một điểm quan trọng cần nhớ trong phần peering này là: NO TRASITIVE PEERING!!! Có nghĩa là ko hỗ trỡ bắc cầu. Ví dụ chỉ có A peer B, B peer C, thì A và C sẽ ko được peer với nhau.
NAT
Trong phần NAT này sẽ có liên quan tới 2 khái niệm là Public Subnet và Private Subnet, nên nếu chưa biết thì các bạn dành ít phút xem lại trước nhé.
Bạn có thể hiểu NAT như một thiết bị có chức năng là enable cho các instances trong private subnet kết nối với internet bên ngoài hoặc các dịch vụ AWS khác. Khi có các traffic đi ra từ private subnet, hoặc các phần hồi từ internet, NAT đều chuyển đổi chúng thành IPv4.
Vì chức năng của nó như vậy nên chúng ta thường sử dụng nó trong các trường hợp như muốn update version sql cho database, hay muốn install một packages nào đó cho EC2 khi chúng nằm trong private subnet…
Một số điểm cần nhớ:
- Phải được đặt trong public subnet.
- Muốn gắn nó với private subnet thì phải thông qua route table.
- Gồm 2 loại là Nat Gateway và Nat Instance, Ở đây mình xin suggest nên dùng NAT Gateway. Bạn có thể tìm hiểu cụ thể hơn trên https://docs.aws.amazon.com để có thể thấy được sự khác nhau giữa chúng và vì sao mình lại suggest như vậy.
- Không hỗ trợ traffic của IPv6, nó sử dụng egress-only Internet gateway (có nghĩa là cổng kết nối chỉ đi ra).
- Không nên sử dụng 1 NAT Gateway chung cho nhiều AZs, vì khi AZ chứa cái NAT đó bị chết, thì sẽ ảnh hưởng tới các AZ khác. Nên tạo riêng NAT cho mỗi AZ.
À quên mất, có một chú ý lớn cho phần này là nó mất phí đó, có cả phí theo giờ và theo lưu lượng sử dụng, nên các bạn cần sử dụng hợp lý nhé :v
NACLs
- NACLs nghe quen quen này, hình như là Natri Clorua (NaCl) đã học trong môn hóa??, nhưng không phải đâu nhé :v. Ở đây NACLs là viết tắt của Network Access Control Lists, là một layer tùy chọn cho bảo một VPC của bạn, hoạt động giống như firewall để kiểm tra lưu lượng truy cập vào ra của các subnet (gần giống với Sercurity Group).
- Ban đầu khi khởi tạo VPC thì đã có sẵn 1 NACLs default rồi. Mặc định thì nó sẽ cho phép mọi inbound và outbound.
- Chúng ta cũng có thể tự tạo 1 NACLs. Nhưng mặc định của nó sẽ là chặn mọi inbound và outbound.
- NACLs là một danh sách các quy tắc được đánh số thứ tự (rule này do chúng ta tạo), thứ tự ưu tiên của các rule là từ trên xuống dưới (từ thấp tới cao).
- Mỗi subnet thì đều phải liên kết với 1 NACL, và chỉ duy nhất 1. Khi mà đổi liên kết sang 1 NACL mới thì liên kết cũ sẽ bị bỏ.
- 1 NACL thì có thể liên kết được với nhiều subnet
- NACLs là stateless, còn sercurity group thì là statefull. Một request tới thì sẽ có 1 response phản hồi, statefull thì sẽ chỉ check truy cập cho request tới, còn stateless là sẽ check cho cả response phản hồi. (Xem thêm khái niệm inbound và outbound).
- Để block 1 địa chỉ IP thì sẽ sử dụng NACLs chứ ko sử dụng Security Group.
VPC Flow Logs
Nghe tên thì chúng ta cũng đoạn được phần nào chức năng của nó đúng không ạ. VPC Flow Logs là một tính năng cho phép bạn nắm bắt thông tin về các traffic đến và đi. Khi đã khởi tạo Flow logs thì chúng ta có thể xem nó trên Amazon CloudWatch Logs. Một số điểm cần nhớ trong phần này:
- Chúng ta ko thể add tag cho flow log.
- Chúng ta cũng không thể enable flow log cho VPCs được peer với VPC của mình, trừ khi nó thuộc account của bạn.
- Sau khi đã tạo flow log, thì sẽ ko thể thay đổi lại config được nữa. chú ý những IP mà flow log sẽ ko theo dõi là:
- Các instances được contact với DNS server của Amazon.
- Traffic active Amazon Window của một instance Window.
- Traffic vào và ra của 169.254.169.254 for instance metadata (câu này mình cũng chưa rõ lắm).
- Traffic vào ra của 169.254.169.123 của dịch vụ đồng bộ thời gian (Amazon Time Sync Service).
- DHCP trafic.
- 5 IP addresses are reserved:
10.0.0.0: Network address.10.0.0.1: Reserved by AWS for the VPC router.10.0.0.2: Liên quan tới DNS server.10.0.0.3: Reserved by AWS for future use.10.0.0.255: Network broadcast address. We do not support broadcast in a VPC, therefore we reserve this address.
- Traffic between an endpoint network interface and a Network Load Balancer network interface.
Bastion host
- Được sử dụng như một proxy, là một biện pháp bảo mật giúp giảm tấn công vào cơ sở hạ tầng của bạn.
- Sử dụng SSH or RDP
- Ở Australia thì được gọi là Jump Boxes (đây là thông tin thêm, được cung cấp ở trong 1 khóa học aws của A Cloud Guru) Các bạn vào Sử dụng bastion host trong vpc để xem nhé.
Direct Connect
- Là một giải pháp dịch vụ đám mây giúp đơn giản hóa việc tạo kết nối riêng biệt giữa cơ sở hạ tầng của bạn và AWS.
- Trong một số trường hợp sẽ giúp giảm chi phí mạng
- Tăng lưu lượng băng thông
- An toàn, ổn định và rất tin cậy
VPC Endpoints
- Nó đóng vai trò như một cầu nối, giúp tạo kết nối riêng biệt(kết nối nội bộ, chỉ trong AWS) để các instance trong VPC có thể giao tiếp được với các dịch vụ khác trên AWS mà không cần đi qua Internet, NAT, VPN, hay AWS Direct Connect.
- Có 2 loại là: Interface Endpoints và Gateway Endpoints
Vậy là chúng ta đã đi tìm hiểu về những thành phần và chức năng chính trong VPC. Hãy comment những ý kiến của các bạn để bài viết được hoàn chỉnh hơn nhé. Sẽ còn những bài viết tổng hợp như thế này nữa, rất cảm ơn các bạn đã quan tâm!!!
Tác giả: Nguyễn Bảo Trung