Flink SQL 도입으로 레거시 앱 문제 해결!

by DD
1년 전
조회수 12

레거시 Flink 앱의 유지보수 어려움을 해결하기 위해 Flink SQL 도입을 결정

ksqlDB, Spark Structured Streaming과 비교하여 HA, 확장성, UDF 지원을 강점으로 선택

Kubernetes 기반 클러스터 구축 및 GitOps 기반 쿼리 배포를 통해 운영 효율성 확보

Flink SQL 선택의 기술적 배경

Flink SQL은 SQL 쿼리를 통해 실시간 데이터 스트리밍 처리를 가능하게 한다. 구체적으로 CheckpointSavepoint를 활용하여 HA를 지원하며, UDFCustom Connector를 통해 확장성을 확보한다. 따라서 기존 Flink 내부 구조에 대한 이해를 바탕으로 레거시 시스템을 효과적으로 개선할 수 있었다.

ksqlDB, Spark Streaming과의 비교 분석

Flink SQL은 ksqlDB 대비 HA 측면에서 유리하다. ksqlDB는 failover 시 Changelog replay로 인해 시간이 오래 걸리는 단점이 있다. Spark Structured Streaming마이크로 배치 기반으로 실시간 처리에 불리하지만, 팀 내 경험 부족으로 인해 선택되지 않았다. 따라서 Flink SQL은 균형 잡힌 선택이었다.

Kubernetes 환경에서의 Flink SQL 운영 노하우

Kubernetes 환경에서 Flink SQL Cluster를 구축하기 위해 Session mode를 사용했다. 구체적으로 HA를 위해 S3high-availability.storageDir로 설정하고, JobManager pod의 RPC address를 설정했다. 결과적으로 GitOps를 활용한 쿼리 배포를 통해 운영 효율성을 높였다.

Flink SQL 도입기