를 사용하여 온프레미스 Apache Kafka 클러스터를 AmazonMSK으로 마이그레이션 MirrorMaker - AWS 권장 가이드

기계 번역으로 제공되는 번역입니다. 제공된 번역과 원본 영어의 내용이 상충하는 경우에는 영어 버전이 우선합니다.

를 사용하여 온프레미스 Apache Kafka 클러스터를 AmazonMSK으로 마이그레이션 MirrorMaker

작성자: Han Zhang(AWS) 및 Tanner Pratt(AWS)

환경: PoC 또는 파일럿

소스: 온프레미스 또는 자체 관리형 Apache Kafka 클러스터

대상: Amazon Managed Streaming for Apache Kafka(AmazonMSK)

R 유형: 리플랫포밍

워크로드: 오픈 소스, 기타 모든 워크로드

기술: 분석, 빅 데이터, 마이그레이션

AWS 서비스: Amazon MSK

요약

이 패턴은 온프레미스, 자체 관리형 또는 호스팅형 Apache Kafka 클러스터를 Amazon Managed Streaming for Apache Kafka(Amazon)로 마이그레이션하기 위한 지침을 제공합니다MSK. 이 패턴을 사용하여 한 Amazon MSK 클러스터에서 다른 클러스터로 마이그레이션할 수도 있습니다.

Apache Kafka에는 두 Kafka 클러스터 간에 데이터를 복제하는 MirrorMaker 기능이 포함되어 있습니다. 소비자 그룹 의 일부인 소비자 모음 로 MirrorMaker 구성됩니다. 소비자가 소스 클러스터의 주제에서 데이터를 읽은 다음 이 데이터를 생산자에게 전달하고, 생산자는 대상 클러스터에 이 데이터를 씁니다.

Amazon MSK 설명서에는 MirrorMaker 버전 1.0을 사용하여 온프레미스 Kafka 클러스터를 Amazon 로 마이그레이션하는 프로세스에 대한 개략적인 개요가 포함되어 있습니다MSK. 이 패턴은 MirrorMaker 버전 2.0 사용에 대한 포괄적인 step-by-step 지침을 제공하여 이 정보를 보완합니다.

사전 조건 및 제한 사항

사전 조건 

  • 활성 AWS 계정

  • 다음 중 하나인 Kafka 소스 클러스터입니다.

    • 온프레미스 데이터 센터 내

    • 클라우드 내의 자체 관리형

    • 파트너를 통해 호스팅됨

제한 사항

  • MirrorMaker 버전 2.0을 사용하려면 소스 클러스터가 Apache Kafka 버전 2.4.0 이상을 작동하고 있어야 합니다. 이전 버전의 경우 MirrorMaker 버전 1.0을 사용하려면 Amazon MSK 설명서의 지침을 참조하세요.

제품 버전

아키텍처

소스 기술 스택

  • 온프레미스 또는 자체 관리형 Kafka 클러스터

대상 기술 스택

  • Amazon MSK 클러스터

대상 아키텍처 

MirrorMaker 소스 클러스터의 데이터를 읽고 대상 Amazon MSK 클러스터에 복제합니다.

이 다이어그램은 다음 프로세스를 보여줍니다.

  1. MirrorMaker 는 소스 Kafka 클러스터의 주제 및 소비자 그룹에서 데이터를 읽습니다.

  2. MirrorMaker 는 데이터 및 소비자 정보를 대상 Amazon MSK 클러스터에 복제합니다.

도구

AWS 서비스

  • Amazon Elastic Compute Cloud(Amazon EC2)는 AWS 클라우드에서 확장 가능한 컴퓨팅 용량을 제공합니다. 필요한 만큼 가상 서버를 시작하고 빠르게 스케일 업하거나 스케일 다운할 수 있습니다.

  • Amazon Managed Streaming for Apache Kafka(Amazon MSK)는 Apache Kafka를 사용하여 스트리밍 데이터를 처리하는 애플리케이션을 구축하고 실행하는 데 도움이 되는 완전 관리형 서비스입니다.

  • Amazon Virtual Private Cloud(Amazon VPC)를 사용하면 정의한 가상 네트워크로 AWS 리소스를 시작할 수 있습니다. 이 가상 네트워크는 자체 데이터 센터에서 운영하는 기존 네트워크와 유사하며 확장 가능한 인프라를 사용할 때의 이점이 있습니다AWS.

기타 도구

  • Apache Kafka는 오픈 소스 이벤트 스트리밍 플랫폼입니다. 이 패턴에서는 Kafka의 MirrorMaker 기능을 사용하여 클러스터 간 마이그레이션을 수행합니다.

모범 사례

소스 또는 대상 환경에서 MirrorMaker 를 실행할 수 있지만 대상 클러스터에 최대한 가깝게 실행하는 것이 좋습니다. 자세한 내용은 Apache Kafka 설명서의 모범 사례: 원격에서 소비, 로컬에 생산을 참조하세요.

에픽

작업설명필요한 기술

를 생성합니다VPC.

  1. 대상 AWS 계정VPC에서 을 생성합니다. 지침은 생성 섹션을 참조하세요VPC.

  2. 새 의 서로 다른 가용 영역에 3개의 프라이빗 서브넷을 생성합니다VPC. 자세한 내용은 서브넷 생성을 참조하세요. 서로 다른 가용 영역을 사용하여 고가용성 및 내결함성을 제공할 수 있습니다.

    참고: 퍼블릭 인터넷 연결을 사용하여 Kafka 클러스터를 마이그레이션하는 경우 퍼블릭 서브넷을 생성하고 Amazon MSK 클러스터에 대한 퍼블릭 액세스를 활성화합니다.

AWS 시스템 관리자, DevOps 엔지니어, 클라우드 관리자

Amazon MSK 클러스터를 생성합니다.

Amazon MSK 클러스터를 생성합니다. 지침은 AWS 관리 콘솔을 사용하여 클러스터 생성 또는 AWS 를 사용하여 클러스터 생성을 참조하세요CLI. 이전에 생성한 VPC 및 서브넷을 사용하도록 클러스터를 구성합니다.

AWS 시스템 관리자, DevOps 엔지니어, 클라우드 관리자
작업설명필요한 기술

를 설치합니다 MirrorMaker.

  1. EC2 인스턴스 를 시작합니다.

  2. EC2 인스턴스 에 연결합니다.

  3. EC2 인스턴스에서 최신 Kafka 릴리스를 다운로드하고 추출합니다. 지침은 빠른 시작 섹션(Kafka 설명서)을 참조하세요.

참고: 이 패턴에서는 Amazon EC2 인스턴스에 전용 MirrorMaker 클러스터로 MirrorMaker2.0을 설치합니다. 이 옵션은 개발 환경에 적합하며 이 패턴에서 사용되는 접근 방식입니다. MirrorMaker2.0의 다른 배포 옵션에 대한 자세한 내용은 이 패턴의 추가 정보 섹션을 참조하세요.

AWS 시스템 관리자, 클라우드 관리자, DevOps 엔지니어

Kafka 클러스터 정보를 지정하세요.

Kafka 클라이언트 설치 bin 폴더에서 mm2.properties 파일을 생성하고 소스 Kafka 클러스터에 맞게 구성합니다. 지침은 전용 MirrorMaker 클러스터 실행(Kafka 설명서)을 참조하세요.

AWS 시스템 관리자, 클라우드 관리자, DevOps 엔지니어

를 시작합니다 MirrorMaker.

다음 명령을 입력하여 mm2.properties 파일을 시작하고 MirrorMaker 전달합니다.

$ ./bin/connect-mirror-maker.sh mm2.properties
AWS 시스템 관리자, 클라우드 관리자, DevOps 엔지니어

진행 상태를 모니터링합니다.

각 주제의 마지막 오프셋과 해당 주제의 현재 오프셋이 소비 MirrorMaker 하는 사이의 지연을 검사하여 진행 상황을 확인합니다. 지침은 Kafka 설명서의 지리적 복제 모니터링을 참조하세요.

AWS 시스템 관리자, 클라우드 관리자, DevOps 엔지니어
작업설명필요한 기술

소비자 애플리케이션을 중지합니다.

소스 클러스터의 데이터를 소비하는 모든 소비자 애플리케이션을 중지하십시오.

앱 개발자

소비자 애플리케이션을 시작합니다.

대상 클러스터를 가리키도록 애플리케이션 부트스트랩 구성을 변경합니다. 그런 다음 대상 클러스터에서 소비를 시작합니다.

앱 개발자

소스 클러스터에서 생산자를 중지합니다.

소비자 애플리케이션이 대상 클러스터에서 성공적으로 소비되면 소스 클러스터의 생산자를 중지합니다.

앱 개발자

대상 클러스터에서 생산자를 시작합니다.

생산자의 구성 부트스트랩 서버를 변경하고 대상 클러스터를 가리킵니다. 생산자를 시작하기 전에 MirrorMaker 가 소스 클러스터의 모든 데이터 미러링을 완료할 때까지 기다립니다.

앱 개발자

를 중지합니다 MirrorMaker.

생산자가 대상 클러스터로 이동한 후 를 중지합니다 MirrorMaker.

AWS 시스템 관리자, 클라우드 관리자, DevOps 엔지니어

관련 리소스

AWS 리소스

기타 리소스

추가 정보

이 패턴은 Amazon 에서 전용 MirrorMaker 클러스터 로 MirrorMaker 2.0을 실행합니다EC2. 이 옵션은 개발 환경에 적합합니다. 이 패턴에서는 설명하지 않지만 Kafka Connect 클러스터에서 MirrorMaker 2.0을 실행할 수도 있습니다. 이 배포 옵션은 크기 조정 및 유지 관리를 개선하는 Kafka 에코시스템 내의 프레임워크를 사용합니다. 애플리케이션을 실행하기 위한 관련 구성을 사용하여 커넥터를 Kafka Connect 클러스터에 배포합니다. 커넥터는 개발 또는 테스트를 위해 독립 실행형 모드로 실행하거나 프로덕션용 분산 모드에서 실행할 수 있습니다. 자세한 내용은 Connect 클러스터 MirrorMaker 에서 실행(Apache Kafka 설명서)을 참조하세요. 다른 MirrorMaker 2.0 배포 옵션에 대한 자세한 내용은 연습: MirrorMaker 2.0 실행(Kafka 설명서)을 참조하세요.