[THÀNH PHẦN MẠNG CƠ BẢN TRÊN AWS] PHẦN 4: VPC ENDPOINT

23/11/2021 22
thanh phan mang aws 1
CODEWELL

Nằm trong chuỗi bài Thành phần cơ bản mạng trên AWS, trong phần 4 này, CO-WELL Asia sẽ tiếp tục giới thiệu đến một thành phần khác, chính là VPC Endpoint.

Trước khi đọc bài viết này, bạn có thể tham khảo các bài viết trước về thành phần mạng cơ bản của AWS tại đây:

1.Một số khái niệm cơ bản

  • Elastic network interface (ENI): là một thành phần mạng logic trong VPC đại diện cho một card mạng ảo. Nó có thể bao gồm các thuộc tính như: một địa chỉ IPv4 nội bộ, một public IPv4, một địa chỉ MAC…
  • AWS PrivateLink: cung cấp kết nối một cách bảo mật giữa VPC và các dịch vụ của AWS hay các ứng dụng chạy trên on-premises.

 

2.Một số loại endpoint trong VPC

  • Endpoint service: ta có một application được chạy bên trong VPC và thiết lập một endpoint để kết nối với ứng dụng đó. Các AWS Account, dịch vụ khác có thể tạo kết nối từ VPC của chúng đến endpoint của chúng ta.
  • Endpoint: 2 loại endpoin thông dụng
    • Gateway endpoint: một gateway endpoint được coi là một cánh cổng mà sẽ được khai báo trong bảng định tuyền, chỉ định để các gói tin đi qua để truy cập đến một số dịch vụ được support bởi AWS như S3, DynamoDB.
    • Interface endpoint: là một ENI với một địa chỉ IP nội bộ từ dải IP của mạng con, đóng vai trò là điểm đầu vào cho các gói tin đến một số dịch vụ được hỗ trợ. Nó cho phép bạn truy cập một cách bảo mật bằng cách sử dụng các địa chỉ IP nội bộ.

 

3. Chi tiết về 2 loại VPC Endpoint thông dụng

Ở bài viết này, mình sẽ chỉ giới thiệu đến mọi người 2 loại endpoint thông dụng là interface endpoint và gateway endpoint. Còn về endpoint services có thể mình sẽ chia sẻ với các bạn trong một bài viết riêng.

 

3.1.Interface endpoint

Giả sử có một yêu cầu đó là, đẩy log của một ứng dụng đang chạy trong server ảo lên Amazon Cloudwatch Logs. Để thực hiện việc này, nếu như ứng dụng đó đang được chạy trong public subnet thì sẽ có 2 cách.

 

Cách thứ nhất: Qua internet

 

1 1

 

Trước tiên server được gắn một Role có quyền ghi log lên CloudWatch Logs. Khi gửi log thì dữ liệu sẽ đi qua internet gateway ra ngoài internet và đến DNS công khai của Cloudwatch Logs.

Đẩy log bằng CLI.

 

2 1

 

Check log trên Cloudwatch Logs.

 

3 1

 

Cách thứ hai: Qua endpoint

4 1

 

Bước 1: Tạo endpoint

Mở VPC Console → Chọn Endpoints ở menu bên trái → Chọn Create Endpoint → Nhập và chọn nhưng thông tin cần thiết → Chọn Create endpoint

5 1

  • Service category: lựa chọn service do AWS hỗ trợ, do ta tự tạo ra hay do một bên thứ 3. Ở ví dụ này ta chọn AWS services.
  • Service Name: ở đây có rất nhiều service nên ta sẽ lọc để lựa chọn cho nhanh. Ở ví dụ này ta lọc vs từ khóa là “logs” sau đó chọn “com.amazonaws.ap-northeast-1.logs”.
  • VPC: chọn VPC mà endpoint sẽ được gắn ở trong đó.
  • Subnets: chọn subnets mà server được gắn ở trong (có thể chọn mỗi AZ một subnet).

 

6 1

 

  • Enable DNS name: cho phép tạo DNS cho endpoint.
  • Security group: chọn security group sẽ được gắn với endpoint. Ta cần một security group mở cổng 443 cho IP từ 2 subnet đã chọn ở trên.

 

7 1

 

  • Policy: khai báo quyền sẽ được gắn với endpoint dưới dạng JSON. Nếu lười biếng ta có thể chọn Full Access. Còn mình thì khuyên chỉ nên cấp quyền tối thiểu cần thiết đến đúng đối tượng mà thôi.

Sau khi đã tạo xong endpoint và có trạng thái available, ta sẽ thấy có 2 ENI được tạo ra. Có 2 ENI là do ở mỗi subnet được chọn khi tạo endpoint sẽ tạo ra một ENI ở subnet đó.

 

8 1

 

Bước 2: Đẩy log lên Cloudwatch Logs

Đẩy log bằng CLI.

 

9 1

 

Check log trên Cloudwatch Logs.

 

10 1

 

 

11 1

 

 

12 1

 

 

13

 

 

14

 

Trần Hữu Tài – CO-WELL Asia