Hiển thị hiệu suất mạng cho workload trên AWS với Network Flow Monitor

Tác giả: Hiroki Fujii và Vishwas Puttasubbappa 

Ngày 30 tháng 4 năm 2025 

Danh mục: Amazon CloudWatch, Amazon VPC, Announcements, Monitoring and observability, Networking & Content Delivery

AWS đã ra mắt Network Flow Monitor tại re:Invent vào ngày 1 tháng 12 năm 2024, một tính năng mới trong bộ Amazon CloudWatch Network Monitoring, cung cấp khả năng giám sát hiệu suất mạng trên các dịch vụ do AWS quản lý. Với Network Flow Monitor, bạn có thể có được khả năng hiển thị gần như thời gian thực về lưu lượng mạng giữa các tài nguyên tính toán (Amazon Elastic Compute Cloud (Amazon EC2) và Amazon Elastic Kubernetes Service (Amazon EKS)) và các dịch vụ của AWS, chẳng hạn như Amazon S3 và Amazon DynamoDB, cũng như cơ sở hạ tầng của AWS. Dữ liệu thu thập này có thể giúp bạn xác định và giải quyết các vấn đề mạng cho ứng dụng của mình nhanh hơn bằng cách giảm thời gian khắc phục sự cố cho môi trường đám mây của bạn.

Các thách thức về khả năng quan sát với mạng đám mây

Khi các ứng dụng gặp độ trễ cao, các vấn đề về mạng thường là nguyên nhân bị nghi ngờ đầu tiên, dù là trong môi trường đám mây hay tại chỗ. Như nhiều người trong số các bạn có thể đã biết, các công cụ giám sát mạng truyền thống cung cấp khả năng hiển thị hạn chế đối với cơ sở hạ tầng mạng AWS và hiệu suất mạng giữa các dịch vụ được quản lý của AWS. Điều này có thể kéo dài quy trình khắc phục sự cố và ảnh hưởng đến cả thời gian trung bình để phát hiện (MTTD) và thời gian trung bình để phục hồi (MTTR).

Các tính năng giám sát hiệu suất của CloudWatch

Network Flow Monitor cho phép CloudWatch cung cấp các dịch vụ quan sát toàn diện cho cả Giám sát Mạng (Network Monitoring) và Giám sát Hiệu suất Ứng dụng (Application Performance Monitoring – APM), như được minh họa trong hình sau:

     [Hình 1. Các tính năng Giám sát Hiệu suất Ứng dụng và Giám sát Mạng của CloudWatch]

Network Flow Monitor sử dụng các agent nhẹ được cài đặt trên tài nguyên để thu thập chỉ số hiệu suất trực tiếp từ lưu lượng workload thực tế, phục vụ cho việc giám sát gần như theo thời gian thực. Network Flow Monitor theo dõi các chỉ số mạng quan trọng, chẳng hạn như dữ liệu được truyền, việc truyền lại (retransmissions), thời gian chờ truyền lại (retransmission timeouts) và thời gian khứ hồi (round-trip time).

Hơn nữa, một tính năng nổi bật của flow monitor là chỉ báo sức khỏe mạng (network health indicator – NHI). NHI cho phép bạn xác định xem sự suy giảm mạng có phải do các vấn đề về cơ sở hạ tầng của AWS hay không. Khi xảy ra độ trễ mạng, chỉ báo này cực kỳ hữu ích, giúp bạn xác định nguyên nhân sự cố để có thể tập trung nỗ lực khắc phục một cách hiệu quả.

Bộ công cụ Giám sát Mạng của CloudWatch cung cấp một loạt các tính năng hiệu suất mạng. Để tìm hiểu thêm, hãy xem tài liệu Sử dụng Internet Monitor hoặc tài liệu Sử dụng Network Synthetic Monitor.

Các phần sau đây mô tả cách sử dụng Network Flow Monitor để trực quan hóa hiệu suất mạng thông qua một kịch bản ví dụ.

Kịch bản giám sát ví dụ

Trong phần này, chúng ta sẽ xem xét một ví dụ về hai EC2 instance trong các VPC khác nhau, cùng một Region, được kết nối với AWS Transit Gateway.

Hiện tại, Network Flow Monitor chưa hỗ trợ liên Region (cross-Region).

Đối với ví dụ của chúng ta, chúng tôi đã cài đặt một agent trên EC2 instance, test-instance-1, trong VPC 1, để cung cấp dữ liệu hiệu suất mạng. Chúng tôi cũng đã xây dựng một máy chủ web Apache trên một EC2 instance thứ hai, test-instance-2, trong VPC2. Hơn nữa, chúng tôi đã bật dịch vụ httpd. Trong phần tiếp theo, chúng tôi mô tả chi tiết cách cài đặt các agent.

 [Hình 2. Ví dụ về thiết lập giám sát mạng liên-VPC cho Network Flow Monitor]

Không giống như các giải pháp giám sát chủ động, Network Flow Monitor cung cấp tính năng giám sát thụ động liên tục, phân tích lưu lượng người dùng thực tế giữa các khối lượng công việc. Chúng tôi đã tạo lưu lượng kiểm tra từ test-instance-1, đã cài đặt agent, đến test-instance-2, máy chủ web Apache.

[Hình 3. agent thu thập dữ liệu cho luồng lưu lượng HTTP giữa một instance trong VPC 1 và một máy chủ web trong VPC 2]

Các agent không có quyền truy cập vào tải trọng (payload) của các kết nối TCP của bạn. Các agent chỉ nhận được cái gọi là cấu trúc bpf_sock_ops từ nhân Linux. Cấu trúc này cung cấp các địa chỉ IP cục bộ và từ xa, và các cổng TCP cục bộ và từ xa, cũng như các bộ đếm và thời gian khứ hồi.

Thiết lập Network Flow Monitor

Trong phần này, chúng tôi sẽ hướng dẫn thiết lập Network Flow Monitor dựa trên kịch bản ví dụ của chúng tôi. Để thiết lập Network Flow Monitor nhằm xem các chỉ số hiệu suất cho luồng mạng, hãy thực hiện như sau:

  1. Bật Network Flow Monitor
  2. Cài đặt các agent Network Flow Monitor
  3. Xem lại các luồng mạng trong Workload insights
  4. Tạo một hoặc nhiều flow monitor

Bước 1: Bật Network Flow Monitor

Trước khi có thể sử dụng Network Flow Monitor, chúng ta phải bật các quyền cần thiết để gửi dữ liệu đến CloudWatch và ánh xạ các kết nối mạng của chúng ta. Khi bạn điều hướng đến Network Flow Monitor trong giao diện điều khiển lần đầu tiên, bạn sẽ được nhắc bật tính năng này.

[Hình 4. Bật Network Flow Monitor]

Việc bật Network Flow Monitor sẽ thiết lập các quyền và tạo phạm vi giám sát của bạn. Hiện tại, phạm vi giám sát là tài khoản AWS mà bạn đã đăng nhập. Để biết thêm thông tin, hãy xem Bật Network Flow Monitor. Bạn chỉ cần bật tính năng này lần đầu tiên bạn chọn tính năng đó trong một Khu vực.

Chờ một thời gian ngắn (tối đa 30 phút) trong khi Network Flow Monitor cấp quyền sử dụng các vai trò liên kết dịch vụ (service-linked roles) cần thiết với tài khoản của bạn, và thiết lập phạm vi giám sát cho tài khoản AWS của bạn.

Bước 2: Cài đặt các agent Network Flow Monitor

Khi bạn cài đặt các agent trên các instance của mình, bạn cũng phải đặt quyền cho các agent để chúng có thể gửi dữ liệu đến backend của Network Flow Monitor. Đây là dữ liệu cho phép bạn giám sát hiệu suất mạng. Có các yêu cầu cụ thể đối với các instance Linux mà bạn có thể sử dụng trên các instance của mình, được liệt kê trong tài liệu Amazon CloudWatch.

Bạn có thể cài đặt các agent trên các EC2 instance, các instance Kubernetes tự quản lý hoặc Amazon EKS. Trong bài đăng này, chúng tôi làm theo các bước được mô tả trong Cài đặt và quản lý các agent cho các EC2 instance trong tài liệu AWS. Để biết thêm thông tin về việc cài đặt các agent với Kubernetes hoặc Amazon EKS, hãy xem Cài đặt các agent Network Flow Monitor trên các instance.

Để bật các quyền chính xác, các EC2 instance chạy agent phải sử dụng một vai trò với chính sách CloudWatchNetworkFlowMonitorAgentPublishPolicy.

[Hình 5. Đính kèm chính sách Network Flow Monitor vào vai trò của instance mục tiêu]

Chúng tôi khuyên bạn nên thêm các quyền trước khi bạn cài đặt các agent trên các EC2 instance. Nếu một instance không có vai trò, hãy tạo một vai trò mới và đính kèm chính sách đã đề cập trước đó.

Tiếp theo, chúng tôi cài đặt các agent trong các instance. Để cài đặt các agent, chúng tôi sử dụng AWS Systems Manager Agent, một tính năng của AWS System Manager. Trước khi bạn bắt đầu cài đặt các agent, hãy đảm bảo rằng mỗi instance đang chạy Systems Manager Agent. Để biết thêm thông tin, hãy xem Làm việc với Systems Manager Agent.

Để cài đặt các agent trên các EC2 instance, hãy thực hiện như sau:

  1. Trong Console, mở bảng điều khiển AWS Systems Manager.
  2. Tại mục Node Tools, chọn Distributor.
  3. Tại mục Owned by Amazon, tìm gói Network Flow Monitor: AmazonCloudWatchNetworkFlowMonitorAgent.
  4. Chọn gói, sau đó chọn Install one time hoặc Install on schedule.

[Hình 6. Trong Systems Manager, chọn gói agent Network Flow Monitor]

  1. Chọn các EC2 instance để cài đặt các agent. Đối với ví dụ của chúng tôi, chúng tôi chỉ chọn test-instance-1. Tuy nhiên, nếu bạn muốn cài đặt các agent trên nhiều instance, việc chọn các instance dựa trên thẻ (tags) hoặc nhóm tài nguyên (resource groups) có thể hiệu quả hơn.

   [Hình 7. Trong Systems Manager, chọn các instance để cài đặt các agent]

  1. Cuối cùng, chọn Run để bắt đầu cài đặt agent.

Sau khi cài đặt hoàn tất thành công, bạn sẽ thấy thông báo trạng thái lệnh.

[Hình 8. Cài đặt agent thành công trên instance mục tiêu]

Bước 3: Xem lại các luồng mạng trong Workload insights

Sau khi bạn bật Network Flow Monitor và cài đặt các agent, bạn có thể xem lại dữ liệu hiệu suất luồng mạng trong giao diện điều khiển. Chúng tôi khuyên bạn nên bắt đầu bằng các hình ảnh trực quan hóa trên console để hiểu xu hướng và mô hình lưu lượng của khối lượng công việc của bạn.

Trong bảng điều khiển CloudWatch, dưới Network Monitoring, chọn Flow monitors. Sau đó, trên tab Workload insights, bạn có thể xem lại các luồng mạng đóng góp hàng đầu. Bạn có thể xác định luồng nào bạn muốn giám sát chi tiết hơn. Để biết thêm chi tiết, hãy xem Đánh giá các luồng mạng bằng thông tin chi tiết về khối lượng công việc.

[Hình 9. Dữ liệu luồng mạng trong CloudWatch]

Để tìm hiểu sâu hơn về các luồng mạng cụ thể, bạn có thể tạo một monitor, có thể được thực hiện theo một trong hai cách. Bạn có thể chọn các luồng mạng trong Top contributors, sau đó chọn Create monitor. Hoặc, bạn có thể chọn Create monitor, và sau đó chỉ định các tài nguyên cục bộ và từ xa riêng lẻ để giám sát các luồng mạng giữa chúng, như được mô tả trong Bước 4.

Bước 4: Tạo một flow monitor

Để bắt đầu tạo một monitor, trong bảng điều khiển Network Flow Monitor, chọn Create monitor.

[Hình 10. Tạo một monitor trong Network Flow Monitor]

Khi bạn tạo một monitor, chúng tôi khuyên bạn nên hoàn thành tất cả các bước cùng một lúc, vì bạn sẽ không thể lưu bất kỳ công việc nào để tiếp tục sau này.

Thực hiện theo các bước trong luồng tạo monitor. Đối với ví dụ của chúng tôi, chúng tôi sẽ cung cấp thông tin sau cho monitor:

  1. Đối với Monitor name (Tên monitor), chúng tôi chọn monitor-ap-northeast-1c-1a.

[Hình 11. Chỉ định tên cho flow monitor]

  1. Đối với Local resources (Tài nguyên cục bộ), chỉ định các loại luồng mạng mà bạn muốn giám sát, sau đó chọn các tùy chọn cụ thể cho từng loại.Các loại tài nguyên cục bộ mà Network Flow Monitor hỗ trợ là: Subnet, VPC, hoặc Availability Zone. Đối với ví dụ của chúng tôi, chúng tôi chọn subnet nơi instance cư trú, flowmonitor-subnet-ap-northeast-1c.

[Hình 12. Chọn một hoặc nhiều tài nguyên cục bộ cho flow monitor]

  1. Đối với Remote resources (Tài nguyên từ xa), chọn Everywhere (Mọi nơi) hoặc Select remote resources (Chọn tài nguyên từ xa).

Nếu bạn chọn Everywhere, monitor bao gồm tất cả các luồng mạng bắt nguồn từ các tài nguyên cục bộ đã chọn.

Nếu không, bạn có thể chọn các tài nguyên từ xa cụ thể để giám sát. Với tùy chọn này, bạn có thể chọn một hoặc nhiều tài nguyên trong các subnet, VPC, Availability Zones (AZs) hoặc các dịch vụ AWS, chẳng hạn như Amazon S3 và DynamoDB.

Đối với ví dụ của chúng tôi, chúng tôi chỉ định một subnet làm tài nguyên từ xa lưu trữ máy chủ web của chúng tôi, flowmonitor-subnet-ap-northeast-1a. Việc chọn một tài nguyên cục bộ và một tài nguyên từ xa cho phép monitor của chúng tôi bao gồm thông tin cho các luồng mạng chỉ giữa hai tài nguyên này.

[Hình 13. Chọn tài nguyên từ xa cho flow monitor]

  1. Chọn Next (Tiếp theo), và sau đó xem lại cấu hình cho monitor.
  1. Chọn Create monitor (Tạo monitor).

Sau khi bạn tạo monitor, hãy đợi tối đa 30 phút để Network Flow Monitor bắt đầu thu thập và tổng hợp dữ liệu.

Trực quan hóa các chỉ số Network Flow Monitor

Sau khi bạn tạo một monitor, Network Flow Monitor bắt đầu công bố các chỉ số hiệu suất đầu cuối (end-to-end), cũng như một chỉ báo sức khỏe mạng cho các vấn đề suy giảm mạng. Bạn có thể trực quan hóa thông tin cho một monitor trong bảng điều khiển Network Flow Monitor, hoặc bạn có thể tìm thấy các chỉ số trong các chỉ số CloudWatch, dưới không gian tên tùy chỉnh, AWS/NetworkFlowMonitor.

Đối với ví dụ của chúng tôi, chúng tôi xem trong bảng điều khiển Network Flow Monitor để xem dữ liệu hiệu suất cho monitor của chúng tôi. Trên tab Monitors, chúng tôi chọn monitor, monitor-ap-northeast-1c-1a.

  [Hình 14. Xem dữ liệu hiệu suất trong một flow monitor]

Để có cái nhìn tổng thể về các luồng mạng cho monitor, chúng tôi kiểm tra tab Overview.

[Hình 15. Trực quan hóa các chỉ số hiệu suất trên tab Tổng quan cho monitor]

Tiếp theo, đi tới tab Historical explorer để xem các chỉ số chi tiết hơn cho các luồng mạng được giám sát. Ví dụ, khi có sự suy giảm hiệu suất, tính năng tô-pô (topology) sẽ hiển thị tất cả các thành phần trong đường dẫn mạng, với các biểu tượng dịch vụ và ID tài nguyên. Hình ảnh trực quan hóa này giúp bạn xác định các nguồn đóng góp hàng đầu cho từng chỉ số hiệu suất và các cặp nguồn-đích (bucket pairs) trong khung thời gian đã chỉ định để thực hiện hành động phục hồi.

[Hình 16. Trực quan hóa tô-pô luồng mạng cho vấn đề suy giảm]

Dọn dẹp tài nguyên

Sau khi kết thúc đánh giá Network Flow Monitor của bạn, hãy nhanh chóng xóa tất cả các monitor kiểm thử và các tài nguyên tạm thời. Điều này giúp tổ chức của bạn tránh các chi phí không cần thiết trong khi vẫn duy trì quản lý tài nguyên hiệu quả.

Kết luận

Trong bài đăng này, chúng tôi đã giới thiệu Network Flow Monitor, một tính năng quan sát mới của Amazon CloudWatch Network Monitoring, cung cấp khả năng hiển thị gần như thời gian thực về hiệu suất mạng cho các workload giữa các compute instance và các dịch vụ AWS. Sử dụng phạm vi các chỉ số và thông tin mà các flow monitor cung cấp, bạn có thể nhanh chóng phân tích và hành động đối với sự suy giảm hiệu suất mạng cho các khối lượng công việc đám mây của mình, và giảm thiểu thời gian khắc phục sự cố.

Tìm hiểu thêm về Network Flow Monitor

Bây giờ chúng tôi đã chia sẻ tổng quan về các lợi ích của Network Flow Monitor, hãy kiểm tra thông tin bổ sung sau để biết chi tiết:

Về các tác giả

Hiroki Fujii: Hiroki là Giám đốc Tài khoản Kỹ thuật Cấp cao làm việc tại Singapore. Anh có hơn 10 năm kinh nghiệm trong việc thiết kế, xây dựng và vận hành các mạng tại chỗ, bao gồm các trung tâm dữ liệu, mạng khuôn viên và mạng xương sống. Ngoài công việc, anh ấy thích tập thể dục, chơi gôn và khám phá các quốc gia và nền văn hóa mới cùng gia đình tuyệt vời của mình.

Vishwas Puttasubbappa: Vishwas là Giám đốc Sản phẩm Kỹ thuật Chính (Principal Product Manager Technical) trong bộ phận Mạng AWS. Anh ấy đã làm việc trong lĩnh vực mạng trong 20 năm qua, thiết kế và xây dựng mạng lưới và các sản phẩm mạng. Ngoài công việc, anh ấy thích dành phần lớn thời gian cho gia đình mình.