VPC Flow Logs로 VPC에서 송수신 되고 있는 트래픽 정보 확인해 보기

VPC Flow Logs로 VPC에서 송수신 되고 있는 트래픽 정보를 확인해 보는 방법을 정리해 봤습니다.
2023.07.02

안녕하세요 클래스메소드 김재욱(Kim Jaewook) 입니다. 이번에는 VPC Flow Logs로 VPC에서 송수신 되고 있는 트래픽 정보를 확인해 보는 방법을 정리해 봤습니다.

VPC Flow Logs?

VPC 흐름 로그는 VPC의 네트워크 인터페이스에서 전송되고 수신되는 IP 트래픽에 대한 정보를 수집할 수 있는 기능입니다. 흐름 로그 데이터는 Amazon CloudWatch Logs, Amazon S3 또는 Amazon Kinesis Data Firehose에 게시될 수 있습니다. 흐름 로그를 생성하면 구성한 로그 그룹, 버킷 또는 전송 스트림의 흐름 로그 레코드를 검색하고 볼 수 있습니다.

AWS 공식문서에서는 VPC Flow Logs를 다음과 같이 설명하고 있습니다.

즉, VPC에서 이루어지고 있는 송수신에 대한 트래픽을 수집하여 S3, CloudWatch Logs, Kinesis에 보존하여 확인할 수 있습니다.

VPC Flow Logs 생성해 보기

먼저 VPC 콘솔 화면으로 들어옵니다.

  • VPC Flow Logs를 생성할 VPC를 선택합니다.
  • 「작업」을 클릭합니다.
  • 「플로우 로그 생성」을 클릭합니다.

  • VPC Flow Logs의 이름을 설정합니다.
  • 필터에서는 허용된 트래픽, 거부된 트래픽 혹은 허용과 거부된 트래픽을 모두 수집할 것인지 설정합니다.
  • 집계 간격은 특정 플로우가 캡처되어 플로우 로그 레코드로 집계되는 기간입니다.
    • 기본적으로 10분으로 설정되어 있습니다.
  • 로그를 보존할 대상을 선택합니다.
    • CloudWatch Logs
    • Amazon S3
    • 동일 계정의 Kinesis Firehose
    • 다른 계정의 Kinesis Firehose

  • 로그 레코드 형식을 설정합니다.
    • AWS 기본 형식의 경우 형식 미리 보기에 나와있는 것 처럼 Version, Account ID, Interface ID 등이 로그에 기록됩니다.
    • 사용자 지정 형식의 경우 사용자가 임의로 레코드 형식을 커스텀할 수 있습니다.
  • 로그 파일 형식의 경우 텍스트값과 Parquet를 선택할 수 있습니다.
    • 텍스트의 경우 gz 파일 형식으로 로그가 보존되며, Parquet의 경우 Parquet 형식으로 로그가 보존됩니다.
  • Hive 호환 S3 접두사를 사용하여 Hive 호환 도구로 새 데이터를 로드하는 작업을 간소화할 수 있습니다.
  • 마지막으로 시간별 로그 분할을 선택합니다.

Flow Logs는 VPC를 선택하고「플로우 로그」카테고리에서 확인할 수 있습니다.

설정한 S3 버킷으로 들어가서 확인해 보면 다음과 같이 로그를 확인할 수 있습니다.

※ 테스트를 위해 EC2 인스턴스를 생성한 다음, 접속 혹은 핑 테스트를 시도했습니다.

실제로 S3 버킷에 로그가 저장되는 경로는 아래와 같습니다.

  • 버킷/S3 Bucket Name/AWSLogs/account-id/vpcflowlogs/region/year/month/day/

실제로 로그 파일을 열어서 확인해 보면, 지정한 레코드 형식으로 출력된 것을 확인할 수 있습니다.

VPC Flow Logs를 CloudFormation으로 생성하고 싶은 경우에는 아래 문서를 참고해 주세요.

본 블로그 게시글을 읽고 궁금한 사항이 있으신 분들은 kis2702@naver.com로 보내주시면 감사하겠습니다.