경험 중심 1인칭 답변
인턴 프로젝트에서 NiFi로 수집한 로그를 Flink로 실시간 집계하는 파이프라인을 EKS 위에 구성하는 작업을 담당했습니다. 가장 어려웠던 건 Flink 상태 백엔드 설정과 체크포인트 간격이었습니다. 처음에 체크포인트 간격을 짧게 잡았더니 S3 I/O가 병목이 돼서 처리 지연이 쌓였습니다. 간격을 늘리면 장애 시 복구 범위가 커졌습니다. 여러 번 테스트 끝에 업스트림 토픽 파티션 수와 Flink 병렬도를 맞추고, 체크포인트 간격을 30초로 조정하면서 안정화했습니다. EKS에서는 노드 스케일 이벤트 때 Flink 태스크가 재시작되는 문제도 있었고, PodDisruptionBudget 설정으로 해결했습니다.
분산 시스템에서 설정 하나가 전체 처리량에 영향을 준다는 걸 직접 확인했습니다. 앞으로도 분산 시스템을 다룰 때 설정 하나가 전체에 영향을 준다는 전제로 접근하는 방식을 유지하겠습니다. 체크포인트 간격 하나가 처리량과 복구 범위를 동시에 결정합니다. 트레이드오프를 이해하면서 조정하는 게 운영의 핵심입니다.
데이터 파이프라인은 설계보다 운영이 더 복잡합니다.