← 목록으로AWS

NLB 포트별 트래픽 확인이 안 된다? — VPC Flow Logs + Athena로 해결한 과정

NLB의 Target Group별 트래픽을 확인하려 했으나 CloudWatch 메트릭과 NLB 액세스 로그 모두 실패. VPC Flow Logs → S3 → Athena 분석으로 포트별 트래픽을 확인한 트러블슈팅 기록.

AWSNLBVPC Flow LogsAthenaMonitoringTroubleshooting
2026-04-09

배경

NLB에 연결된 여러 Target Group(7개 포트: 9443, 8443, 9090, 8090, 4012, 2053, 8083)으로 실제 트래픽이 가고 있는지 확인이 필요했습니다. 사용하지 않는 Target Group이 있다면 정리하고 싶었습니다.

단순한 요구사항이었는데, 생각보다 쉽지 않았습니다.


시도한 방법과 실패

방법결과원인
CloudWatch 메트릭 (ProcessedBytes, NewFlowCount)Target Group별 데이터 없음NLB는 TG별 트래픽 메트릭을 발행하지 않음 (LB 전체 레벨만 존재)
NLB 액세스 로그 (레거시 S3)TLS 리스너만 지원해당 NLB는 전체 TCP 리스너 (TLS 없음)
NLB 액세스 로그 (CloudWatch 통합)로그 미생성TCP 리스너는 NLB_ACCESS_LOGS 미지원

NLB는 ALB와 달리 Target Group별 트래픽 메트릭을 제공하지 않습니다. 액세스 로그도 TLS 리스너에서만 동작하며, TCP 리스너는 지원하지 않습니다.

시도했다가 사용하지 않게 된 리소스들은 정리했습니다:

리소스조치
NLB 액세스 로그 배포 (S3, CloudWatch)삭제
S3 버킷 (NLB 액세스 로그용)삭제
CloudWatch Log Group (NLB 액세스 로그용)삭제

해결: VPC Flow Logs → S3 → Athena

ENI 레벨에서 모든 TCP 트래픽을 기록하는 VPC Flow Logs를 활용했습니다.

NLB ENI → VPC Flow Logs → S3 (JSON 로그) → Athena (SQL 분석)

VPC Flow Logs 설정

항목설정값
대상 ENINLB에 연결된 ENI
트래픽 유형ALL (인바운드 + 아웃바운드)
집계 간격60초
로그 대상S3

Athena 분석 환경

기존에 CloudTrail 분석용으로 구축해둔 Athena 환경(cloudtrail-analysis Workgroup)을 그대로 활용했습니다. VPC Flow Logs 전용 테이블만 추가로 생성했습니다.

Partition Projection을 적용하여 날짜별 파티션이 자동으로 관리됩니다.

저장된 쿼리

쿼리명용도
create-vpc-flow-logs-table테이블 생성 (최초 1회만 실행)
nlb-[lb-name]-port-traffic확인 대상 7개 포트의 트래픽 요약
nlb-[lb-name]-all-ports전체 포트 중 트래픽 상위 20개

결과 컬럼

컬럼설명
listener_portNLB 리스너 포트 (= Target Group 포트)
connection_count연결(Flow) 수
total_packets총 패킷 수
total_bytes / total_mb총 트래픽
unique_sources고유 소스 IP 수

확인 결과

약 1~2시간 데이터 기준:

포트Target Group연결 수트래픽판정
8443COORD-HTTPS59,127162.41 MB✅ 활발히 사용 중
9443HTTPS-SS22,82754.38 MB✅ 활발히 사용 중
9090HTTP26013.42 MB✅ 사용 중 (소량)
8083ConnectOms3421.46 MB✅ 사용 중 (소량)
4012DB-SSH220.01 MB⚠️ 거의 없음
8090HTTP30.01 MB⚠️ 거의 없음
2053WORKER-SSH00❌ 트래픽 없음

비용

항목예상 비용
VPC Flow Logs 수집 (S3)$0.089/GB
S3 저장$0.025/GB/월
Athena 쿼리스캔 1TB당 $5 (소규모 쿼리 거의 무료)

트래픽 확인 목적 달성 후 Flow Logs를 비활성화하면 비용을 절감할 수 있습니다.


정리

NLB의 TCP 리스너 환경에서는 CloudWatch 메트릭이나 액세스 로그로 Target Group별 트래픽을 확인할 수 없습니다. VPC Flow Logs가 유일한 방법이었고, 기존 Athena 환경을 활용하여 추가 인프라 없이 분석 환경을 구성할 수 있었습니다.

VPC Flow Logs는 NLB 운영에 영향을 주지 않으며(트래픽 경로에 포함되지 않음), 활성화 시점 이후 데이터만 조회 가능합니다.