넷플릭스가 정확하게 eBPF 흐름 로그를 속성짓는 방법
넷플릭스는 확장된 네트워크 통찰력을 위해 eBPF를 사용하여 대규모로 TCP 플로우 로그를 수집하지만, 플로우 IP 주소를 워크로드 ID에 정확하게 연결하는 것은 상당한 과제였습니다. 초기 연결 방식은 내부 IP 주소 추적 서비스인 Sonar에 의존했지만, 분산 시스템의 지연 및 장애로 인해 잘못된 연결이 발생했습니다. 잘못된 연결로 인해 플로우 데이터의 신뢰성이 떨어져 의사결정에 활용할 수 없었으며, 연결하기 전에 수신된 플로우를 15분 동안 보류하는 해결 방법으로도 문제가 해결되지 않았습니다. 이 문제를 해결하기 위해 넷플릭스는 로컬 워크로드 ID를 환경에서 판별하여 로컬 IP 주소를 연결하는 새로운 연결 방식을 개발했습니다. 컨테이너 워크로드의 경우, 넷플릭스는 컨테이너 IP 주소 할당 서비스인 IPMan을 활용하여 로컬 IP 주소를 연결했습니다. 로컬 IP 주소가 연결되면, 각 워크로드가 특정 IP 주소를 소유하는 시간 범위를 학습하여 원격 IP 주소를 연결할 수 있습니다. FlowCollector는 이러한 정보를 나타내는 인메모리 해시맵을 유지하고, Kafka를 사용하여 학습된 시간 범위를 다른 노드와 공유합니다. 이 새로운 방식은 정확한 연결을 달성하고 일시적인 문제를 효과적으로 처리하며, 단순성과 인메모리 조회 덕분에 비용 효율적입니다. 이 방식은 해당 지역의 노드로 플로우를 전달하여 지역 간 IP 주소 연결로 확장되었습니다. 마지막으로, 넷플릭스의 콘텐츠 전송 네트워크에 속한 것과 같은 비워크로드 IP 주소 연결로도 확장되었습니다.