초당 100만 건, LINE 앱에 Apache Kafka 종단 간 암호화 적용기
데브옵스
초당 100만 건, LINE 앱에 Apache Kafka 종단 간 암호화 적용기
두줄요약
LINE 메신저의 대규모 Kafka 토픽에 종단 간 암호화를 적용한 설계와 운영 경험을 공유했습니다. 공유 KEK, 평문 폴백, 점진적 배포로 무중단 전환과 낮은 성능 오버헤드를 달성했습니다.
문제 상황
- LINE 메신저의 대규모 Kafka 토픽에서 민감 데이터 기밀성 강화 필요
- 브로커 접근 통제만으로는 저장된 페이로드 평문 노출 위험이 남는 구조
- 초당 100만 건 수준의 트래픽에서 무중단 적용과 성능 유지가 함께 요구됨
원인 분석
- TLS, SASL, ACL은 전송 구간과 접근 권한 보호에 초점이 있어 데이터 자체 보호에는 한계
- 컨슈머별 고유 키 사용 시 헤더 메타데이터 누적으로 메시지 크기 급증
- 암호화 도입 과정에서 평문과 암호문 공존, 키 교체 전환, 운영 안정성 확보가 과제
해결 방법
- 레코드 단위 암호화와 Kafka 인터셉터·시리얼라이저·디시리얼라이저 활용으로 표준 API 기반 적용
- AES-GCM 기반 DEK와 ECC 기반 KEK의 DEK-KEK 구조로 성능과 키 관리 유연성 확보
- 공유 KEK, 평문 폴백, 점진적 배포, 무중단 키 교체, DEK 캐싱으로 대규모 운영 대응
성능/운영 포인트
- 벤치마크에서 인스턴스당 CPU 증가 1% 미만
- 프로듀서와 컨슈머 모두 서버 증설 없이 적용
- 2주간 단계적 배포 동안 암/복호화 장애 0건