AWS VPC에서는 트래픽 미러링을 지원하고 있습니다.
트래픽 미러링은 EC2로 향하는 네트워크 트래픽을 다른 EC2 또는 NLB로 미러링 할 수 있도록 도와줍니다.
이를 통해 별도의 트래픽 분석 환경을 구축하여 운영 중인 서비스로 향하는 네트워크 트래픽을 분석할 수 있습니다.
이번 글에서는 EC2 2대를 활용하여 트래픽 미러링을 설정해보도록 하겠습니다.
시작하기에 앞서, AWS 트래픽 미러링 설정을 할 때 Source Server와 Target Server를 구분합니다.
Source Server
운영 중인 서버를 의미하며, 네트워크 트래픽이 주로 인입되는 서버입니다.
Target Server
Source Server로 향하는 네트워크 트래픽을 미러링하는 서버입니다. 보통 분석 서버로 사용합니다.
Security Group 정책 적용
트래픽 미러링은 UDP 4789 포트를 통해 수행합니다.
Target Server에서 미러링을 받을 수 있도록 아래와 같이 정책을 추가합니다.

AWS VPC의 트래픽 미러링 서비스는 총 3가지로 구분되며, 각 역할은 아래와 같습니다.
미러 세션
Source Server와 Target Server를 연결할 수 있도록 설정합니다.
미러 대상
Target Server를 설정합니다.
미러 필터
어떠한 네트워크 트래픽에 대해 미러링을 할 지 설정합니다.
우선 미러 대상부터 생성하도록 하겠습니다.
미러 대상 생성
대상 선택에서 네트워크 인터페이스, NLB(Network Load Balancer), GWLB(Gateway Load Balancer) 중 선택이 가능하며,
EC2로 연결하기 위해선 네트워크 인터페이스를 선택합니다.
이후 대상에서 출력되는 리스트 중 Target Server로 지정할 EC2와 연결된 네트워크 인터페이스를 선택합니다.

생성한 미러 대상은 서비스 콘솔 페이지에서 바로 확인할 수 있습니다.

미러 필터 생성
인바운드 규칙은 Target Server에서 수신할 트래픽 정보(서비스 포트)를 작성하고,
아웃바운드 규칙은 Source Server에서 발송할 트래픽 정보(서비스 포트)를 작성합니다.

마찬가지로 생성한 미러 필터도 서비스 콘솔 페이지에서 바로 확인할 수 있습니다.

미러 세션 생성
세션 설정 중 미러 소스에는 Source Server와 연결된 네트워크 인터페이스를 선택하고,
미러 대상에는 이전에 생성한 미러 대상을 선택합니다.

추가 설정 중 세션 번호는 미러 세션의 우선 순위를 지정하는 설정이며, 본 글에서는 1로 지정하겠습니다.
필터에는 이전에 생성한 미러 필터를 선택합니다.

트래픽 미러링 테스트
이제 Source Server에 인입되는 트래픽이 Target Server에도 미러링이 되는지 확인합니다.
저는 tcpdump를 통해 80 포트로 인입되는 트래픽 미러링을 확인하였으며,
아래의 이미지와 같이 확인이 된다면 정상적으로 미러링이 수행되고 있는 것입니다.
Source Server

Target Server

트래픽 미러링은 실제 운영 환경에 인입되는 네트워크 트래픽을 별도의 환경에서 분석을 수행할 수 있는 유용한 서비스입니다.
운영 서비스에는 영향을 주지 않으면서도 네트워크 트래픽을 기록하고 특이 사항을 파악하는데 도움을 줍니다.
네트워크 트래픽 분석은 곧 서비스 보안 및 네트워크 이슈에 대한 도우미 역할로서 매우 큰 도움이 됩니다.
그렇기 때문에 운영 서비스를 보다 안전하게 유지하기 위해 트래픽 미러링 서비스를 구축하시는 것을 적극 권장드립니다.
감사합니다.