CloudWatch Network Monitoring · Flow monitors · TCP 성능 관측

느려진 원인이 AWS 네트워크인지 몇 분 안에 가려내세요

Network Flow Monitor는 EC2와 EKS에 설치한 경량 agent가 TCP 연결 통계를 모아, 워크로드 사이 흐름의 재전송, 타임아웃, RTT, 전송량을 거의 실시간으로 보여줍니다. monitor마다 network health indicator(NHI)를 계산해 AWS 네트워크 문제였는지를 알려줍니다.

monitor · web-az-a → db-az-clast 6h
Retransmissions1,284▲ 14:10–14:40
Timeouts37▲ 14:10–14:40
RoundTripTime812µs평균 · 일부 구간만 계산
DataTransferred42.6GBmonitor 전체 흐름 합계
Network health indicator100 · Degraded
09:0012:0015:00

NHI가 100이면 그 시간대에 AWS 네트워크 문제가 있었다는 뜻입니다. 0(Healthy)인데 재전송이 늘었다면 워크로드 쪽부터 봅니다.

~30 s

agent가 집계 통계를 보내는 주기 (eBPF 기반, payload 미접근)

5

monitor 지표 (RTT · 재전송 · 타임아웃 · 전송량 · NHI)

100

Organizations 연동 시 scope에 넣을 수 있는 최대 계정 수

17

지원 Region (서울 ap-northeast-2 포함)

Why Network Flow Monitor

"네트워크 문제 같아요"를 데이터로 확인합니다

애플리케이션 지연이 생기면 네트워크, 인스턴스, 코드 중 어디를 볼지부터 막힙니다. Network Flow Monitor는 실제 워크로드 트래픽의 TCP 지표와 AWS 네트워크 상태 판정을 같은 화면에 놓아 첫 판단을 빠르게 합니다.

Real traffic

실제 흐름의 TCP 성능

합성 probe가 아니라 운영 중인 연결에서 재전송, 재전송 타임아웃, RTT, 전송 바이트를 수집합니다. AZ 내 · AZ 간, VPC 간, S3 · DynamoDB, 다른 Region까지의 흐름을 구분해 봅니다.

Attribute

AWS 원인 여부 판별

NHI는 monitor가 추적하는 흐름 중 하나라도 AWS 네트워크 문제를 겪었는지를 0 또는 100으로 알려줍니다. 문제 해결을 AWS 쪽으로 넘길지, 워크로드를 파고들지 정하는 기준이 됩니다.

Focus

top contributor부터

지표별로 값이 가장 큰 흐름을 top contributor로 보여주고, Historical explorer에서 경로 위 구성요소를 토폴로지로 펼쳐 어느 구간이 문제인지 좁힙니다.

How it works

agent가 모으고, scope 전체를 보고, monitor로 좁힙니다

agent는 커널의 TCP 이벤트만 받아 약 30초마다 Network Flow Monitor로 보냅니다. scope 안의 모든 흐름은 Workload insights에서 분류별로 보고, 계속 지켜볼 흐름은 local · remote 리소스를 지정해 monitor로 만듭니다.

aws networkflowmonitor create-monitor예시
# web 서브넷(local) → DynamoDB · 다른 AZ(remote) 흐름을 추적
aws networkflowmonitor create-monitor \
  --monitor-name web-to-backend \
  --scope-arn arn:aws:networkflowmonitor:ap-northeast-2:111122223333:scope/e21c…d8cf \
  --local-resources  type="AWS::EC2::Subnet",identifier="arn:aws:ec2:…:subnet/subnet-0web…" \
  --remote-resources type="AWS::AWSService",identifier="DynamoDB" \
                     type="AWS::AvailabilityZone",identifier="ap-northeast-2c"

# 생성 후 AWS/NetworkFlowMonitor 네임스페이스에 지표 게시
# DataTransferred · Retransmissions · Timeouts
# RoundTripTime(µs) · HealthIndicator(0 healthy / 100 degraded)
서브넷을 local 리소스로, DynamoDB와 다른 가용 영역을 remote 리소스로 지정해 monitor를 만드는 CLI 예시
  1. agent eBPF로 TCP 통계 수집

    커널에서 bpf_sock_ops 구조체(주소, 포트, 카운터, RTT)만 받고 payload는 보지 않습니다. EC2는 SSM Distributor · CloudShell 스크립트 · RPM/DEB 패키지로, EKS는 add-on으로 설치합니다.

  2. scope 관측 범위와 토폴로지

    계정(또는 Organizations 계정 묶음)과 Region 단위 범위입니다. scope가 정해지면 서비스가 리소스 토폴로지를 만들고, Workload insights가 scope 전체의 top contributor를 보여줍니다.

  3. monitor 지표와 NHI

    local은 서브넷 · VPC · AZ · EKS 클러스터 · Region, remote는 서브넷 · VPC · AZ · AWS 서비스(S3, DynamoDB) · Region입니다. Region을 remote로 지정하면 그 Region의 edge까지 측정합니다.

Workload insights 분류: INTRA_AZ · INTER_AZ · INTER_VPC · INTER_REGION · AMAZON_S3 · AMAZON_DYNAMODB · UNCLASSIFIED(NAT 게이트웨이를 거치거나 AWS 밖으로 나가는 흐름 등). RTT는 항상 계산되지 않아 데이터가 듬성할 수 있습니다.

Features

주요 기능

Workload insights

scope 전체 흐름 한눈에

agent가 보낸 흐름을 AZ 내 · AZ 간 · VPC 간 · Region 간 · AWS 서비스 같은 분류로 묶어 전송량과 지표별 상위 흐름을 보여줍니다. 여기서 monitor로 만들 흐름을 고릅니다.

Monitors

top contributor와 Historical explorer

monitor는 지정한 흐름의 지표를 지속 게시하고, Historical explorer에서 기간을 골라 재전송 · RTT 상위 흐름과 경로 위 구성요소 토폴로지를 확인합니다.

NHI

AWS 네트워크 장애 귀속

HealthIndicator는 0(Healthy) 또는 100(Degraded)인 이진 값입니다. 성능 이상이 보일 때 AWS 네트워크 쪽 문제였는지 먼저 확인해 조사 방향을 정합니다.

Inter-Region

Region 간 흐름까지

2025년 9월부터 다른 Region의 공인 IP로 가는 흐름과 VPC peering · Transit Gateway peering을 지나는 사설 흐름도 측정하고, NHI가 Region 사이 AWS global network 상태를 반영합니다.

Amazon EKS

add-on과 Container Network Observability

AWS Network Flow Monitor Agent add-on이 모든 노드에 agent 파드를 띄웁니다. 흐름에 파드 메타데이터가 붙고, 노드 단위 시스템 지표는 OpenMetrics 형식으로 노출돼 Prometheus 호환 도구로 수집할 수 있습니다.

CloudWatch

지표 · 알람 · 대시보드

monitor 지표는 AWS/NetworkFlowMonitor 네임스페이스에 올라가 일반 CloudWatch 지표처럼 알람과 대시보드에 씁니다. agent는 PrivateLink 인터페이스 엔드포인트로 사설 전송할 수 있습니다.

기본 할당량: scope는 계정 · Region당 1개, monitor는 계정 · Region당 20개(조정 가능), monitor당 local · remote 리소스 각 25개. 서비스 전체로 분당 약 500만 흐름, agent 설치 인스턴스 약 5,000대 규모까지 지원하며 그 이상은 용량이 늘 때까지 모니터링 성능에 영향이 있을 수 있습니다. agent는 Linux(Amazon Linux 2023, RPM · DEB 계열, x86_64 · Graviton)용입니다.

Compare

CloudWatch Network Monitoring 세 기능과 VPC Flow Logs

Network Flow Monitor는 AWS 안의 워크로드 간 실제 TCP 흐름, Internet Monitor는 인터넷 최종 사용자 구간, Network Synthetic Monitor는 VPC와 온프레미스 사이 하이브리드 경로를 봅니다. VPC Flow Logs는 성능이 아니라 흐름 기록입니다.

Network Flow Monitor, Internet Monitor, Network Synthetic Monitor, VPC Flow Logs 비교
항목Network Flow MonitorInternet MonitorNetwork Synthetic MonitorVPC Flow Logs
보는 구간AWS 안 워크로드 간 · S3 · DynamoDB · 다른 Region애플리케이션 ↔ 인터넷 최종 사용자(city-network)VPC 서브넷 ↔ 온프레미스 IP (Direct Connect 등)ENI · TGW를 지난 IP 흐름
데이터 출처실제 트래픽, 인스턴스 agentAWS global networking 데이터와 VPC flow log 분석AWS 관리형 probe의 합성 트래픽흐름 메타데이터 레코드
주요 지표재전송, 타임아웃, RTT, 전송량성능 · 가용성 점수, 지연, health eventRTT, 패킷 손실bytes, packets, ACCEPT · REJECT
AWS 원인 판별NHIhealth event (영향 city-network · ASN 표시)NHI (DX 경로, TGW inter-Region peering)없음
설치agent 필요 (EC2 · EKS, Linux)없음없음 (probe는 AWS가 관리)없음
과금 기준monitored resource(agent 인스턴스) + CloudWatch 지표monitored resource + city-network + 로그monitored resource + CloudWatch 지표vended logs GB

Reference architecture

워크로드 옆의 agent, CloudWatch로 이어지는 지표

EC2 인스턴스와 EKS 노드의 agent가 AZ 간 흐름과 S3 · DynamoDB로 가는 흐름을 관측해 Network Flow Monitor로 보냅니다. delegated administrator 계정이 scope를 관리하고, monitor 지표는 CloudWatch 알람과 대시보드로 이어집니다. 경로 구성 자체의 검증은 Reachability Analyzer, 흐름 기록은 VPC Flow Logs가 맡습니다.

Network Flow Monitor 수집과 지표 게시 아키텍처 한 Region의 VPC 안에서 두 가용 영역에 걸친 EC2 web, EC2 app, EKS node, EC2 db가 서로 TCP로 통신하고, EC2 app은 Amazon S3, EC2 db는 DynamoDB와 통신합니다. 각 인스턴스와 노드의 agent는 TCP 통계를 Network Flow Monitor로 약 30초마다 보냅니다. delegated administrator 계정이 Organizations 계정으로 scope를 관리합니다. Network Flow Monitor는 monitor 지표와 NHI를 CloudWatch 지표 AWS/NetworkFlowMonitor로 게시하고, 이 지표로 CloudWatch 알람과 대시보드를 구성합니다. REGION · ap-northeast-2 VPC · WORKLOAD ACCOUNT AZ a AZ c CLOUDWATCH EC2 webagent EC2 appagent EKS nodeadd-on 파드 EC2 dbagent Amazon S3AMAZON_S3 DynamoDBAMAZON_DYNAMODB Delegated adminscope · 최대 100 계정 Network Flow Monitor scope · 토폴로지 Workload insights monitor · top contributors Historical explorer NHI 0 / 100 Publish · ~30s CloudWatch alarmHealthIndicator ≥ 100 CloudWatch metricsAWS/NetworkFlowMonitor DashboardRTT · Retransmissions 게시
워크로드 TCP 흐름 (양방향, agent가 관측) agent 통계 전송 (모든 agent, 약 30초 주기) monitor 지표 · NHI 게시 알람 · 대시보드로 활용 scope 관리

좁은 화면에서는 다이어그램을 좌우로 밀어서 보세요.

Getting started

시작하기

  1. STEP 1

    계정 범위 결정

    여러 계정을 볼 거라면 Organizations에서 CloudWatch용 delegated administrator를 등록하고 그 계정으로 진행합니다.

  2. STEP 2

    초기화

    CloudWatch 콘솔 Network Monitoring의 Flow monitors에서 초기화합니다. 서비스 연결 역할, scope, 초기 토폴로지가 만들어지며 최대 30분 걸립니다.

  3. STEP 3

    agent 배포

    인스턴스 역할에 CloudWatchNetworkFlowMonitorAgentPublishPolicy를 붙이고 SSM · CloudShell · 패키지로 설치합니다. EKS는 add-on을 켭니다.

  4. STEP 4

    Workload insights 검토

    AZ 간 · VPC 간 · S3 등 분류별 상위 흐름을 보고 지속 추적할 워크로드를 고릅니다.

  5. STEP 5

    monitor와 알람

    local · remote 리소스로 monitor를 만들고 HealthIndicator와 재전송 지표에 CloudWatch 알람을 겁니다.

scope에 계정을 더하거나 뺀 뒤에는 토폴로지를 다시 만드는 동안 약 20분이 지나야 다음 변경을 할 수 있습니다. 관리 계정으로도 계정을 추가할 수 있지만 delegated administrator 사용이 권장됩니다.

Pricing

비용 항목

flow monitoring 요금은 두 가지로 정해집니다. agent를 배포 · 활성화한 컴퓨팅 리소스 수(monitored resource)와, 게시되는 CloudWatch 지표입니다. 단가는 Region마다 다릅니다.

Network Flow Monitor 과금 항목
과금 항목과금 기준참고
Monitored resourceagent가 활성화된 컴퓨팅 인스턴스 수EC2 인스턴스 1대 또는 EKS 노드 1대가 monitored resource 1개입니다
CloudWatch 지표CloudWatch metrics 요금monitor가 AWS/NetworkFlowMonitor로 게시하는 지표에 표준 지표 요금이 적용됩니다
알람 · 대시보드CloudWatch 알람 · 대시보드 요금NHI나 재전송 지표에 건 알람, 사용자 지정 대시보드는 각각 표준 요금
사설 전송 (선택)인터페이스 VPC 엔드포인트 요금agent 트래픽을 PrivateLink로 보낼 때 엔드포인트 시간 · 처리 데이터 요금이 붙습니다

agent를 설치하는 인스턴스 수가 곧 비용이므로, 모든 인스턴스보다 핵심 계층(웹 · 앱 · DB 노드)부터 배포하는 것이 좋습니다. 최신 단가와 계산 예시는 Amazon CloudWatch 요금 페이지의 CloudWatch Network Monitoring with flow monitoring 항목에서 확인하세요.

Next step

다음 성능 이슈에서는 첫 10분을 아끼세요

핵심 워크로드의 계층 구조, AZ · VPC · Region 간 의존 관계, 계정 구조를 정리해 오시면 agent 배포 범위, monitor 설계, NHI 알람 기준을 함께 잡아 드립니다.