"네트워킹의 미래" eBPF의 활용 사례와 발전 방향

6 days ago 11

오픈소스 eBPF(Extended Berkeley Packet Filter) 기술은 지난 10년간 리눅스 네트워킹의 가장 중요한 기반 요소 중 하나로 자리 잡았다. 이제 이 강력한 기술이 마이크로소프트 윈도우로도 확장될 예정이다.
 

ⓒ Getty Images Bank

9월 11일 열린 eBPF 서밋(eBPF Summit)에서는 여러 사용자와 개발자가 현재 eBPF를 어떻게 활용하고 있으며, 앞으로 이 기술이 어떤 방향으로 나아갈 것인지에 대해 논의했다. eBPF는 리눅스 커널에서 코드를 안전하게 실행할 수 있도록 하며, 네트워크 패킷 가시성과 다양한 보안 기능을 지원한다. eBPF는 2014년 리눅스에 처음 통합된 이후 그 기능과 활용 범위가 꾸준히 확장되어 왔다.

이소발렌트(Isovalent)의 공동 설립자이자 CTO인 토마스 그라프는 기조연설에서 "eBPF는 운영체제 수준에서 인프라와 도구의 빠른 혁신을 가능하게 한다"라고 말했다. 이소발렌트는 올해 초 시스코에 인수됐다. eBPF의 주요 기여자 중 하나로 eBPF를 기반으로 한 오픈소스 네트워킹 프로젝트인 실리움(Cilium)을 운영하고 있다.


넷플릭스가 eBPF를 활용하는 방법

스트리밍 미디어 거대 기업인 넷플릭스는 이번 서밋에서 언급된 주요 사용자였다. 넷플릭스 플랫폼 네트워킹 디렉터인 쉬웨타 사라프는 기조연설에서 eBPF가 지난 10년간 네트워킹 환경을 어떻게 개선했는지, 그리고 넷플릭스가 이 오픈소스 기술을 어떻게 활용하고 있는지에 대해 설명했다.

사라프는 eBPF가 커널 패치와 디버깅 주기를 단축하는 데 기여했다고 언급했다. 또한 성능 모니터링과 문제 해결을 더 효율적으로 만들었다고 말했다.

사라프는 "클라우드 환경에서는 성능을 매일 디버깅할 수 있는 도구가 당연히 있다고 생각한다. 하지만 eBPF가 없었다면 TCPdump나 strace 같은 오래된 도구에 의존해야 했을 것이고, 이는 시스템 자원을 더 많이 소모하고 비효율적이었을 것이다. 결과적으로 대규모 클라우드 환경에서 모니터링 비용이 훨씬 많이 들었을 것이다"라고 강조했다.

넷플릭스는 eBPF의 주요 기여자이자 사용자이며, eBPF를 활용한 여러 네트워킹 도구도 자체적으로 개발했다. 예를 들어 넷플릭스는 eBPF를 이용해 데이터를 수집하고 처리하는 네트워크 가시성 사이드카인 '플로우 익스포터(Flow Exporter)'를 개발했다. 사이드카는 클러스터와 함께 작동하는 컨테이너를 의미한다. 플로우 익스포터는 eBPF를 활용해 데이터를 수집하고 처리한다.

사라프는 "넷플릭스는 이 데이터를 수집해 트래픽 예측에 사용하며, 대규모 머신러닝 모델을 통해 처리한다. 이를 통해 트래픽 셰이핑과 동적인 트래픽 대응 같은 흥미로운 작업을 수행할 수 있다"라고 말했다.

네트워크 전문가에게 친숙한 '노이지 네이버(noisy neighbor)' 문제도 eBPF를 통해 감지할 수 있다. 이 문제는 애플리케이션 성능에 큰 영향을 미칠 수 있는데, 넷플릭스는 eBPF를 사용해 이를 탐지하고 해결한다. 

또한 넷플릭스는 실시간으로 eBPF 프로그램을 모니터링하고, 평균 실행 시간, 초당 발생 이벤트, CPU 사용률 등의 통계를 제공하는 'bpftop'이라는 도구도 개발했다.

보안 측면에서도 eBPF를 활용하고 있다. 그들은 DDoS 공격 방어 도구인 드로피오(Dropio)에 eBPF 기반 모듈을 도입했다. 사라프는 "IP 기반 규칙을 매우 효율적으로 적용할 수 있는 이 eBPF 기반 모듈에 많은 투자를 했다"라고 설명했다.


eBPF의 미래 : 윈도우로의 확장

eBPF는 처음부터 리눅스에서만 사용 가능한 오픈소스 기술이었다. 그러나 이 기술이 곧 윈도우에서도 사용될 수 있게 될 것이라고 그라프는 전했다.

그라프는 eBPF를 윈도우로 도입하는 과정에서 중요한 목표 중 하나가 기존 eBPF 기반 도구와의 호환성을 유지하는 것이라고 설명했다. eBPF의 바이트코드 언어나 검증, 즉시 컴파일(JIT)과 같은 개념은 동일하게 유지되지만, eBPF 프로그램이 연결될 수 있는 실제 후크 지점은 운영체제에 따라 약간 다를 수 있다고 덧붙였다.

또한 eBPF가 GPU와 DPU(data processing unit)로 가는 트래픽을 처리할 수 있도록 최적화하는 작업도 진행 중이다. AI 워크로드가 증가하면서 GPU와 DPU의 중요성이 더욱 커지고 있기 때문이다.

eBPF의 로드맵에 포함된 또 다른 개념은 '분산 인텔리전스(distributed intelligence)'다. 그라프는 지금까지 분석이나 머신러닝 같은 인텔리전트한 작업을 수행하려면 대량의 데이터를 데이터베이스로 스트리밍해야 했다고 설명했다. 그러나 이런 방식은 데이터와 저장소 요구 사항이 지나치게 많아지면서 결국 확장성에 한계가 생긴다고 지적했다. 그라프는 "현재 우리는 데이터 전송과 저장에 드는 비용으로 인해 적용할 수 있는 인텔리전스의 양이 제한되는 상황에 있다"라고 설명했다.

분산 인텔리전스라는 개념은 이런 문제를 해결하려는 시도다. 그라프는 "데이터를 인텔리전스에 가져오는 대신, 인텔리전스를 데이터로 가져가는 방식으로 전환하는 것이다"라며 eBPF는 매우 깊이 있는 가시성을 제공할 뿐 아니라, 필요한 데이터를 추출해 인텔리전트한 결정을 내리고, 데이터를 외부로 전송할 필요 없이 실시간으로 처리할 수 있다고 덧붙였다. 
editor@itworld.co.kr

Read Entire Article