도커 컨테이너 네트워크 트래픽 추적의 혁신, Subtrace 소개
백엔드 서버에서 발생하는 네트워크 요청을 실시간으로 추적하고 분석할 수 있다면, 프로덕션 환경의 문제를 더욱 빠르게 해결할 수 있을 것입니다. 기존의 Wireshark가 네트워크 패킷을 분석하는 강력한 도구라면, Subtrace는 이를 도커 컨테이너 환경에 최적화한 네트워크 트래픽 분석 도구입니다.
Subtrace의 핵심 특징은 다음과 같습니다.
✔ 즉시 사용 가능 – 별도 설정 없이 간단한 실행 명령만 추가하면 동작
✔ 코드 수정 불필요 – 어떤 프로그래밍 언어도 지원 (Python, Node.js, Go 등)
✔ 실시간 트래픽 분석 – 요청의 페이로드, 헤더, 상태 코드, 지연 시간 확인 가능
✔ 100µs 이하의 성능 오버헤드 – 시스템 성능에 거의 영향 없음
✔ Chrome DevTools 연동 – 브라우저에서 직관적으로 트래픽 확인 가능
이제 Subtrace가 어떻게 동작하는지, 그리고 이를 활용하면 어떤 장점이 있는지 살펴보겠습니다.
2. Subtrace란?
Subtrace는 도커 컨테이너 환경에서 네트워크 트래픽을 추적하고 분석할 수 있도록 도와주는 오픈 소스 도구입니다.
기존의 Sentry, OpenTelemetry와 같은 로그 기반 모니터링 도구와 달리, 실시간으로 모든 요청을 그대로 확인할 수 있는 것이 큰 장점입니다.
3. 주요 기능
✅ 설치 및 사용이 간편
Subtrace를 사용하기 위해 별도의 설정이나 복잡한 구성 과정이 필요하지 않습니다.
백엔드 서버 실행 명령 앞에 단순히 subtrace run을 추가하면 됩니다.
subtrace run python app.py
이렇게 실행하면 Subtrace가 자동으로 컨테이너의 네트워크 요청을 가로채어 분석합니다.
✅ 코드 수정 불필요
Subtrace는 네트워크 수준에서 동작하기 때문에 애플리케이션의 코드를 수정할 필요 없이 그대로 사용할 수 있습니다.
Python, Node.js, Go 등 모든 프로그래밍 언어를 지원합니다.
✅ 실시간 트래픽 분석
- 요청의 전체 페이로드 및 헤더 확인 가능
- 응답 상태 코드 및 지연 시간(latency) 체크 가능
- 100µs 이하의 낮은 성능 오버헤드로 운영 환경에서도 사용 가능
✅ Chrome DevTools 네트워크 탭 활용
- TCP 연결을 프록시하여 HTTP 요청을 분석하고 WebSocket을 통해 브라우저로 전송
- Chrome 개발자 도구(DevTools)에서 네트워크 요청을 시각적으로 확인 가능
4. Subtrace의 동작 방식
Subtrace는 Linux 시스템 호출(syscall)을 가로채는 방식으로 동작합니다.
구체적으로, Seccomp BPF(Secure Computing Mode)를 활용하여 모든 네트워크 관련 syscall을 감시하고 분석합니다.
1️⃣ 컨테이너에서 발생하는 모든 네트워크 요청을 가로챔
2️⃣ TCP 연결을 프록시하여 HTTP 요청을 분석
3️⃣ WebSocket을 통해 실시간으로 브라우저에 전송
4️⃣ Chrome DevTools 네트워크 탭에서 시각적으로 확인 가능
이러한 동작 방식 덕분에 기존의 로그 기반 모니터링과 달리, 실제 요청과 응답을 실시간으로 확인할 수 있습니다.
5. Subtrace 활용 사례
✅ 실시간 디버깅: 프로덕션 환경에서 API 요청을 실시간으로 추적하여 버그를 신속히 해결 가능
✅ 네트워크 성능 최적화: 요청의 응답 시간 및 네트워크 지연을 분석하여 성능 병목을 제거
✅ 보안 분석: 비정상적인 네트워크 트래픽을 감지하고 보안 위협을 사전에 차단
6. Subtrace의 오픈 소스 정책
Subtrace는 오픈 소스 프로젝트이지만, 현재는 Pull Request를 받지 않는 정책을 유지하고 있습니다.
이는 스타트업의 소규모 운영 방식 때문이며, 향후 정책이 변경될 가능성이 있습니다.
다만, 기능 요청이나 버그 리포트는 언제든 환영한다고 밝혔습니다.
왜 Subtrace를 사용해야 할까?
Subtrace는 도커 컨테이너 환경에서 실시간 네트워크 트래픽을 추적할 수 있는 강력한 도구입니다.
특히, 설치 및 사용이 간편하고 코드 수정이 필요 없다는 점에서 개발자들에게 매우 유용합니다.
💡 Subtrace가 제공하는 핵심 가치
✔ 빠른 디버깅: 실시간으로 네트워크 요청을 확인하여 문제를 즉시 해결
✔ 쉬운 사용법: subtrace run 한 줄로 실행 가능
✔ 모든 언어 지원: Python, Node.js, Go 등 어떤 언어든 사용 가능
✔ 낮은 성능 오버헤드: 100µs 이하의 오버헤드로 운영 환경에서도 안전하게 사용 가능
https://github.com/subtrace/subtrace
GitHub - subtrace/subtrace: Wireshark for Docker containers
Wireshark for Docker containers. Contribute to subtrace/subtrace development by creating an account on GitHub.
github.com