기술 블로그
C레벨 - 고난도
Cloudflare FL2: 15년 된 NGINX를 Rust로 완전 재작성
인프라
백엔드
보안
RustOxy FrameworkTokioSystemdNGINXLuaJIT
배경
Cloudflare의 핵심 요청 처리 레이어(FL)는 15년 전 NGINX + PHP로 시작, 2013년 NGINX + OpenResty/LuaJIT로 재작성됨. 제품 기능 누적으로 유지보수와 성능 문제 심화.
도전 과제
모놀리식 FL1 아키텍처에서 새 제품 추가마다 레이턴시 증가. LuaJIT 버그 우회, 동적 Lua 코드의 에러 증가. 복잡한 상호의존성으로 변경 위험 높음.
해결 방안
FL2: Rust 기반 모듈형 프록시로 완전 재작성. Oxy 프레임워크 활용. 엄격한 모듈 프레임워크(명시적 단계 정의, 입출력 계약). Systemd 소켓 활성화로 무중단 배포. Flamingo 시스템으로 수천 개 E2E 테스트.
결과
중위 레이턴시 10ms 감소(25% 성능 향상). CPU 50% 절감, 메모리 대폭 감소. 기능 배포 수주→48시간으로 단축. Rust 컴파일 타임 보안 보장.
핵심 인사이트
- 1.점진적 마이그레이션이 개발 중단 없이 시스템 교체를 가능하게 함
- 2.엄격한 모듈 계약이 기능 간 상호작용을 방지하고 유지보수성 향상
- 3.Rust가 성능과 안정성 모두에서 Lua/C 조합을 크게 상회