Comment transférer des données entre des clusters Amazon MSK de différents comptes avec MirrorMaker 2 qui s'exécute sur MSK Connect ?

Lecture de 5 minute(s)
0

Je souhaite utiliser MirrorMaker 2.0 (MM2) qui s'exécute sur MSK Connect pour transférer des données entre des clusters Amazon Managed Streaming for Apache Kafka (Amazon MSK) de différents comptes.

Résolution

Configurer l'appairage VPC

Les clusters Amazon MSK se trouvant dans différents clouds privés virtuels (VPC), vous devez créer une connexion d'appairage de VPC. Créez cette connexion d'appairage de VPC avec un VPC d'un autre compte AWS de la même Région AWS ou d'une région différente. Pour plus d'informations, consultez la section Créer une connexion d'appairage de VPC.

Les groupes de sécurité associés au cluster source Amazon MSK doivent autoriser tout le trafic provenant des groupes de sécurité du cluster cible. Les groupes de sécurité du cluster cible doivent également autoriser tout le trafic provenant des groupes de sécurité du cluster MSK. Pour plus d'informations, voir Mettre à jour vos groupes de sécurité pour faire référence à des groupes de sécurité homologues.

**Remarque :**Pour référencer un groupe de sécurité dans un autre compte, saisissez le numéro de compte dans le champ Source ou Destination. Exemple : 123456789012/sg-1a2b3c4d

Créez un plug-in avec les informations du plug-in MM2

Les plug-ins personnalisés MSK Connect acceptent les fichiers ou dossiers d’extension .jar ou .zip.

Procédez comme suit :

1.Créez un dossier ou un fichier factice, puis compressez-le :

mkdir mm2   
zip mm2.zip mm2 

2.Chargez l'objet .zip dans votre compartiment Amazon Simple Storage Service (Amazon S3) dans le compte cible :

aws s3 cp mm2.zip s3://mytestbucket/

Étant donné que Apache Kafka et MSK Connect intègrent des bibliothèques MirrorMaker, vous n'avez pas besoin d'ajouter des fichiers .jar supplémentaires pour cette fonctionnalité. MSK Connect exige qu'un plug-in personnalisé soit présent lors de la création du connecteur. Vous devez donc en créer un vide à titre de référence.

3.Dans le compte cible, utilisez le fichier .zip pour créer un plug-in personnalisé. Utilisez mm2-connect-plugin comme nom pour le plug-in personnalisé.

Créez un connecteur MSK Connect

Procédez comme suit pour créer un connecteur dans le compte cible :

1.Ouvrez la console Amazon MSK.

2.Dans le volet de navigation, sous MSK Connect, choisissez Connecteurs.

3.Choisissez Créer un connecteur.

4.Dans la liste des plug-ins personnalisés, sélectionnez celui qui se trouve à côté du plug-in personnalisé que vous avez créé, puis choisissez Suivant.

5.Entrez un nom pour le connecteur et, éventuellement, une description.

6.Dans la liste des clusters, choisissez le cluster cible.

7.Copiez la configuration suivante, puis collez-la dans le champ de configuration du connecteur. Modifiez l'exemple en fonction de votre cas d'utilisation.

connector.class=org.apache.kafka.connect.mirror.MirrorSourceConnector  
tasks.max=1  

clusters=primary,replica  
source.cluster.alias=primary  
target.cluster.alias=replica  

topics=example.*  
replication.factor=2  
topic.creation.default.replication.factor=2  
topic.creation.default.partitions=2  
consumer.group.id=mm2-connector  

refresh.groups.interval.seconds=20  
refresh.topics.interval.seconds=20  

sync.topic.configs.interval.seconds=20  
sync.topic.acls.interval.seconds=20  

producer.enable.idempotence=true  

transforms=renameTopic  
transforms.renameTopic.type=org.apache.kafka.connect.transforms.RegexRouter  
transforms.renameTopic.regex=primary.(.*)  
transforms.renameTopic.replacement=$1  

key.converter=org.apache.kafka.connect.converters.ByteArrayConverter  
value.converter=org.apache.kafka.connect.converters.ByteArrayConverter  

# Source cluster options  
source.cluster.bootstrap.servers=<Source_MSK_Bootstrap_Server_PLAINTEXT>  
source.cluster.security.protocol=PLAINTEXT  

# Destination cluster options  
target.cluster.bootstrap.servers=<Target_MSK_Bootstrap_Server_PLAINTEXT>  
target.cluster.security.protocol=PLAINTEXT

8.Définissez la capacité de votre connecteur.

9.Sous Configuration du serveur de travail, choisissez Utiliser la configuration par défaut de MSK.

10.Sous Autorisations d'accès, choisissez le rôle AWS Identity and Access Management (IAM) qui fournit les autorisations requises pour MSK Connect. Ensuite, choisissez Suivant.

11.Sur la page Sécurité, sous Chiffrement - en transit, sélectionnez Trafic en texte brut. Ensuite, choisissez Suivant.

12.Facultativement, sur la page Journaux, définissez la livraison du journal. Ensuite, choisissez Suivant.

13.Sous Réviser et créer, choisissez Créer un connecteur.

**Remarque :**Avec cette configuration, pour répliquer chaque rubrique du cluster source, MM2 crée deux rubriques dans le cluster cible. Par exemple, si la rubrique exampleTopic1 figure sur le cluster source, MM2 crée les rubriques primary.exampleTopic1 et exampleTopic1 sur le cluster cible.Les messages sont acheminés vers la rubrique exampleTopic1.

Créez une instance client

Vous devez créer une instance client pour créer des rubriques et produire ou utiliser des données à partir des rubriques.

1.Lancez une instance Amazon Elastic Compute Cloud (Amazon EC2) en fonction de vos besoins dans le compte source ou cible. Connectez-vous ensuite à l'instance.

2.Exécutez la commande suivante pour installer Java sur l'ordinateur client :

sudo yum -y install java-11

3.Exécutez la commande suivante pour télécharger Apache Kafka :

wget https://archive.apache.org/dist/kafka/2.8.1/kafka_2.12-2.8.1.tgz  

tar -xzf kafka_2.12-2.8.1.tgz

4.Créez la rubrique exampletopic1 dans le cluster Amazon MSK dans le compte source :

<path-to-your-kafka-installation>/bin/kafka-topics.sh --create --bootstrap-server <Source MSK cluster BootstrapServerString> --replication-factor 3 --partitions 1 --topic exampletopic1

5.Produisez des données dans le cluster sur le compte source :

<path-to-your-kafka-installation>/bin/kafka-console-producer.sh --broker-list <Source MSK cluster BootstrapServerString> --topic exampletopic1
>message 1  
>message 2

6.Répertoriez les rubriques du cluster sur le compte cible :

<path-to-your-kafka-installation>/bin/kafka-topics.sh --bootstrap-server <Target MSK cluster BootstrapServerString> --list

Le résultat doit être similaire à :

__amazon_msk_canary  
__amazon_msk_connect_configs_mm2-*****  
__amazon_msk_connect_offsets_mm2-*****  
__amazon_msk_connect_status_mm2-*****  
__consumer_offsets  
exampleTopic1  
primary.exampleTopic1

7.Consommez les données du cluster cible :

<path-to-your-kafka-installation>/bin/kafka-console-consumer.sh --bootstrap-server <Target MSK cluster BootstrapServerString> --topic exampletopic1 --from-beginning
message 1  
message 2

Informations connexes

Migration de clusters à l'aide de MirrorMaker d'Apache Kafka

AWS OFFICIEL
AWS OFFICIELA mis à jour il y a un an