VPC 흐름 로그
VPC 흐름 로그는 Google Kubernetes Engine 노드로 사용되는 인스턴스를 포함하여 가상 머신(VM) 인스턴스에서 전송되거나 수신되는 네트워크 흐름의 샘플을 기록합니다. 이러한 로그를 네트워크 모니터링, 포렌식, 실시간 보안 분석, 비용 최적화에 사용할 수 있습니다.
흐름 로그는 Cloud Logging에서 볼 수 있으며 Cloud Logging 내보내기가 지원되는 모든 대상으로 로그를 내보낼 수 있습니다.
흐름 로그는 Compute Engine VM에서 연결별로 집계된 후 실시간으로 내보내집니다. Pub/Sub를 구독하면 실시간 스트리밍 API를 사용하여 흐름 로그를 분석할 수 있습니다.
사용 사례
네트워크 모니터링
VPC 흐름 로그는 네트워크 처리량과 성능에 관한 실시간 시야를 제공합니다. 다음과 같은 작업을 수행할 수 있습니다.
- VPC 네트워크 모니터링
- 네트워크 진단 수행
- VM 및 애플리케이션별로 흐름 로그를 필터링하여 트래픽 변화 파악
- 용량 예측을 위한 트래픽 증가 파악
네트워크 사용량 파악 및 네트워크 트래픽 비용 최적화
VPC 흐름 로그를 사용하여 네트워크 사용량을 분석할 수 있습니다. 다음의 네트워크 흐름을 분석할 수 있습니다.
- 리전 및 영역 간의 트래픽
- 인터넷의 특정 국가로 가는 트래픽
- 최상위 네트워크 소비자
분석을 기반으로 네트워크 트래픽 비용을 최적화할 수 있습니다.
네트워크 증거 수집
네트워크 포렌식용으로 VPC 흐름 로그를 활용할 수 있습니다. 예를 들어 이슈가 발생하면 다음 항목을 검사할 수 있습니다.
- 어떤 IP로 누구와 언제 통신했는지
- 모든 손상된 IP(들어오고 나가는 모든 네트워크 흐름 분석)
실시간 보안 분석
Pub/Sub를 통해 실시간 스트리밍 API를 활용하고 SIEM(Security Information and Event Management) 시스템과 통합할 수 있습니다. 실시간 모니터링, 이벤트, 분석, 보안 알림의 연관성을 제공할 수 있습니다.
사양
- VPC 흐름 로그는 VPC 네트워크를 구동하는 소프트웨어인 Andromeda의 일부입니다. VPC 흐름 로그를 사용 설정하면 지연이나 성능 저하가 발생하지 않습니다.
- VPC 흐름 로그는 기존 네트워크가 아닌 VPC 네트워크에서 작동합니다. 서브넷별로 VPC 흐름 로그를 사용 설정하거나 사용 중지합니다. 서브넷에 대해 사용 설정된 경우 VPC 흐름 로그는 해당 서브넷의 모든 VM 인스턴스에서 데이터를 수집합니다.
- VPC 흐름 로그는 각 VM의 TCP, UDP, ICMP, ESP, GRE 흐름을 샘플링합니다. 인바운드 및 아웃바운드 흐름은 모두 샘플링됩니다. 이러한 흐름은 Google Cloud 내에 있거나 Google Cloud와 다른 네트워크 사이에 있을 수 있습니다. 흐름을 샘플링으로 캡처하는 경우 VPC 흐름 로그는 흐름의 로그를 생성합니다. 각 흐름 기록에는 레코드 형식 섹션에 설명된 정보가 포함됩니다.
- VPC 흐름 로그는 다음과 같은 방식으로 방화벽 규칙과 상호 작용합니다.
- 이그레스 패킷은 이그레스 방화벽 규칙 이전에 샘플링됩니다. 이그레스 방화벽 규칙이 아웃바운드 패킷을 거부하더라도 VPC 흐름 로그를 통해 이러한 패킷을 샘플링할 수 있습니다.
- 인그레스 패킷은 인그레스 방화벽 규칙 이후에 샘플링됩니다. 인그레스 방화벽 규칙이 인바운드 패킷을 거부하면 해당 패킷은 VPC 흐름 로그에서 샘플링되지 않습니다.
- VPC 흐름 로그에서 필터를 사용하여 특정 로그만 생성할 수 있습니다.
- VPC 흐름 로그는 여러 네트워크 인터페이스가 있는 VM을 지원합니다. 각 VPC에서 네트워크 인터페이스가 포함된 각 서브넷에 VPC 흐름 로그를 사용 설정해야 합니다.
- 동일한 Google Kubernetes Engine(GKE) 노드에서 포드 간 흐름을 로깅하려면 클러스터에 노드 내 공개 상태를 사용 설정해야 합니다.
- VPC 흐름 로그는 Cloud Run 또는 온프레미스 엔드포인트와 같은 비VM 리소스에서 보고되지 않습니다.
로그 수집
흐름 로그는 각 VM 연결에서 특정 간격으로 수집됩니다. 지정된 연결에서 지정된 간격으로 수집된 모든 패킷은 일정 기간(집계 간격) 동안 단일 흐름 로그 항목에 집계됩니다. 그 다음 이 데이터가 Logging으로 전송됩니다.
로그는 기본적으로 Logging에 30일 동안 저장됩니다. 로그를 이 기간보다 오래 보관하려면 커스텀 보관 기간을 설정하거나 지원되는 대상으로 로그를 내보내면 됩니다.
로그 샘플링 및 처리
Google Cloud는 VM을 나가고 들어오는 패킷을 샘플링하여 흐름 로그를 생성합니다. 모든 패킷이 자체 로그 레코드에 캡처되는 것은 아닙니다. 30개의 패킷마다 약 1개가 캡처되지만 이 샘플링 레이트는 VM의 부하에 따라 더 낮을 수 있습니다. 이 레이트는 조정할 수 없습니다.
흐름 로그가 생성되면 Google Cloud는 다음 절차에 따라 로그를 처리합니다.
- 필터링: 지정된 기준과 일치하는 로그만 생성되도록 지정할 수 있습니다. 예를 들어 특정 VM의 로그 또는 특정 메타데이터 값이 있는 로그만 생성되고 나머지는 삭제되도록 필터링할 수 있습니다. 자세한 내용은 로그 필터링을 참조하세요.
- 집계: 샘플링된 패킷에 대한 정보가 구성 가능한 집계 간격을 통해 집계되어 흐름 로그 항목이 생성됩니다.
- 흐름 로그 샘플링: 두 번째 샘플링 프로세스입니다. 흐름 로그 항목은 구성 가능한 샘플링 레이트 매개변수에 따라 추가로 샘플링됩니다.
- 메타데이터: 사용 중지하면 모든 메타데이터 주석이 삭제됩니다. 메타데이터를 보관하려면 모든 필드 또는 지정된 필드 세트를 보관하도록 지정할 수 있습니다. 자세한 내용은 메타데이터 주석을 참조하세요.
- 로그 작성: 최종 로그 항목은 Cloud Logging에 기록됩니다.
VPC 흐름 로그는 모든 패킷을 캡처하지 않으므로 캡처된 패킷에서 보간하여 누락된 패킷을 보완합니다. 이는 초기 샘플링 설정 및 사용자가 구성할 수 있는 샘플링 설정으로 인해 누락된 패킷에 발생합니다.
Google Cloud가 모든 패킷을 캡처하지 않을 경우에도 로그 레코드는 상당한 양이 캡처될 수 있습니다. 로그 수집의 다음 측면을 조정하여 트래픽 공개 상태와 스토리지 비용 사이에서 니즈의 균형을 유지할 수 있습니다.
- 집계 간격: 특정 시간 간격 동안 샘플링된 패킷은 단일 로그 항목에 집계됩니다. 이 시간 간격은 5초(기본값), 30초, 1분, 5분, 10분 또는 15분입니다.
- 샘플링 레이트: Logging에 기록되기 전에 로그 수를 샘플링하여 데이터 수를 줄일 수 있습니다. 기본적으로 로그 항목 볼륨은 0.5(50%)씩 조정됩니다. 즉, 항목의 절반 가량이 유지됩니다.
이를
1.0
(100%, 모든 로그 항목 유지)에서0.0
(0%, 유지되는 로그 없음)까지 설정할 수 있습니다. - 메타데이터 주석: 기본적으로 흐름 로그 항목은 소스 및 대상 VM 이름이나 외부 소스 및 대상의 지리적 리전과 같은 메타데이터 정보로 주석 처리됩니다. 메타데이터 주석을 사용 중지하거나 특정 주석만 지정하여 저장공간을 절약할 수 있습니다.
- 필터링: 기본적으로 로그는 서브넷의 모든 흐름에서 생성됩니다. 특정 기준과 일치하는 로그만 생성되도록 필터를 설정할 수 있습니다.
가격 책정
Logging, BigQuery, Pub/Sub의 표준 가격 책정이 적용됩니다. VPC 흐름 로그 가격에 관한 설명은 Network Telemetry 가격 책정에 나와 있습니다.
다음 단계
- VPC 흐름 로그 레코드 형식 및 사용 가능한 메타데이터 주석에 대한 자세한 내용은 VPC 흐름 로그 레코드 정보를 참조하세요.
- 다양한 사용 사례에 대해 수집되는 VPC 흐름 로그 예시를 보려면 트래픽 흐름 정보를 참조하세요.
- 서브넷의 흐름 보고를 시작하려면 VPC 흐름 로그 구성을 참조하세요.