eBPF는 단순한 커널 기능이 아니라 현대 클라우드와 Kubernetes 환경을 구성하는 핵심 기술로 발전했습니다.
과거에는 패킷 필터링이나 커널 추적 정도에 활용되었지만, 현재는 네트워크, 보안, 관찰성(Observability), 성능 분석, 런타임 보안까지 다양한 분야에서 사용되고 있습니다.
특히 CNCF(Cloud Native Computing Foundation) 생태계에서는 eBPF 기반 프로젝트들이 빠르게 증가하고 있으며, Kubernetes 환경에서는 사실상 표준 기술로 자리 잡고 있습니다.
이번 글에서는 대표적인 eBPF 프로젝트들의 역할과 구조, 활용 사례를 중심으로 eBPF 생태계를 전체적으로 살펴보겠습니다.
eBPF 생태계란?
eBPF 생태계는 eBPF를 기반으로 다양한 기능을 제공하는 오픈소스 프로젝트들의 집합입니다.
대표적인 구조는 다음과 같습니다.
Linux Kernel
↓
eBPF
↓
Network
Security
Tracing
Observability
Performance
Container
하나의 기술을 기반으로 여러 분야에서 활용되고 있습니다.
eBPF 생태계의 주요 분야
현재 eBPF는 크게 다음과 같은 분야에서 사용됩니다.
- Kubernetes 네트워크
- 런타임 보안
- 시스템 모니터링
- 성능 분석
- 분산 추적
- 패킷 분석
- 로드 밸런싱
각 분야마다 대표 프로젝트가 존재합니다.
Cilium
가장 유명한 eBPF 프로젝트입니다.
기본 구조
Kubernetes
↓
Cilium Agent
↓
eBPF
↓
Linux Kernel
주요 기능
- Kubernetes CNI
- 네트워크 정책
- 서비스 로드밸런싱
- 네트워크 암호화
- L7 Policy
- Service Mesh
현재 Kubernetes 환경에서 가장 많이 사용하는 eBPF 프로젝트입니다.
Falco
Falco는 런타임 보안(Runtime Security)을 담당합니다.
동작 구조
System Call
↓
eBPF
↓
Falco
↓
Alert
주요 기능
- 악성 프로세스 탐지
- 파일 접근 감시
- 권한 상승 탐지
- 컨테이너 이상 행위 탐지
보안 운영팀에서 많이 활용합니다.
Pixie
Pixie는 Observability 플랫폼입니다.
구조
Application
↓
eBPF
↓
Telemetry
↓
Dashboard
수집 정보
- HTTP
- gRPC
- SQL
- DNS
- TCP
- CPU
- Memory
애플리케이션 수정 없이 데이터를 수집할 수 있습니다.
Katran
Katran은 Meta(Facebook)가 개발한 L4 Load Balancer입니다.
동작 과정
Packet
↓
XDP
↓
eBPF
↓
Backend Server
특징
- 초고속 패킷 처리
- 수천만 PPS 처리
- DDoS 대응
- XDP 활용
대규모 서비스 환경에서 사용됩니다.
Tetragon
Tetragon은 Cilium 프로젝트에서 제공하는 런타임 보안 플랫폼입니다.
구조
Process
↓
eBPF
↓
Policy
↓
Event
기능
- Process 추적
- File Access
- Network Event
- Kubernetes Security
- Runtime Enforcement
Falco와 함께 많이 비교되는 프로젝트입니다.
Parca
Parca는 Continuous Profiling 플랫폼입니다.
동작 과정
Application
↓
eBPF
↓
Sampling
↓
Profile
분석 가능한 항목
- CPU
- Memory
- Function
- Flame Graph
지속적인 성능 분석에 활용됩니다.
Inspektor Gadget
Kubernetes 디버깅을 위한 프로젝트입니다.
구조
Container
↓
eBPF
↓
Metrics
↓
CLI
주요 기능
- Process 확인
- Network 확인
- DNS 추적
- File Access
- TCP 분석
운영 중인 Kubernetes 클러스터를 실시간으로 분석할 수 있습니다.
bcc
eBPF 개발 초기에 가장 많이 사용된 프레임워크입니다.
구조
Python
↓
BCC
↓
LLVM
↓
eBPF
특징
- Python 지원
- 빠른 개발
- 다양한 예제
- 학습용으로 적합
현재는 libbpf 기반 개발이 증가하면서 비중이 다소 줄어들었지만 여전히 유용합니다.
bpftrace
한 줄 명령으로 커널을 추적할 수 있는 도구입니다.
예시
sudo bpftrace -e 'tracepoint:syscalls:sys_enter_execve { printf("%s\n", comm); }'
복잡한 프로그램을 작성하지 않고도 실시간 추적이 가능합니다.
bpftool
공식 관리 도구입니다.
주요 기능
- Program 확인
- Map 관리
- BTF 확인
- Link 관리
- Feature 확인
대부분의 eBPF 프로젝트에서 함께 사용됩니다.
주요 프로젝트 비교
| 프로젝트 | 분야 | 대표 기능 |
|---|---|---|
| Cilium | Kubernetes 네트워크 | CNI, Network Policy |
| Falco | 보안 | Runtime Security |
| Pixie | Observability | Telemetry |
| Katran | Load Balancer | XDP 기반 L4 LB |
| Tetragon | Runtime Security | Process Monitoring |
| Parca | Profiling | Continuous Profiling |
| Inspektor Gadget | Kubernetes | Debugging |
| bcc | 개발 프레임워크 | Python 기반 개발 |
| bpftrace | 추적 | CLI Tracing |
| bpftool | 관리 | Program/Map 관리 |
실무에서 자주 사용하는 명령어
로드된 Program 확인
sudo bpftool prog show
BPF Map 확인
sudo bpftool map show
BTF 확인
sudo bpftool btf show
Kernel 기능 확인
sudo bpftool feature
Tracepoint 확인
sudo bpftrace -l 'tracepoint:*'
XDP Attach 확인
ip -details link show
실무 사례
예를 들어 Kubernetes 기반의 대규모 금융 서비스를 운영한다고 가정해 보겠습니다.
운영 환경에서는 다음과 같이 여러 eBPF 프로젝트를 함께 사용할 수 있습니다.
- Cilium으로 Kubernetes 네트워크 정책 관리
- Katran으로 초고속 L4 로드 밸런싱 수행
- Falco와 Tetragon으로 비정상 프로세스 및 파일 접근 감시
- Pixie를 이용해 HTTP 요청과 SQL 성능 분석
- Parca를 통해 CPU 프로파일링 수행
- Inspektor Gadget으로 장애 발생 시 컨테이너 디버깅
- bpftool과 bpftrace로 운영 중인 eBPF 프로그램 점검
각 프로젝트는 서로 다른 목적을 담당하지만 모두 eBPF를 기반으로 동작하며 함께 사용할 때 더욱 강력한 운영 환경을 구축할 수 있습니다.
자주 묻는 질문
eBPF 프로젝트 중 가장 많이 사용되는 것은 무엇인가요?
Kubernetes 환경에서는 Cilium이 가장 널리 사용됩니다. 보안 분야에서는 Falco와 Tetragon, 관찰성 분야에서는 Pixie가 대표적인 프로젝트입니다.
Falco와 Tetragon의 차이는 무엇인가요?
둘 다 런타임 보안을 제공하지만, Falco는 다양한 이벤트를 기반으로 탐지 규칙을 적용하는 데 강점이 있고, Tetragon은 eBPF와 Kubernetes 정책을 더욱 긴밀하게 통합하여 프로세스와 시스템 행위를 세밀하게 제어하는 데 강점을 가집니다.
bcc와 libbpf 중 무엇을 선택해야 하나요?
학습이나 빠른 프로토타입 개발에는 bcc도 유용합니다. 하지만 최신 eBPF 개발과 운영 환경에서는 libbpf와 CO-RE 기반 개발이 사실상의 표준으로 자리 잡고 있습니다.
마무리
eBPF는 단순한 커널 기능을 넘어 거대한 오픈소스 생태계를 형성하고 있습니다. Cilium은 Kubernetes 네트워크를, Falco와 Tetragon은 보안을, Pixie는 관찰성을, Katran은 초고속 로드 밸런싱을 담당하며 각각의 프로젝트는 서로 다른 문제를 해결합니다. 이들 프로젝트를 이해하면 eBPF가 현대 클라우드 인프라의 핵심 기술로 평가받는 이유를 더욱 명확하게 이해할 수 있습니다.