기계 번역으로 제공되는 번역입니다. 제공된 번역과 원본 영어의 내용이 상충하는 경우에는 영어 버전이 우선합니다.
Amazon MSK Replicator 작동 방식
MSK 복제기를 시작하려면 대상 클러스터의 AWS 리전에 새 복제기를 생성해야 합니다. MSK 복제기는 소스라는 기본 AWS 리전의 클러스터에서 대상이라는 대상 리전의 클러스터로 모든 데이터를 자동으로 복사합니다. 소스 클러스터와 대상 클러스터는 동일하거나 다른 AWS 리전에 있을 수 있습니다. 대상 클러스터가 아직 존재하지 않는 경우 이를 생성해야 합니다.
복제기를 생성하면 MSK 복제기는 대상 클러스터의 AWS 리전에 필요한 모든 리소스를 배포하여 데이터 복제 지연 시간을 최적화합니다. 복제 지연 시간은 MSK 클러스터의 AWS 리전 간 네트워크 거리, 소스 및 대상 클러스터의 처리량 용량, 소스 및 대상 클러스터의 파티션 수 등 다양한 요인에 따라 달라집니다. MSK 복제기는 용량을 모니터링하거나 확장할 필요 없이 온디맨드 방식으로 데이터를 복제할 수 있도록 기본 리소스를 자동으로 확장합니다.
데이터 복제
기본적으로 MSK 복제기는 소스 클러스터 주제 파티션의 최신 오프셋에서 대상 클러스터로 모든 데이터를 비동기적으로 복사합니다. '새 주제 감지 및 복사' 설정이 켜져 있으면 MSK 복제기가 새 주제 또는 주제 파티션을 자동으로 감지하여 대상 클러스터에 복사합니다. 그러나 복제기가 대상 클러스터에서 새 주제 또는 주제 파티션을 감지하고 생성하는 데 최대 30초가 걸릴 수 있습니다. 대상 클러스터에서 주제가 생성되기 전에 소스 주제에 생성된 메시지는 복제되지 않습니다. 또는 주제의 기존 메시지를 대상 클러스터에 복제하려는 경우 소스 클러스터 주제 파티션의 가장 빠른 오프셋에서 복제를 시작하도록 생성 중에 복제기를 구성할 수 있습니다.
MSK 복제기는 데이터를 저장하지 않습니다. 데이터는 소스 클러스터에서 소비되고, 인 메모리가 버퍼링되어 대상 클러스터에 기록됩니다. 버퍼는 데이터가 성공적으로 작성되거나 재시도 후 실패할 때 자동으로 지워집니다. MSK 복제기와 클러스터 간의 모든 통신 및 데이터는 항상 전송 중에 암호화됩니다. DescribeClusterV2
, CreateTopic
와 같은 모든 MSK 복제기 API 호출DescribeTopicDynamicConfiguration
은 에 캡처됩니다 AWS CloudTrail. MSK 브로커 로그도 동일하게 반영됩니다.
MSK 복제기는 복제기 인수가 3인 대상 클러스터에 주제를 생성합니다. 필요한 경우 대상 클러스터에서 직접 복제 인수를 수정할 수 있습니다.
메타데이터 복제
MSK 또한 복제기는 소스 클러스터에서 대상 클러스터로 메타데이터 복사를 지원합니다. 메타데이터에는 주제 구성, 액세스 제어 목록(ACLs) 및 소비자 그룹 오프셋이 포함됩니다. 데이터 복제와 마찬가지로 메타데이터 복제도 비동기적으로 발생합니다. 더 나은 성능을 위해 MSK Replicator는 메타데이터 복제보다 데이터 복제의 우선 순위를 지정합니다.
다음 표는 MSK 복제기가 복사하는 액세스 제어 목록(ACLs)의 목록입니다.
Operation | 조사 | APIs 허용됨 |
---|---|---|
Alter |
주제 |
CreatePartitions |
AlterConfigs |
주제 |
AlterConfigs |
생성 |
주제 |
CreateTopics, 메타데이터 |
삭제 |
주제 |
DeleteRecords, DeleteTopics |
설명 |
주제 |
ListOffsets, 메타데이터, OffsetFetch, OffsetForLeaderEpoch |
DescribeConfigs |
주제 |
DescribeConfigs |
읽기 |
주제 |
가져오기, OffsetCommit, TxnOffsetCommit |
쓰기(거부만 해당) |
주제 |
생산, AddPartitionsToTxn |
MSK 복제기는 리소스 유형 주제에 ACLs 대해서만 LITERAL 패턴 유형을 복사합니다. PREFIXED 패턴 유형 ACLs 및 기타 리소스 유형은 복사ACLs되지 않습니다. MSK 또한 복제기는 대상 클러스터ACLs에서 삭제되지 않습니다. 소스 클러스터ACL에서 를 삭제하는 경우 대상 클러스터에서도 동시에 를 삭제해야 합니다. Kafka ACLs 리소스, 패턴 및 작업에 대한 자세한 내용은 https://kafka.apache.org/documentation/#security_authz_cli
MSK 복제기는 ACLs IAM 액세스 제어가 사용하지 않는 Kafka 만 복제합니다. 클라이언트가 클러스터를 읽기/쓰기 위해 IAM 액세스 제어를 사용하는 경우 원활한 장애 조치를 위해 대상 클러스터에서 관련 IAM 정책을 구성MSK해야 합니다. 이는 접두사 및 동일한 주제 이름 복제 구성 모두에 대해서도 마찬가지입니다.
소비자 그룹 오프셋 동기화의 일환으로 MSK Replicator는 스트림 팁(주제 파티션의 끝)에 더 가까운 위치에서 읽고 있는 소스 클러스터의 소비자를 위해 최적화합니다. 소비자 그룹이 소스 클러스터에서 지연되는 경우 소스에 비해 대상의 해당 소비자 그룹에 대해 지연이 더 높을 수 있습니다. 즉, 대상 클러스터로의 장애 조치 후 소비자는 더 많은 중복 메시지를 재처리합니다. 이 지연을 줄이려면 소스 클러스터의 소비자가 스트림의 팁(주제 파티션의 끝)에서 소비를 시작하고 따라잡아야 합니다. 소비자가 따라잡으면 MSK Replicator는 지연을 자동으로 줄입니다.
주제 이름 구성
MSK 복제기에는 접두사(기본값) 또는 동일한 주제 이름 복제라는 두 가지 주제 이름 구성 모드가 있습니다.
접두사 주제 이름 복제
기본적으로 MSK Replicator는 와 같이 소스 클러스터 주제 이름에 자동 생성된 접두사가 추가된 새 주제를 대상 클러스터에 생성합니다<sourceKafkaClusterAlias>.topic
. 이는 복제된 주제를 대상 클러스터의 다른 주제와 구별하고 클러스터 간에 데이터가 순환 복제되지 않도록 하기 위한 것입니다.
예를 들어 MSK Replicator는 소스 클러스터에서 <sourceKafkaClusterAlias>.topic이라는 대상 클러스터의 새 주제로 “topic”이라는 주제의 데이터를 복제합니다. 를 사용하여 sourceKafkaCluster별칭 필드 DescribeReplicator
API 또는 MSK 콘솔의 복제기 세부 정보 페이지에서 대상 클러스터의 주제 이름에 추가할 접두사를 찾을 수 있습니다. 대상 클러스터의 접두사는 <sourceKafkaClusterAlias>입니다.
소비자가 대기 클러스터에서 처리를 안정적으로 다시 시작할 수 있도록 하려면 와일드카드 연산자 를 사용하여 주제에서 데이터를 읽도록 소비자를 구성해야 합니다.*
. 예를 들어 소비자는 두 AWS 리전 모두에서 를*topic1
사용하여 를 소비해야 합니다. 이 예제에는 와 같은 주제도 포함되어 footopic1
있으므로 필요에 따라 와일드카드 연산자를 조정합니다.
활성-활성 클러스터 설정과 같이 대상 클러스터의 별도의 주제에 복제기 데이터를 유지하려는 경우 접두사를 MSK 추가하는 복제기를 사용해야 합니다.
동일한 주제 이름 복제
기본 설정의 대안으로 Amazon MSK Replicator를 사용하면 주제 복제가 동일한 주제 이름 복제로 설정된 복제기를 생성할 수 있습니다(콘솔에 동일한 주제 이름 유지). 대상 MSK 클러스터가 있는 AWS 리전에서 새 복제기를 생성할 수 있습니다. 이름이 동일한 복제된 주제를 사용하면 복제된 주제를 읽도록 클라이언트를 재구성하지 않아도 됩니다.
동일한 주제 이름 복제(콘솔에서 동일한 주제 이름 유지)에는 다음과 같은 이점이 있습니다.
복제 프로세스 중에 동일한 주제 이름을 유지하는 동시에 무한 복제 루프의 위험을 자동으로 방지할 수 있습니다.
복제된 주제에서 읽도록 클라이언트를 재구성하지 않아도 되므로 다중 클러스터 스트리밍 아키텍처를 더 간단하게 설정하고 운영할 수 있습니다.
액티브 패시브 클러스터 아키텍처의 경우 동일한 주제 이름 복제 기능도 장애 조치 프로세스를 간소화하므로 주제 이름을 변경하거나 클라이언트를 재구성하지 않고도 애플리케이션이 대기 클러스터로 원활하게 장애 조치를 수행할 수 있습니다.
데이터 집계 또는 중앙 집중식 분석을 위해 여러 MSK 클러스터의 데이터를 단일 클러스터로 더 쉽게 통합하는 데 사용할 수 있습니다. 이렇게 하려면 각 소스 클러스터와 동일한 대상 클러스터에 대해 별도의 복제기를 생성해야 합니다.
대상 MSK 클러스터의 동일한 이름의 주제로 데이터를 복제하여 한 클러스터에서 다른 클러스터로 데이터 마이그레이션을 간소화할 수 있습니다.
Amazon MSK Replicator는 Kafka 헤더를 사용하여 데이터가 시작된 주제로 다시 복제되는 것을 자동으로 방지하므로 복제 중에 무한 사이클의 위험이 없습니다. 헤더는 각 Kafka 메시지의 키, 값 및 타임스탬프에 포함할 수 있는 키-값 페어입니다. MSK 복제기는 소스 클러스터 및 주제에 대한 식별자를 복제되는 각 레코드의 헤더에 임베드합니다. MSK 복제기는 헤더 정보를 사용하여 무한 복제 루프를 방지합니다. 클라이언트가 복제된 데이터를 예상대로 읽을 수 있는지 확인해야 합니다.