eBPF이란?
사전적 정의 (Dictionary Definition)
eBPF(extended Berkeley Packet Filter)는 리눅스 커널 소스 코드를 수정하거나 별도의 모듈을 로드하지 않고도 가동 중인 커널 내부의 샌드박스 환경에서 사용자 정의 프로그램을 안전하게 실행할 수 있도록 지원하는 기술입니다. 1992년 패킷 필터링용 기술인 BPF에서 유래하여 2014년에 대대적으로 확장되었으며, 검증기(Verifier)와 JIT(Just-In-Time) 컴파일러를 통해 시스템의 안정성을 보장하며 네트워킹, 보안, 시스템 추적 및 관측성(Observability) 영역에서 핵심적인 역할을 수행합니다.
실무 사용 예시 (Practical Use Case)
- 클라우드 네이티브 네트워킹: 쿠버네티스 환경에서 Cilium과 같은 솔루션을 활용하여 서비스 간 통신 가시성을 확보하고 고성능 네트워크 부하 분산을 구현합니다.
- 시스템 성능 진단: 소스 코드 수정이나 재부팅 없이 커널 함수(kprobes)나 시스템 콜에 결합하여 애플리케이션의 성능 병목 현상을 실시간으로 프로파일링합니다.
- 커널 수준 보안 강화: 런타임 중에 발생하는 비정상적인 시스템 접근이나 권한 상승 시도를 감시하고 이를 즉각적으로 차단하는 보안 정책을 수립합니다.
관련 단어 (Related Words)
- 리눅스 커널(Linux Kernel): eBPF 프로그램이 주입되어 실행되는 운영체제의 핵심부입니다.
- 관측성(Observability): 시스템 내부의 동작을 심층적으로 파악하는 기술로, eBPF의 주요 활용 분야 중 하나입니다.
- 샌드박스(Sandbox): 외부와 분리된 보호 구역을 의미하며, eBPF 프로그램이 시스템 안정성을 해치지 않도록 제한된 범위 내에서만 동작하게 합니다.