Salta al contenuto

Come posso trasferire dati tra cluster Amazon MSK in account diversi con MirrorMaker 2 in esecuzione su MSK Connect?

5 minuti di lettura
0

Desidero utilizzare MirrorMaker 2.0 (MM2) in esecuzione su MSK Connect per trasferire dati tra cluster Amazon Managed Streaming per Apache Kafka (Amazon MSK) in diversi account AWS.

Risoluzione

Configura il peering VPC

Quando i cluster Amazon MSK si trovano in Amazon Virtual Private Cloud (Amazon VPC) diversi, devi creare una connessione peering VPC .

I gruppi di sicurezza associati al cluster Amazon MSK di origine devono consentire tutto il traffico proveniente dai gruppi di sicurezza del cluster di destinazione. I gruppi di sicurezza del cluster di destinazione devono inoltre consentire tutto il traffico proveniente dai gruppi di sicurezza del cluster Amazon MSK di origine. Per ulteriori informazioni, consulta Aggiornamento dei gruppi di sicurezza per fare riferimento a gruppi di sicurezza peer.

Nota: per fare riferimento a un gruppo di sicurezza in un altro account, includi il numero di account nel campo Origine o Destinazione.

Crea un plugin con informazioni sul plugin MM2

Nota: i plugin personalizzati di MSK Connect accettano un file o una cartella in formato .jar o .zip.

Completa i seguenti passaggi:

  1. Per creare una cartella di prova e comprimerla, esegui questi comandi:

    mkdir mm2
    zip mm2.zip mm2
  2. Carica l'oggetto.zip nel bucket Amazon Simple Storage Service (Amazon S3) nell'account di destinazione:

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

    Nota: sostituisci s3://mytestbucket/ con l'URL del tuo bucket Amazon S3.
    Apache Kafka e MSK Connect dispongono di librerie MirrorMaker integrate, per cui non è necessario aggiungere altri file .jar per questa funzionalità.

  3. Nell'account di destinazione, utilizza il file .zip per creare un plugin personalizzato e assegna un nome al file mm2-connect-plugin.
    Nota: quando utilizzi MSK Connect, devi disporre di un plugin personalizzato al momento della creazione del connettore.

Crea un connettore per MSK Connect nell'account di destinazione

Completa i seguenti passaggi:

  1. Apri la console Amazon MSK.

  2. Nel pannello di navigazione, alla voce MSK Connect, scegli Connettori.

  3. Scegli Crea connettore.

  4. Scegli Utilizza il plugin personalizzato esistente.

  5. In Plugin personalizzati, seleziona il plugin personalizzato che hai creato, quindi scegli Avanti.

  6. Inserisci un nome per il connettore.
    (Facoltativo) Inserisci una descrizione.

  7. Nell'elenco dei cluster, scegli il cluster di destinazione.

  8. Aggiungi una configurazione simile all'esempio seguente nel campo di configurazione del connettore:

    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. Imposta la capacità del connettore.

  10. In Configurazione del worker, scegli Utilizza la configurazione predefinita di MSK.

  11. In Autorizzazioni di accesso, scegli il ruolo AWS Identity and Access Management (AWS IAM) che fornisce le autorizzazioni necessarie a MSK Connect. Quindi scegli Avanti.

  12. Nella pagina Sicurezza, alla voce Crittografia - in transito, scegli Traffico non crittografato. Quindi scegli Avanti.

  13. Facoltativamente, nella pagina Registri, imposta la consegna del log. Quindi scegli Avanti.

  14. In Rivedi e crea, scegli Crea connettore.

Nota: con la configurazione precedente, per replicare ogni topic dal cluster di origine, MM2 crea due topic nel cluster di destinazione. Ad esempio, se hai il topic exampleTopic1 nel cluster di origine, MM2 crea i topic primary.exampleTopic1 e exampleTopic1 nel cluster di destinazione. Quindi indirizza i messaggi al topic exampleTopic1.

Crea un'istanza client

Devi creare un'istanza client per creare topic e produrre o utilizzare dati dai topic.

Completa i seguenti passaggi:

  1. Avvia un'istanza Amazon Elastic Compute Cloud (Amazon EC2) e connettiti all'istanza.

  2. Esegui questo comando per installare Java sul computer client:

    sudo yum -y install java-11
  3. Esegui questo comando per scaricare 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. Crea il topic exampletopic1 nel cluster Amazon MSK nell'account di origine:

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

    Nota: sostituisci kafka-installation-path con il percorso in cui hai installato Kafka sul tuo sistema. Sostituisci SourceMSKclusterBootstrapServerString con la stringa del server di bootstrap del tuo cluster Amazon MSK di origine.

  5. Produci dati nel cluster nell'account di origine:

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

    Nota: sostituisci kafka-installation-path con il percorso in cui hai installato Kafka sul tuo sistema. Sostituisci SourceMSKclusterBootstrapServerString con la stringa del server di bootstrap del tuo cluster Amazon MSK di origine.
    Output atteso:

    >message 1
    >message 2
  6. Elenca i topic nel cluster nell'account di destinazione:

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

    Nota: sostituisci kafka-installation-path con il percorso in cui hai installato Kafka sul tuo sistema. Sostituisci TargetMSKclusterBootstrapServerString con la stringa del server di bootstrap del cluster Amazon MSK di destinazione.
    Esempio di output:

    __amazon_msk_canary  __amazon_msk_connect_configs_mm2-*****  
    __amazon_msk_connect_offsets_mm2-*****  
    __amazon_msk_connect_status_mm2-*****  
    __consumer_offsets  
    exampleTopic1  
    primary.exampleTopic1
  7. Consuma dati dal cluster di destinazione:

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

    Nota: sostituisci kafka-installation-path con il percorso in cui hai installato Kafka sul tuo sistema. Sostituisci TargetMSKclusterBootstrapServerString con la stringa del server di bootstrap del cluster Amazon MSK di destinazione.
    Output atteso:

    >message 1
    >message 2

Informazioni correlate

Esegui la migrazione dei carichi di lavoro Kafka in un cluster Amazon MSK