메뉴 닫기

Kafka Connect의 한계를 극복하는 Amazon Data Firehose 기반 실시간 데이터 전송 전략

실시간 스트리밍 데이터 처리를 위한 Kafka Connect의 과제를 Amazon Data Firehose로 극복하기

클라우드 환경에서 대규모 실시간 데이터 스트리밍을 처리하기 위해 Apache Kafka는 널리 사용되는 오픈소스 플랫폼입니다. 그러나 Kafka Connect를 활용한 기존 방식은 개발, 배포, 오류 처리 및 리소스 오토스케일 등 다양한 과제를 수반하기 때문에 운영 자동화 및 효율화에 대한 요구가 커지고 있습니다. 이를 해결하기 위해 AWS에서는 Amazon Managed Streaming for Apache Kafka(Amazon MSK)와 Amazon Data Firehose의 완전관리형 통합 기능을 제공, 코드 작성 없이 간편하게 Kafka 데이터를 Amazon S3로 전송할 수 있게 되었습니다.

Kafka Connect의 도전 과제와 Firehose의 해결 방안

Kafka Connect는 외부 시스템과 Kafka 클러스터 간 데이터를 주고받기 위한 프레임워크로, 대규모 데이터 전송 환경에서 반드시 필요한 구성 요소였습니다. 그러나 고속 스트리밍 환경에서는 처리 지연, 리소스 과소/과다 프로비저닝, 장애 복구 처리 등 운영 부담이 꾸준히 증가합니다. 특히 예상치 못한 스트리밍 부하 변동에 따라 Kafka Connect 클러스터 리소스를 수시로 조정해야 하며, 이는 높은 관리 비용과 성능 저하로 이어질 수 있습니다.

이를 해결하기 위해 AWS는 2023년 Amazon Data Firehose와 Amazon MSK의 통합 기능을 론칭했습니다. Firehose는 완전 서버리스 구성으로, Kafka 소스로부터 데이터를 수신하고 자동으로 Amazon S3 등의 데이터 싱크로 전달합니다. 코드 작성, 커넥터 배포 또는 리소스 모니터링 없이도 자동 스케일링과 오류 처리, 재시도 로직, 데이터 포맷 변환까지 자동화되며 최대한 간결한 데이터 파이프라인 구조를 구현할 수 있습니다.

Kafka에서 Amazon S3로 전달되는 Data Firehose 구성도

새로운 타임스탬프 기반 시작 지점 지정 기능

초기에는 Firehose 스트림 생성 시점 이후의 데이터만 수신 가능해 제한이 있었습니다. 이에 따라 기존 Kafka Connect의 데이터를 완전히 마이그레이션하기 어렵거나, 최초 설정 이후 수집하지 못한 데이터 보전이 힘든 문제가 있었습니다. 이 문제를 해소하기 위해, 현재 Firehose는 MSK 토픽에서 다음의 세 가지 지점부터 선택적으로 데이터를 수신할 수 있는 기능을 제공합니다.

  1. Firehose 스트림 생성 시점
  2. 토픽 생성 시점부터(Earliest)
  3. 직접 지정한 타임스탬프 지점부터(예: Kafka Connect 종료 시점)

이 타임스탬프 지정 기능은 마이그레이션 시 데이터 누락이나 중복을 최소화하며, 다양한 테스트 또는 재전송 시나리오에 유용하게 활용될 수 있습니다.

Data Firehose를 활용한 마이그레이션 및 신규 파이프라인 구성 아키텍처

시나리오 1: Kafka Connect에서 Firehose로 마이그레이션

이 시나리오는 기존 Kafka Connect를 Firehose로 대체하고자 하는 고객에게 적합합니다.

  1. Kafka Connect가 Amazon S3로 전송한 마지막 데이터의 타임스탬프를 확인합니다.
  2. Data Firehose 스트림을 생성하고, MSK 데이터를 타임스탬프 기준으로 수집하도록 구성합니다.
  3. 전달된 데이터를 S3에서 검증합니다.

Kafka Connect의 오프셋 및 타임스탬프를 추출하기 위해 아래와 같은 스크립트를 사용할 수 있습니다.

python3 get_latest_offsets.py –broker-list $bs –topic-name “order” –consumer-group-id “connect-msk-serverless-connector” –aws-region “eu-west-1”

Kafka Connect 오프셋별 타임스탬프 확인 결과 샘플

시나리오 2: 신규 파이프라인 생성

신규로 실시간 데이터 파이프라인을 구축하는 경우에는 가장 빠른 토픽 생성 시점부터 모든 데이터를 가져올 수 있도록 설정할 수 있습니다.

  1. Firehose 스트림 생성을 통해 MSK → S3 구간을 구축합니다.
  2. 토픽 시작 지점을 Earliest 또는 Timestamp로 설정합니다.
  3. S3 내 전송 폴더 구조 및 데이터 수신을 확인합니다.

Earliest 시점에서 시작하는 새로운 파이프라인 설정 예시
S3에 저장된 Firehose 데이터 확인 화면

활용 가이드 팁 및 자동화 고려사항

  • 시간 기반 전달 설정은 완전한 자동화를 위해 Terraform, AWS CLI, 또는 CloudFormation 템플릿과 함께 사용 가능합니다.
  • 파이프라인 구성 시 IAM Role 자동 생성을 선택하거나 기존에 권한 부여된 Role을 지정할 수 있어 보안 측면에서도 유연합니다.
  • 비용 최적화 측면에서 Firehose는 리소스 기반 요금이 아닌 전송되는 데이터 기반 요금 모델을 제공하므로, Kafka Connect 대비 운영 효율성과 비용 측면에서 유리합니다.

결론

Amazon Data Firehose의 Kafka 통합 기능은 Kafka Connect의 운영 복잡성을 제거하고, 보다 효율적인 실시간 데이터 파이프라인을 구축할 수 있는 방법을 제시합니다. 오토스케일링, 자동화된 에러 처리, 맞춤형 시작 지점 설정을 통해 안정적인 데이터 전달 환경을 구현할 수 있으며, 신규 및 마이그레이션 시나리오 모두에서 빠르게 활용될 수 있습니다. 실시간 스트리밍 데이터 활용이 중요한 서비스라면 Firehose 통합을 적극 고려해보길 권장합니다.

https://aws.amazon.com/blogs/big-data/overcome-your-kafka-connect-challenges-with-amazon-data-firehose/

AI, Cloud 관련한 문의는 아래 연락처로 연락주세요!

(주)에이클라우드
이메일 : acloud@a-cloud.co.kr
회사 번호 : 02-538-3988
회사 홈페이지 : https://www.a-cloud.co.kr/
문의하기


AI, Cloud 도입 상담 배너