기계 번역으로 제공되는 번역입니다. 제공된 번역과 원본 영어의 내용이 상충하는 경우에는 영어 버전이 우선합니다.
Amazon MSK Replicator는 MSK 클러스터 마이그레이션에 사용할 수 있습니다. Amazon MSK Replicator란 무엇인가요?을 참조하세요. 또는 Apache MirrorMaker 2.0을 사용하여 비 MSK 클러스터에서 Amazon MSK 클러스터로 마이그레이션할 수 있습니다. 이 작업을 수행하는 방법에 대한 예는 MirrorMaker를 사용하여 온프레미스 Apache Kafka 클러스터를 Amazon MSK로 마이그레이션을 참조하세요. MirrorMaker를 사용하는 방법에 대한 자세한 내용은 Apache Kafka 설명서의 클러스터 간 데이터 미러링
MirrorMaker를 사용하여 MSK 클러스터로 마이그레이션하는 경우 따라야 할 단계의 개요
대상 MSK 클러스터 생성
대상 클러스터와 동일한 Amazon VPC 내의 Amazon EC2 인스턴스에서 MirrorMaker를 시작합니다.
-
MirrorMaker 지연을 검사합니다.
-
MirrorMaker가 포착한 후, MSK 클러스터 부트스트랩 브로커를 사용하여 생산자와 소비자를 새 클러스터로 리디렉션합니다.
-
MirrorMaker를 종료합니다.
MirrorMaker 1.0 모범 사례
이 모범 사례 목록은 MirrorMaker 1.0에 적용됩니다.
대상 클러스터에서 MirrorMaker를 실행합니다. 이렇게 하면 네트워크 문제가 발생해도 원본 클러스터에서 메시지를 계속 사용할 수 있습니다. 원본 클러스터에서 MirrorMaker를 실행했을 때 생산자에서 이벤트가 버퍼링되고 네트워크 문제가 있는 경우 이벤트가 손실될 수 있습니다.
-
전송 중 암호화가 필요한 경우 원본 클러스터에서 실행합니다.
소비자의 경우 auto.commit.enabled=false로 설정합니다.
생산자의 경우
max.in.flight.requests.per.connection=1
retries=Int.Max_Value
acks=all
max.block.ms = Long.Max_Value로 설정합니다.
생산자 처리량이 큰 경우:
메시지 버퍼링 및 메시지 배치 채우기 - buffer.memory, batch.size, linger.ms 조정
소켓 버퍼 조정 - receive.buffer.bytes, send.buffer.bytes
데이터 손실을 방지하려면 MirrorMaker가 일반적으로 대상 클러스터에서 ACK를 받은 후에 수행하는 커밋을 제어할 수 있도록 원본에서 자동 커밋을 해제하십시오. 생산자 acks=all이고 대상 클러스터의 min.insync.plicas 설정이 1보다 큰 경우 MirrorMaker 소비자가 원본에서 오프셋을 커밋하기 전에 대상에 있는 둘 이상의 브로커에 메시지가 유지됩니다.
-
순서가 중요한 경우 재시도를 0으로 설정할 수 있습니다. 또는 프로덕션 환경에서 배치가 중간에 실패할 경우 발송된 배치가 잘못된 순서로 커밋되지 않도록 최대 이동 중 연결을 1로 설정합니다. 이렇게 하면 다음 배치가 전송될 때까지 전송된 각 배치가 다시 시도됩니다. max.block.ms가 최대 값으로 설정되어 있지 않고, 생산자 버퍼가 가득 차면 데이터가 손실될 수 있습니다(일부 다른 설정에 따라). 그러면 소비자가 차단되고 줄어들 수 있습니다.
-
높은 처리량
-
buffer.memory를 늘립니다.
-
배치 크기를 늘립니다.
-
배치가 채워지도록 linger.ms를 튜닝하십시오. 그러면 압축이 향상되고 네트워크 대역폭 사용량이 줄고 클러스터의 스토리지도 줄어듭니다. 이렇게 하면 보존이 향상됩니다.
-
CPU 및 메모리 사용량을 모니터링합니다.
-
-
높은 소비자 처리량을 위해
-
MirrorMaker 프로세스당 스레드/소비자 수 늘리기 - num.streams.
-
스레드를 늘리기 전에 먼저 머신 전체의 MirrorMaker 프로세스 수를 늘려 높은 가용성을 확보합니다.
-
동일한 머신에서 먼저 MirrorMaker 프로세스 수를 늘린 다음 다른 머신(동일한 그룹 ID 사용)에서 늘립니다.
-
처리량이 매우 높은 주제를 격리하고 별도의 MirrorMaker 인스턴스를 사용합니다.
-
관리 및 구성용
-
Chef 및 Ansible과 같은 AWS CloudFormation 및 구성 관리 도구를 사용합니다.
-
Amazon EFS 마운트를 사용하여 모든 Amazon EC2 인스턴스에서 모든 구성 파일에 액세스할 수 있도록 하세요.
-
컨테이너를 사용하여 MirrorMaker 인스턴스를 쉽게 확장하고 관리할 수 있습니다.
-
일반적으로 MirrorMaker에서 생산자를 포화시키려면 둘 이상의 소비자가 필요합니다. 따라서 여러 소비자를 설정하십시오. 먼저 높은 가용성을 제공하기 위해 여러 머신에 설정합니다. 그런 다음 각 파티션에 대한 소비자를 수용하도록 개별 머신을 확장하여 소비자를 여러 머신에 균등하게 분배합니다.
-
처리량이 높은 수집과 전달의 경우, 기본값이 너무 낮을 수 있는 수신 및 전송 버퍼를 튜닝합니다. 성능을 극대화하려면 MirrorMaker가 대상 클러스터로 복사하려는 모든 주제 파티션 수와 총 스트림 수(num.stream)가 일치해야 합니다.
MirrorMaker 2.*의 장점
Apache Kafka Connect 프레임워크와 에코시스템을 사용합니다.
새로운 주제 및 파티션을 감지합니다.
클러스터 간에 주제 구성을 자동으로 동기화합니다.
"활성/활성" 클러스터 페어와 임의의 수의 활성 클러스터를 지원합니다.
-
여러 데이터 센터 및 클러스터에 대한 엔드 투 엔드 복제 지연 시간을 포함한 새로운 지표를 제공합니다.
-
클러스터 간 소비자를 마이그레이션하는 데 필요한 오프셋을 방출하고 오프셋 변환을 위한 도구를 제공합니다.
-
각 MirrorMaker 1.* 프로세스의 저수준 생산자/소비자 속성과 비교하여 한 곳에서 여러 클러스터 및 복제 흐름을 지정하기 위한 상위 수준 구성 파일을 지원합니다.