Google Cloud에서 Kafka 데이터 이동

이 문서에서는 개발자, 설계자, 의사결정자에게 외부 Kafka 데이터를 Google Cloud로 이전하고, 재해 복구 (DR)를 수행하고, BigQuery와 통합하고, 데이터베이스에서 변경 데이터 캡처 (CDC)를 실행하는 옵션을 안내합니다.

Google Cloud내에서 Kafka 데이터를 Apache Kafka용 Google Cloud 관리형 서비스 클러스터 또는 BigQuery 테이블이나 Cloud Storage 위치와 같은 다른 Google 제품으로 이동할 수 있습니다. 요약은 다음 표를 참고하세요.

사용 사례 데이터 소스 데이터 목적지 추천 솔루션
데이터 복사 자체 관리형 Apache Kafka 클러스터 Managed Service for Apache Kafka 클러스터 Connect 클러스터에서 MirrorMaker 2.0 소스 커넥터를 만듭니다.
데이터 웨어하우스에서 데이터 분석 Managed Service for Apache Kafka 클러스터 BigQuery Connect 클러스터에서 BigQuery 싱크 커넥터를 만듭니다.
동기화를 통한 데이터 이전 자체 관리형 Kafka 클러스터 Managed Service for Apache Kafka 클러스터 Connect 클러스터에서 MirrorMaker 2.0 소스 커넥터를 만듭니다.
리전 간 클러스터 복제 Managed Service for Apache Kafka (지역 A) Managed Service for Apache Kafka 클러스터 (지역 B) Connect 클러스터에서 MirrorMaker 2.0 소스 커넥터를 만듭니다.
데이터 백업 Apache Kafka용 관리형 서비스 Cloud Storage Connect 클러스터에서 Cloud Storage 싱크 커넥터를 만듭니다.
데이터베이스 변경사항 캡처 관계형 데이터베이스, Spanner 또는 Bigtable Apache Kafka용 관리형 서비스 Dataflow에서 Apache Beam 파이프라인 실행
Apache Spark로 데이터 처리 Apache Kafka용 관리형 서비스 Apache Spark Compute Engine에서 Dataproc 실행

Google Cloud 는 Kafka 데이터를 통합하기 위한 여러 솔루션을 제공합니다. 각 제품은 필요와 기존 인프라에 따라 고유한 장점이 있습니다. 가장 적합한 통합 방법은 기존 시스템, 현재 기술, 인프라 관리 역량에 따라 다릅니다.

Kafka Connect 사용

Apache Kafka용 Google Cloud 관리형 서비스를 사용하면 Kafka Connect를 실행하는 클러스터를 프로비저닝할 수 있습니다. Kafka Connect의 기본 목표는 이전, 백업, 재해 복구, 고가용성, 데이터 통합과 같은 사용 사례를 위해 Managed Service for Apache Kafka 클러스터를 다른 시스템에 연결하는 것입니다. Managed Service for Apache Kafka의 가장 일반적인 데이터 통합 작업에는 Kafka Connect를 사용하는 것이 좋습니다. Kafka Connect는 다음과 같은 여러 이점을 제공합니다.

  • 기본 제공 커넥터를 사용하여 외부 Kafka 클러스터를 다양한 Google Cloud 데이터 소스 및 싱크에 연결합니다. 외부 Kafka 클러스터에는 Apache Kafka용 관리형 서비스, 온프레미스 Kafka 클러스터, 맞춤 클라우드 배포가 포함됩니다. 지원되는 커넥터는 다음과 같습니다.

    • MirrorMaker 2.0 커넥터

    • BigQuery 싱크

    • Cloud Storage 싱크

    • Pub/Sub 소스

    • Pub/Sub 싱크

  • 데이터 파이프라인이 증가하는 데이터 볼륨을 처리하고 고가용성을 유지할 수 있도록 지원하는 Google Cloud의 인프라의 확장성과 안정성을 활용하세요.

  • Kafka Connect 인프라 관리의 운영 부담을Google Cloud로 오프로드합니다.

  • Google Cloud의 모니터링 및 로깅 도구를 사용하여 Kafka Connect 클러스터를 모니터링하고 관리합니다.

Kafka Connect에 대해 자세히 알아보려면 Kafka Connect 개요를 참고하세요.

Dataflow 사용

Google Cloud의 서버리스 데이터 처리 서비스는 서버리스 스트림 및 일괄 데이터 통합을 제공합니다. Dataflow를 사용하여 Kafka 데이터를 BigQuery 데이터 세트 또는 Cloud Storage 버킷과 같은 다양한 싱크로 이동할 수 있습니다. Dataflow 템플릿을 사용하거나 Apache Beam 파이프라인을 배포하여 Dataflow 파이프라인을 배포할 수 있습니다. 다음 요소를 기준으로 Dataflow 배포를 선택합니다.

  • 특히 일반적인 데이터 통합 작업의 경우 더 간단하고 빠른 배포를 위해 콘솔에서 직접 배포할 수 있는 사전 빌드된 Dataflow 템플릿을 선택하세요.

  • 유연성, 제어, 맞춤 로직이 필요한 복잡한 사용 사례를 최대한 활용하려면 Apache Beam 파이프라인을 선택하세요.

기본 제공 템플릿

기본 제공 Dataflow 템플릿은 코드 없이 사용하기 쉬운 작업 마법사에서 배포할 수 있는 사전 정의된 Apache Beam 파이프라인입니다. Dataflow는 Kafka 데이터를 Google Cloud로 내보내기 위한 여러 Dataflow 템플릿을 제공합니다.

맞춤 Apache Beam 파이프라인

이전 섹션에서 설명한 Dataflow 템플릿이 모든 요구사항을 충족하지 않을 수 있습니다. 예를 들어 이러한 템플릿에서 지원하지 않는 소스 또는 싱크와 Kafka 데이터를 통합해야 할 수 있습니다. 레코드에 변환, 정규화 또는 변이를 실행해야 할 수도 있습니다.

이러한 시나리오에서는 Apache Beam SDK를 사용하여 Dataflow에서 실행할 수 있는 파이프라인을 작성할 수 있습니다.

파이프라인, PCollection, 변환, 러너와 같은 주요 개념을 비롯한 Apache Beam 프로그래밍 모델에 대한 자세한 내용은 Apache Beam 프로그래밍 모델을 참고하세요.

SDK 설치, 프로그래밍 가이드, 대화형 환경 등 Apache Beam 프로그래밍을 시작하는 데 필요한 리소스는 Apache Beam을 사용하여 파이프라인 빌드를 참고하세요. 이 문서에서는 파이프라인을 설계, 생성, 테스트하는 링크와 스트리밍 파이프라인의 예도 제공합니다.

변경 내역 (변경 데이터 캡처)을 Kafka에 써야 하는 경우 Dataflow 파이프라인의 일부로 다음 구성요소를 사용하는 것이 좋습니다.

Dataflow는 Dataflow 파이프라인에서 Kafka를 사용하는 데 필요한 여러 리소스를 제공합니다.

Kafka Connect와 Dataflow 중에서 선택

Kafka 클러스터 간에, 특히 Apache Kafka용 관리형 서비스로 데이터를 전송할 때는 일반적으로 Kafka Connect가 기본 솔루션입니다. Kafka Connect의 일부인 MirrorMaker 2.0은 클러스터 마이그레이션, 백업, 재해 복구 또는 기본 변환과 같은 작업에 적합합니다. Kafka Connect는 메시지별 기본 수정사항에 대해 한 번에 하나의 레코드 변환을 지원합니다.

복잡한 변환이 필요한 대량 데이터 이전의 경우 Dataflow가 더 적합합니다. Dataflow의 강점은 데이터가 대상 Managed Service for Apache Kafka 클러스터에 도달하기 전에 데이터 정리, 보강, 집계를 비롯한 복잡한 스트림 기반 작업을 실행할 수 있다는 점입니다. Dataflow를 사용하면 복잡한 데이터 상관관계 및 집계에 필수적인 고급 윈도우 및 정렬 로직을 사용하여 여러 데이터 스트림을 조인할 수 있습니다. 이 기능은 메시지별 기본 수정사항으로 제한되는 Kafka Connect와 Dataflow를 차별화합니다.

Spark 파이프라인에 Dataproc 사용

Apache Spark 및 Hadoop 워크로드용 완전 관리형 서비스는 기존 Spark 파이프라인이 있는 경우에 적합합니다. Apache Spark 사용자는 Dataproc을 사용하여 기존 Spark 배포를 Apache Kafka용 관리형 서비스에 연결할 수 있습니다. Dataproc은 Spark 파이프라인을 위한 Google Cloud의 완전 관리형 서비스이며 클러스터 수명 주기 관리 도구가 포함되어 있습니다. 예를 들어 Kafka에서 스트리밍 데이터를 처리하는 Spark 애플리케이션이 있고 이 애플리케이션을 Google Cloud로 마이그레이션하려는 경우 Dataproc이 적합한 선택입니다.

Spark Streaming 및 Kafka의 경우 Apache Spark에서 통합 가이드를 제공합니다. 일반적인 Kafka 워크플로를 배포할 수 있도록 Dataproc은 여러 오픈소스 템플릿을 제공합니다.