Passer au contenu

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 AWS.

Résolution

Configurer l'appairage VPC

Lorsque les clusters Amazon MSK se trouvent dans différents clouds privés virtuels Amazon (Amazon VPC), vous devez 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, consultez la section 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.

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

Remarque : Les plug-ins personnalisés MSK Connect acceptent les fichiers ou dossiers au format .jar ou .zip.

Procédez comme suit :

  1. Pour créer un dossier de test, puis compresser le dossier, exécutez les commandes suivantes :

    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/

    Remarque : Remplacez s3://mytestbucket/ par l'URL de votre compartiment Amazon S3.
    Apache Kafka et MSK Connect intégrant des bibliothèques MirrorMaker, il n’est pas nécessaire d'ajouter des fichiers .jar supplémentaires pour cette fonctionnalité.

  3. Dans le compte cible, utilisez le fichier .zip pour créer un plug-in personnalisé et nommez le fichier mm2-connect-plugin.
    Remarque : Lorsque vous utilisez MSK Connect, vous devez disposer d'un plug-in personnalisé lors de la création du connecteur.

Créer un connecteur MSK Connect dans le compte cible

Procédez comme suit :

  1. Ouvrez la console Amazon MSK.

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

  3. Choisissez Créer un connecteur.

  4. Choisissez Utiliser le plug-in personnalisé existant.

  5. Dans Plug-ins personnalisés, sélectionnez le plug-in personnalisé que vous avez créé, puis choisissez Suivant.

  6. Saisissez un nom pour le connecteur.
    (Facultatif) Saisissez une description.

  7. Dans la liste de clusters, choisissez le cluster cible.

  8. Ajoutez une configuration similaire à l'exemple suivant dans le champ de configuration du connecteur :

    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.cluster.security.protocol=PLAINTEXT  
    
    # Target cluster options  
    target.cluster.bootstrap.servers=  
    target.cluster.security.protocol=PLAINTEXT
  9. Définissez la capacité de votre connecteur.

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

  11. Sous Autorisations d'accès, choisissez le rôle Gestion des identités et des accès AWS (AWS IAM) qui fournit les autorisations requises pour MSK Connect. Puis, sélectionnez Suivant.

  12. Sur la page Sécurité, sous Chiffrement - en transit, sélectionnez Trafic en texte brut. Puis, sélectionnez Suivant.

  13. (Facultatif) Sur la page Journaux, définissez la livraison du journal. Puis, sélectionnez Suivant.

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

Remarque : Avec la configuration précédente, 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. MM2 achemine ensuite les messages vers la rubrique exampleTopic1.

Créer 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.

Procédez comme suit :

  1. Lancez une instance Amazon Elastic Compute Cloud (Amazon EC2), puis connectez-vous à l'instance.

  2. Pour installer Java sur l'ordinateur client, exécutez la commande suivante :

    sudo yum -y install java-11
  3. Pour télécharger Apache Kafka, exécutez la commande suivante :

    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 :

    kafka-installation-path/bin/kafka-topics.sh --create --bootstrap-server SourceMSKclusterBootstrapServerString --replication-factor 3 --partitions 1 --topic exampletopic1

    Remarque : Remplacez kafka-installation-path par le chemin où Kafka est installé sur votre système. Remplacez SourceMSKclusterBootstrapServerString par la chaîne de serveur Bootstrap de votre cluster Amazon MSK source.

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

    Kafka-installation-path/bin/kafka-console-producer.sh --broker-list SourceMSKclusterBootstrapServerString --topic exampletopic1

    Remarque : Remplacez kafka-installation-path par le chemin où Kafka est installé sur votre système. Remplacez SourceMSKclusterBootstrapServerString par la chaîne de serveur Bootstrap de votre cluster Amazon MSK source.
    Sortie attendue :

    >message 1
    >message 2
  6. Répertoriez les rubriques du cluster sur le compte cible :

    Kafka-installation-path/bin/kafka-topics.sh --bootstrap-server TargetMSKclusterBootstrapServerString --list

    Remarque : Remplacez kafka-installation-path par le chemin où Kafka est installé sur votre système. Remplacez TargetMSKclusterBootstrapServerString par la chaîne de serveur Bootstrap de votre cluster Amazon MSK cible.
    Exemple de sortie :

    __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 :

    Kafka-installation-path/bin/kafka-console-consumer.sh --bootstrap-server TargetMSKclusterBootstrapServerString --topic exampletopic1 --from-beginning

    Remarque : Remplacez kafka-installation-path par le chemin où Kafka est installé sur votre système. Remplacez TargetMSKclusterBootstrapServerString par la chaîne de serveur Bootstrap de votre cluster Amazon MSK cible.
    Sortie attendue :

    >message 1
    >message 2

Informations connexes

Migrer vers un cluster Amazon MSK

AWS OFFICIELA mis à jour il y a 8 mois