Amazon Managed Streaming per Apache Kafka - Developer Guide - Developer ...
←
→
Trascrizione del contenuto della pagina
Se il tuo browser non visualizza correttamente la pagina, ti preghiamo di leggere il contenuto della pagina quaggiù
Amazon Managed Streaming per Apache Kafka Developer Guide Amazon Managed Streaming per Apache Kafka: Developer Guide Copyright © 2020 Amazon Web Services, Inc. and/or its affiliates. All rights reserved. Amazon's trademarks and trade dress may not be used in connection with any product or service that is not Amazon's, in any manner that is likely to cause confusion among customers, or in any manner that disparages or discredits Amazon. All other trademarks not owned by Amazon are the property of their respective owners, who may or may not be affiliated with, connected to, or sponsored by Amazon.
Amazon Managed Streaming per Apache Kafka Developer Guide Table of Contents Che cos'è Amazon MSK? .................................................................................................................... 1 Configurazione ................................................................................................................................... 3 Registrati ad AWS ...................................................................................................................... 3 Scarica librerie e strumenti ........................................................................................................... 3 Nozioni di base .................................................................................................................................. 4 Fase 1. Creazione di un VPC ....................................................................................................... 4 Fase 2. Abilitazione di elevata disponibilità e tolleranza ai guasti ........................................................ 7 Fase 3. Creazione di un cluster .................................................................................................... 8 Fase 4. Creazione di un computer client ...................................................................................... 10 Fase 5. Creazione di un argomento ............................................................................................. 11 Fase 6. Produzione e consumo di dati ......................................................................................... 12 Fase 7. Visualizzazione dei parametri .......................................................................................... 13 Fase 8: Eliminazione del cluster .................................................................................................. 14 Come funziona ................................................................................................................................. 15 Creazione di un cluster .............................................................................................................. 15 Creazione di un cluster mediante la Console di gestione AWS ................................................. 15 Creazione di un cluster mediante l'AWS CLI ......................................................................... 16 Creazione di un cluster con una configurazione MSK personalizzata mediante AWS CLI ............... 17 Creazione di un cluster mediante l'API ................................................................................. 18 Eliminazione di un cluster .......................................................................................................... 18 Eliminazione di un cluster mediante la Console di gestione AWS .............................................. 18 Eliminazione di un cluster mediante la AWS CLI .................................................................... 18 Eliminazione di un cluster mediante l'API .............................................................................. 18 Ottenere la stringa di connessione Apache ZooKeeper ................................................................... 19 Ottenere la stringa di connessione Apache ZooKeeper mediante la Console di gestione AWS ........ 19 Ottenere la stringa di connessione Apache ZooKeeper mediante la AWS CLI ............................. 19 Ottenere la stringa di connessione Apache ZooKeeper mediante l'API ....................................... 20 Ottenere i broker bootstrap ......................................................................................................... 20 Ottenere i broker Bootstrap mediante la Console di gestione AWS ............................................ 20 Ottenere i broker Bootstrap mediante la AWS CLI .................................................................. 20 Ottenere i broker Bootstrap mediante l'API ........................................................................... 21 Elenco dei cluster ..................................................................................................................... 21 Elenco dei cluster mediante la Console di gestione AWS ........................................................ 21 Elenco dei cluster mediante la AWS CLI .............................................................................. 21 Elenco dei cluster mediante l'API ........................................................................................ 21 Aumento delle dimensioni dello storage broker .............................................................................. 21 Aumento delle dimensioni dello storage broker mediante la Console di gestione AWS .................. 21 Aumento delle dimensioni dello storage broker mediante la AWS CLI ........................................ 22 Aumento delle dimensioni dello storage broker mediante l'API ................................................. 22 Aggiornamento della configurazione di un cluster ........................................................................... 22 Aggiornamento della configurazione di un cluster mediante la AWS CLI ..................................... 22 Aggiornamento della configurazione di un cluster mediante l'API .............................................. 24 Espansione di un cluster ............................................................................................................ 24 Espansione di un cluster mediante la Console di gestione AWS ............................................... 24 Espansione di un cluster mediante la AWS CLI ..................................................................... 24 Espansione di un cluster mediante l'API ............................................................................... 26 Monitoraggio di un cluster .......................................................................................................... 26 Livelli di monitoraggio Amazon MSK per parametri CloudWatch ............................................... 26 Parametri Amazon MSK per il monitoraggio con CloudWatch ................................................... 26 Visualizzazione di parametri Amazon MSK mediante CloudWatch ............................................ 32 Controllo del ritardo del consumatore con Burrow .................................................................. 32 Monitoraggio aperto con Prometheus ................................................................................... 34 Tagging di un cluster ................................................................................................................. 37 Nozioni di base sui tag ...................................................................................................... 37 iii
Amazon Managed Streaming per Apache Kafka Developer Guide Monitoraggio dei costi mediante il tagging ............................................................................ 38 Limitazioni applicate ai tag ................................................................................................. 38 Tagging delle risorse mediante l'API di Amazon MSK ............................................................. 38 Configurazione ................................................................................................................................. 39 Configurazioni personalizzate ...................................................................................................... 39 Configurazione dinamica .................................................................................................... 43 Configurazione a livello dell'argomento ................................................................................. 44 Configurazione predefinita .......................................................................................................... 44 Operazioni di configurazione ....................................................................................................... 46 Sicurezza ......................................................................................................................................... 49 Protezione dei dati .................................................................................................................... 49 Crittografia ....................................................................................................................... 50 Nozioni di base sulla crittografia .......................................................................................... 51 Gestione delle identità e degli accessi ......................................................................................... 53 Funzionamento di con IAM ................................................................................................. 53 Esempi di policy basate su identità ...................................................................................... 56 Ruoli collegati al servizio .................................................................................................... 58 Risoluzione dei problemi .................................................................................................... 59 Autenticazione client .................................................................................................................. 60 Controllo dell'accesso ad Apache ZooKeeper ................................................................................ 63 Registrazione ........................................................................................................................... 64 Log di broker ................................................................................................................... 64 Registrazione di chiamate API ............................................................................................ 65 Convalida della conformità ......................................................................................................... 67 Resilienza ................................................................................................................................ 68 Sicurezza dell'infrastruttura ......................................................................................................... 68 Accesso al cluster ............................................................................................................................. 69 Peering Amazon VPC ................................................................................................................ 69 AWS Direct Connect ................................................................................................................. 69 AWS Transit Gateway ............................................................................................................... 69 Connessioni VPN ...................................................................................................................... 69 Proxy REST ............................................................................................................................. 69 Connettività multi-VPC per regioni multiple .................................................................................... 69 EC2-Classic ............................................................................................................................. 70 Informazioni porta ..................................................................................................................... 70 Migrazione ....................................................................................................................................... 71 Migrazione del cluster Apache Kafka in Amazon MSK .................................................................... 71 Migrazione da un Cluster Amazon MSK. all'altro ............................................................................ 72 Best practice di MirrorMaker 1.0 ................................................................................................. 72 Vantaggi di MirrorMaker 2.* ........................................................................................................ 73 Limiti ............................................................................................................................................... 74 Versioni di Apache Kafka ................................................................................................................... 75 Apache Kafka Versioni 2.4.1 ...................................................................................................... 75 Apache Kafka versione 2.3.1 ...................................................................................................... 75 Apache Kafka versione 2.2.1 ...................................................................................................... 75 Apache Kafka versione 1.1.1 ...................................................................................................... 75 Risoluzione dei problemi .................................................................................................................... 76 Nessun gruppo di sicurezza predefinito ........................................................................................ 76 I cluster sono bloccati nello stato CREATING ................................................................................ 76 Lo stato del cluster passa da CREATING a FAILED ....................................................................... 76 Lo stato del cluster è ACTIVE ma i produttori non possono inviare dati o i consumatori non possono ricevere dati ............................................................................................................................. 76 AWS CLI non riconosce Amazon MSK ......................................................................................... 77 Le partizioni vengono messe offline o le repliche non sono sincronizzate ........................................... 77 Lo spazio su disco è insufficiente ................................................................................................ 77 La memoria è insufficiente ......................................................................................................... 77 Produttore riceve NotLeaderForPartitionException .......................................................................... 77 iv
Amazon Managed Streaming per Apache Kafka Developer Guide Partizioni replicate (URP) superiori a zero .................................................................................... 77 Buone prassi .................................................................................................................................... 79 Dimensionamento corretto del cluster .......................................................................................... 79 Monitoraggio dello spazio su disco .............................................................................................. 79 Regolazione dei parametri di conservazione dei dati ...................................................................... 79 Non aggiungere broker non MSK ................................................................................................ 80 Abilitazione della crittografia dei dati in transito .............................................................................. 80 Riassegnazione delle partizioni ................................................................................................... 80 Cronologia dei documenti ................................................................................................................... 81 AWS Glossary .................................................................................................................................. 82 v
Amazon Managed Streaming per Apache Kafka Developer Guide Che cos'è Amazon MSK? Amazon Managed Streaming per Apache Kafka (Amazon MSK) è un servizio completamente gestito che consente di compilare ed eseguire applicazioni che utilizzano Apache Kafka per elaborare i dati in streaming. Amazon MSK fornisce le operazioni del piano di controllo, ad esempio quelle per la creazione, l'aggiornamento e l'eliminazione di cluster. Consente di utilizzare operazioni del piano dati Apache Kafka, come quelle per la produzione e il consumo di dati. Esegue versioni open-source di Apache Kafka. Ciò significa che le applicazioni, gli strumenti e i plugin esistenti dei partner e della comunità Apache Kafka sono supportati senza richiedere modifiche al codice dell'applicazione. Puoi utilizzare Amazon MSK per creare cluster che utilizzano Apache Kafka versioni 1.1.1, 2.2.1, 2.3.1 o 2.4.1. Il diagramma seguente fornisce una panoramica sul funzionamento di Amazon MSK. Il diagramma illustra l'interazione tra i componenti seguenti: • Nodi broker: durante la creazione di un Cluster Amazon MSK., specificare il numero di nodi broker che devono essere creati da Amazon MSK in ogni zona di disponibilità. Nel cluster di esempio mostrato in questo diagramma, è presente un broker per zona di disponibilità. Ogni zona di disponibilità dispone di una propria sottorete VPC. • Nodi ZooKeeper: Amazon MSK crea inoltre automaticamente i nodi Apache ZooKeeper. Apache ZooKeeper è un server open-source che consente un coordinamento distribuito altamente affidabile. • Produttori, consumatori e creatori di argomenti: Amazon MSK consente di utilizzare le operazioni del piano dati di Apache Kafka per creare argomenti e per produrre e consumare dati. • AWS CLI: puoi utilizzare AWS Command Line Interface (AWS CLI) o le API nell'SDK per eseguire operazioni del piano di controllo. Ad esempio, puoi utilizzare AWS CLI o l'SDK per creare o eliminare un Cluster Amazon MSK., elencare tutti i cluster in un account o visualizzare le proprietà di un cluster. 1
Amazon Managed Streaming per Apache Kafka Developer Guide Amazon MSK riconosce gli scenari di errore più comuni e avvia automaticamente il ripristino per cluster per permettere alle applicazioni produttore e consumatore di continuare le operazioni di scrittura e lettura con impatto minimo. Quando Amazon MSK rileva un errore del broker, attenua l'errore o sostituisce il broker non integro o non raggiungile con uno nuovo. Inoltre, ove possibile, riutilizza lo storage del broker precedente per ridurre i dati che devono essere replicati da Apache Kafka. L'impatto sulla disponibilità è limitato al tempo richiesto da Amazon MSK per completare il rilevamento e il ripristino. Dopo un ripristino, le applicazioni produttore e consumatore possono continuare a comunicare con gli stessi indirizzi IP del broker utilizzati prima dell'errore. Per iniziare a usare Amazon MSK, consulta Nozioni di base (p. 4). Per visualizzare le operazioni del piano di controllo disponibili tramite Amazon MSK, consulta la documentazione di riferimento alle API di Amazon MSK. Dopo aver creato un cluster, puoi utilizzare Amazon CloudWatch per monitorarlo. Per ulteriori informazioni sul monitoraggio del cluster mediante i parametri, consulta the section called “Monitoraggio di un cluster” (p. 26). 2
Amazon Managed Streaming per Apache Kafka Developer Guide Registrati ad AWS Configurazione di Amazon MSK Prima di utilizzare Amazon MSK per la prima volta, completa le seguenti attività. Attività • Registrati ad AWS (p. 3) • Scarica librerie e strumenti (p. 3) Registrati ad AWS Quando effettui la registrazione ad Amazon Web Services (AWS), l'account AWS viene automaticamente registrato per tutti i servizi di AWS, compreso Amazon MSK. Ti vengono addebitati solo i servizi che utilizzi. Se disponi già di un account AWS, passa all'operazione successiva. Se non si dispone di un account AWS, utilizzare la seguente procedura per crearne uno. Registrazione per creare un account AWS 1. Aprire la pagina https://aws.amazon.com/, quindi scegliere Create an AWS Account (Crea un account AWS). Note Se ci si è già iscritti alla Console di gestione AWS tramite credenziali Utente root dell'account AWS, scegliere Sign in to a different account (Accedi a un account diverso). Se ci si è già iscritti alla console tramite credenziali IAM, scegliere Sign-in using root account credentials (Accedi con le credenziali dell'account root). Selezionare quindi Create a new AWS account (Crea un nuovo account AWS). 2. Seguire le istruzioni online. Come parte della procedura di registrazione si riceverà una telefonata, durante la quale si dovrà inserire un codice di verifica usando la tastiera del telefono. Scarica librerie e strumenti Le seguenti librerie e i seguenti strumenti semplificano l'utilizzo di Amazon MSK: • La AWS Command Line Interface (AWS CLI) supporta Amazon MSK. La AWS CLI ti consente di controllare più servizi AWS dalla riga di comando e automatizzarli tramite script. Aggiornare AWS CLI alla versione più recente per assicurarsi che disponga del supporto per Amazon MSK. Per istruzioni dettagliate su come aggiornare AWS CLI, consultare Installazione di AWS CLI. • Documentazione di riferimento dell'API Amazon Managed Streaming for Kafka documenta le operazioni API supportate da Amazon MSK. • Gli SDK AWS per Go, Java, JavaScript, .NET, Node.js, PHP, Python e Ruby includono supporto ed esempi Amazon MSK. 3
Amazon Managed Streaming per Apache Kafka Developer Guide Fase 1. Creazione di un VPC Nozioni di base sull'uso di Amazon MSK In questa sezione viene illustrato un esempio di come creare Cluster MSK, produrre e consumare dati, nonché monitorare l'integrità del cluster utilizzando i parametri. Questo esempio non rappresenta tutte le opzioni che è possibile scegliere quando si crea un Cluster MSK. In diverse parti di questo tutorial verranno scelte opzioni predefinite per semplicità. Ciò non significa che siano le uniche opzioni che funzionano per la configurazione di Cluster MSK o delle istanze client. Questo è un tutorial dettagliato che utilizza la Console di gestione AWS e AWS CLI. Se preferisci seguire un approccio diverso, puoi eseguire i tipi di operazioni AWS descritti in questo tutorial utilizzando solo la Console di gestione AWS, solo AWS CLI, solo l'API di AWS o una combinazione dei tre ambienti. In alternativa, puoi utilizzare AWS CloudFormation per configurare un Cluster MSK. Per alcuni modelli AWS CloudFormation di esempio, consulta la sezione relativa a esempi di Amazon MSK CloudFormation. Prerequisiti Prima di iniziare, assicurati di disporre di un account AWS e che AWS Command Line Interface (AWS CLI) sia installato nel computer. Per ulteriori informazioni su questi prerequisiti, consulta Configurazione (p. 3). Important Verifica di disporre della versione più recente di AWS CLI. Le versioni precedenti potrebbero non includere tutte le funzionalità di Amazon MSK. Argomenti • Fase 1. Creazione di un VPC per il cluster MSK (p. 4) • Fase 2. Abilitazione di elevata disponibilità e tolleranza ai guasti (p. 7) • Fase 3. Creazione di un Cluster Amazon MSK. (p. 8) • Fase 4. Creazione di un computer client (p. 10) • Fase 5. Creazione di un argomento (p. 11) • Fase 6. Produzione e consumo di dati (p. 12) • Fase 7. Utilizzo di Amazon CloudWatch per visualizzare i parametri Amazon MSK (p. 13) • Fase 8. Eliminazione del Cluster Amazon MSK. (p. 14) Fase 1. Creazione di un VPC per il cluster MSK Nella prima fase di Nozioni di base sull'uso di Amazon MSK (p. 4), si utilizza la Amazon VPC Console per creare un Amazon Virtual Private Cloud (Amazon VPC). In una fase successiva, viene creato un Cluster MSK in questo VPC. Per creare un VPC 1. Accedi alla Console di gestione AWS e apri la console Amazon VPC all'indirizzo https:// console.aws.amazon.com/vpc/. 2. Scegli Launch VPC Wizard (Avvia procedura guidata VPC). 4
Amazon Managed Streaming per Apache Kafka Developer Guide Fase 1. Creazione di un VPC 3. Scegli Select (Seleziona) per accettare la configurazione Amazon VPC predefinita denominata VPC with a Single Public Subnet (VPC con sottorete singola pubblica). 5
Amazon Managed Streaming per Apache Kafka Developer Guide Fase 1. Creazione di un VPC 4. Per VPC name (Nome VPC), immetti AWSKafkaTutorialVPC. Se si copia questo nome e lo si incolla nella console, eliminare qualsiasi spazio bianco che entra nel campo di testo prima del nome. 5. Per Availability Zone (Zona di disponibilità), scegli us-east-1a. 6. Per Subnet name (Nome sottorete), immetti AWSKafkaTutorialSubnet-1. Se si copia questo nome e lo si incolla nella console, eliminare qualsiasi spazio bianco che entra nel campo di testo prima del nome. 7. Scegli Create VPC (Crea VPC), quindi seleziona OK. 8. Nell'elenco di VPC, individua AWSKafkaTutorialVPC e copia il relativo ID dalla colonna VPC ID (ID VPC) . Salva questo ID in una posizione qualsiasi perché è necessario in alcune delle fasi seguenti. Fase successiva Fase 2. Abilitazione di elevata disponibilità e tolleranza ai guasti (p. 7) 6
Amazon Managed Streaming per Apache Kafka Developer Guide Fase 2. Abilitazione di elevata disponibilità e tolleranza ai guasti Fase 2. Abilitazione di elevata disponibilità e tolleranza ai guasti In questa fase di Nozioni di base sull'uso di Amazon MSK (p. 4), viene abilitata elevata disponibilità e tolleranza ai guasti. A tale scopo, aggiungi due sottoreti al VPC creato con una sottorete nella fase precedente. Dopo aver completato questa fase, saranno disponibili tre sottoreti in tre diverse zone di disponibilità. Per aggiungere sottoreti al VPC 1. Apri la console Amazon VPC all'indirizzo https://console.aws.amazon.com/vpc/. 2. Nel riquadro di navigazione scegliere Subnets (Sottoreti). 3. Nell'elenco di sottoreti, individuare AWSKafkaTutorialSubnet-1, quindi individuare la colonna denominata Route table (Tabella di routing). Copiare il valore associato a AWSKafkaTutorialSubnet-1 in tale colonna e salvarlo per utilizzarlo in un secondo momento. 4. Scegliere Create subnet (Crea sottorete). 5. Per Name tag (Assegna none a tag), immettere AWSKafkaTutorialSubnet-2. Se si copia questo nome e lo si incolla nella console, eliminare qualsiasi spazio bianco che entra nel campo di testo prima del nome. 6. Per VPC, scegliere AWSKafkaTutorialVPC. 7. Per Availability Zone (Zona di disponibilità), scegliere us-west-1b. 8. Per IPv4 CIDR block (Blocco IPv4 CIDR), immettere 10.0.1.0/24. 9. Selezionare Create (Crea), quindi Close (Chiudi). 10. Scegliere AWSKafkaTutorialSubnet-2 dall'elenco di sottoreti selezionando la casella di controllo accanto ad essa. Assicurarsi che nessun’altra casella di controllo nell'elenco sia selezionata. 11. Nella vista sottorete nella parte inferiore della pagina, scegliere la scheda Route Table (Tabella di routing), quindi selezionare Edit route table association (Modifica associazione tabella di routing). 7
Amazon Managed Streaming per Apache Kafka Developer Guide Fase 3. Creazione di un cluster 12. Nell'elenco Route Table ID (ID tabella di routing), scegliere la tabella di routing il cui valore è stato copiato in precedenza in questa procedura. 13. Selezionare Save (Salva), quindi scegliere Close (Chiudi). 14. Ripetere questa procedura per creare un'altra sottorete con il nome AWSKafkaTutorialSubnet-3, nella zona di disponibilità us-east-1c e con IPv4 CIDR block (Blocco CIDR IPv4) impostato su 10.0.2.0/24. Se si copia questo nome della sottorete e lo si incolla nella console, eliminare eventuali spazi bianchi che entrano nel campo di testo prima del nome. 15. Modificare la tabella di routing per AWSKafkaTutorialSubnet-3 per assicurarsi che la tabella di routing sia identica a quella utilizzata per AWSKafkaTutorialSubnet-1 e AWSKafkaTutorialSubnet-2. Fase successiva Fase 3. Creazione di un Cluster Amazon MSK. (p. 8) Fase 3. Creazione di un Cluster Amazon MSK. In questa fase di Nozioni di base sull'uso di Amazon MSK (p. 4), viene creato un Cluster Amazon MSK. nel VPC. Per creare un Cluster Amazon MSK. mediante AWS CLI 1. Apri la console Amazon VPC all'indirizzo https://console.aws.amazon.com/vpc/. 2. Nel riquadro di navigazione, scegliere Subnets (Sottoreti), quindi copiare gli ID di sottorete delle tre sottoreti create in precedenza. Salvare questi ID perché saranno necessari più avanti in questa procedura. 8
Amazon Managed Streaming per Apache Kafka Developer Guide Fase 3. Creazione di un cluster 3. Fai clic su Security Groups (Gruppi di sicurezza) nel riquadro di navigazione. Quindi, nella tabella dei gruppi di sicurezza, individuare il gruppo la cui colonna VPC ID (ID VPC) contiene l'ID salvato per AWSKafkaTutorialVPC. Copiare l'ID di questo gruppo di sicurezza e salvarlo perché sarà necessario in seguito in questa procedura. 4. Copiare il JSON seguente e salvarlo in un file. Assegnare un nome al file clusterinfo.json. { "BrokerNodeGroupInfo": { "BrokerAZDistribution": "DEFAULT", "InstanceType": "kafka.m5.large", "ClientSubnets": [ "AWSKafkaTutorialSubnet-1 Subnet ID", "AWSKafkaTutorialSubnet-2 Subnet ID", "AWSKafkaTutorialSubnet-3 Subnet ID" ], "SecurityGroups": [ "AWSKafkaTutorialVPC Security Group ID" ] }, "ClusterName": "AWSKafkaTutorialCluster", "EncryptionInfo": { "EncryptionAtRest": { "DataVolumeKMSKeyId": "your-CMK" }, "EncryptionInTransit": { "InCluster": true, "ClientBroker": "TLS" } }, "EnhancedMonitoring": "PER_TOPIC_PER_BROKER", "KafkaVersion": "2.2.1", "NumberOfBrokerNodes": 3 } 5. Nel file clusterinfo.json, sostituire i segnaposto per i tre ID delle sottoreti e l'ID del gruppo di sicurezza con i valori salvati nelle fasi precedenti. 6. In clusterinfo.json, sostituire your-CMK con una CMK gestita dal cliente. È anche possibile rimuovere EncryptionAtRest e lasciare che Amazon MSK crei un CMK e lo utilizzi per conto dell'utente. Se si imposta InCluster su true, allora Amazon MSK deve crittografare i dati mentre si spostano tra i broker all'interno del cluster. Per ClientBroker puoi scegliere una delle seguenti impostazioni: TLS, TLS_PLAINTEXT o PLAINTEXT. In questo esercizio, utilizziamo TLS per indicare che vogliamo che i dati vengano crittografati mentre si spostano tra client e broker. Per ulteriori informazioni sulle impostazioni di crittografia, consulta the section called “Crittografia” (p. 50). 7. Aggiornare AWS CLI alla versione più recente per assicurarsi che disponga del supporto per Amazon MSK. Per istruzioni dettagliate su come aggiornare AWS CLI, consultare Installazione di AWS CLI. 8. Eseguire il seguente comando AWS CLI nella directory di salvataggio del file clusterinfo.json. aws kafka create-cluster --cli-input-json file://clusterinfo.json L'output del comando è simile al JSON seguente: { "ClusterArn": "...", "ClusterName": "AWSKafkaTutorialCluster", "State": "CREATING" } 9. Salvare il valore della chiave ClusterArn perché sarà necessario in seguito. 9
Amazon Managed Streaming per Apache Kafka Developer Guide Fase 4. Creazione di un computer client Important Assicurarsi di aver salvato ClusterArn prima di procedere. Fase successiva Fase 4. Creazione di un computer client (p. 10) Fase 4. Creazione di un computer client In questa fase di Nozioni di base sull'uso di Amazon MSK (p. 4), viene creato un computer client. Utilizza questo computer client per creare un argomento che produce e consuma dati. Per semplicità, questa macchina client verrà inserita nello stesso VPC del cluster Amazon MSK. Tuttavia, una macchina client non deve trovarsi nello stesso VPC del cluster. Per creare un computer client 1. Apri la console Amazon EC2 all'indirizzo https://console.aws.amazon.com/ec2/. 2. Scegliere Launch Instance (Avvia istanza). 3. Scegliere Select (Seleziona) per creare un'istanza di Amazon Linux 2 AMI (HVM), SSD Volume Type. 4. Scegliere il tipo di istanza t2.xlarge selezionando la casella di controllo accanto ad esso. 5. Scegliere Next: Configure Instance Details (Successivo: Configura i dettagli dell'istanza). 6. Nell'elenco Network (Rete), scegliere AWSKafkaTutorialVPC. 7. Nell'elenco Auto-assign Public IP (Assegna automaticamente IP pubblico), scegliere Enable (Abilita). 8. Nel menu nella parte superiore, scegliere 5. Add Tags (Aggiungi tag). 9. Scegliere Add Tag (Aggiungi tag). 10. Immettere Name per Key (Chiave) e AWSKafkaTutorialClient per Value (Valore). 11. Scegli Review and Launch (Analizza e lancia), quindi scegli Launch (Lancia). 12. Scegliere Create a new key pair (Crea una nuova coppia di chiavi), immettere MSKKeyPair per Key pair name (Nome della coppia chiavi), quindi selezionare Download Key Pair (Scarica coppia chiavi). In alternativa, è possibile utilizzare una coppia di chiavi esistente, se preferibile. 13. Leggere la conferma, selezionare la casella di controllo accanto ad essa e scegliere Launch Instances (Avvia istanze). 14. Scegliere View Instances (Vedi istanze). Quindi, nella colonna Security Groups (Gruppi di sicurezza), scegliere il gruppo di sicurezza associato all'istanza AWSKafkaTutorialClient . 15. Copiare il valore di Group ID (ID gruppo) (e non il nome del gruppo) associato al gruppo di sicurezza e salvarlo per l'utilizzo futuro. 16. Apri la console Amazon VPC all'indirizzo https://console.aws.amazon.com/vpc/. 17. Fai clic su Security Groups (Gruppi di sicurezza) nel riquadro di navigazione. Nella colonna VPC ID (ID VPC) dei gruppi di sicurezza, individuare la riga che contiene l'ID salvato per AWSKafkaTutorialVPC. La colonna Description (Descrizione) contiene il valore default VPC security group (gruppo di sicurezza VPC predefinito). Scegliere questa riga selezionando la casella di controllo nella prima colonna. 18. Nella scheda Inbound Rules (Regole in entrata), scegliere Edit rules (Modifica regole). 19. Selezionare Add Rule (Aggiungi regola). 20. Nella nuova regola, scegliere All traffic (Tutto il traffico) nella colonna Type (Tipo) . Nel secondo campo della colonna Source (Origine), immettere l'ID del gruppo di sicurezza del computer client. Questo è l'ID gruppo salvato in precedenza. 21. Scegliere Save rules (Salva regole). 22. Ripetere queste fasi per aggiungere una regola in entrata nel gruppo di sicurezza corrispondente al computer client, per consentirgli di ricevere traffico dal gruppo di sicurezza AWSKafkaTutorialVPC . Il computer client può ora comunicare avanti e indietro con il Cluster MSK. 10
Amazon Managed Streaming per Apache Kafka Developer Guide Fase 5. Creazione di un argomento Fase successiva Fase 5. Creazione di un argomento (p. 11) Fase 5. Creazione di un argomento In questa fase di Nozioni di base sull'uso di Amazon MSK (p. 4), vengono installate librerie e strumenti client di Apache Kafka sul computer client e quindi creato un argomento. Per creare un argomento sul computer client 1. Apri la console Amazon EC2 all'indirizzo https://console.aws.amazon.com/ec2/. 2. Nel riquadro di navigazione, scegliere Instances (Istanze), quindi selezionare AWSKafkaTutorialClient selezionando la casella di controllo accanto ad esso. 3. Scegliere Actions (Operazioni), quindi selezionare Connect (Connetti). Seguire le istruzioni per connettersi al computer client AWSKafkaTutorialClient. 4. Installare Java sul computer client eseguendo il seguente comando: sudo yum install java-1.8.0 5. Eseguire il seguente comando per scaricare Apache Kafka. wget https://archive.apache.org/dist/kafka/2.2.1/kafka_2.12-2.2.1.tgz Note Se desideri utilizzare un sito mirror diverso da quello utilizzato in questo comando, puoi sceglierne uno diverso sul sito Web di Apache . 6. Eseguire il comando seguente nella directory in cui è stato scaricato il file TAR nella fase precedente. tar -xzf kafka_2.12-2.2.1.tgz 7. Passare alla directory kafka_2.12-2.2.1 . 8. La creazione del cluster può richiedere alcuni minuti. Per scoprire se il cluster creato è pronto, eseguire il comando seguente, sostituendo ClusterArn con l'Amazon Resource Name (ARN) ottenuto alla fine di the section called “Fase 3. Creazione di un cluster” (p. 8). aws kafka describe-cluster --region us-east-1 --cluster-arn "ClusterArn" L'esecuzione di questo comando restituisce un risultato simile al JSON seguente: { "ClusterInfo": { "BrokerNodeGroupInfo": { "BrokerAZDistribution": "DEFAULT", "ClientSubnets": [ "subnet-0d44a1567c2ce409a", "subnet-051201cac65561565", "subnet-08b4eceb2bd3bd8c2" ], "InstanceType": "kafka.m5.large", "SecurityGroups": [ "sg-041e78b0a8ba7f834" ], "StorageInfo": { 11
Amazon Managed Streaming per Apache Kafka Developer Guide Fase 6. Produzione e consumo di dati "EbsStorageInfo": { "VolumeSize": 1000 } } }, "ClusterArn": "...", "ClusterName": "AWSKafkaTutorialCluster", "CreationTime": "2018-11-06T01:36:57.451Z", "CurrentBrokerSoftwareInfo": { "KafkaVersion": "2.2.1" }, "CurrentVersion": "K3UN6WX5RRO2AG", "EncryptionInfo": { "EncryptionAtRest": { "DataVolumeKMSKeyId": "arn:aws:kms:us-east-1:012345678901:key/ a7de6539-7d2e-4e71-a279-aaaa5555878" } }, "EnhancedMonitoring": "DEFAULT", "NumberOfBrokerNodes": 3, "State": "CREATING" } } Se l'output del comando mostra che lo stato del cluster è ancora CREATING, attendere alcuni minuti, quindi eseguire nuovamente il comando. Continuare a eseguire questo comando a distanza di pochi minuti fino a quando lo stato diventa ACTIVE. Quando lo stato è ACTIVE, l'output di questo comando describe-cluster include una chiave aggiuntiva denominata ZookeeperConnectString. Copiare l'intero valore associato a questa chiave perché è necessario per creare un argomento Apache Kafka nel seguente comando. 9. Eseguire il comando seguente, sostituendo ZookeeperConnectString con il valore salvato dopo aver eseguito il comando describe-cluster. bin/kafka-topics.sh --create --zookeeper ZookeeperConnectString --replication-factor 3 --partitions 1 --topic AWSKafkaTutorialTopic Se il comando va a buon fine, viene visualizzato il seguente messaggio: Created topic AWSKafkaTutorialTopic. Fase successiva Fase 6. Produzione e consumo di dati (p. 12) Fase 6. Produzione e consumo di dati In questa fase di Nozioni di base sull'uso di Amazon MSK (p. 4), vengono prodotti e consumati dati. Per produrre e consumare messaggi 1. In questo esempio, utilizziamo il truststore JVM per parlare con il Cluster MSK. A tale scopo, creare innanzitutto una cartella denominata /tmp sul computer client. Quindi, passare alla cartella bin dell'installazione di Apache Kafka ed eseguire il seguente comando, sostituendo JDKFolder con il nome della cartella JDK. Ad esempio, il nome della cartella JDK sull'istanza potrebbe essere java-1.8.0-openjdk-1.8.0.201.b09-0.amzn2.x86_64. cp /usr/lib/jvm/JDKFolder/jre/lib/security/cacerts /tmp/kafka.client.truststore.jks 12
Amazon Managed Streaming per Apache Kafka Developer Guide Fase 7. Visualizzazione dei parametri 2. Sempre nella cartella bin dell'installazione di Apache Kafka sul computer client, creare un file di testo denominato client.properties con il seguente contenuto. security.protocol=SSL ssl.truststore.location=/tmp/kafka.client.truststore.jks 3. Eseguire il comando seguente, sostituendo ClusterArn con l'Amazon Resource Name (ARN) ottenuto alla fine di the section called “Fase 3. Creazione di un cluster” (p. 8). aws kafka get-bootstrap-brokers --region us-east-1 --cluster-arn ClusterArn Dal risultato JSON del comando, salvare il valore associato alla stringa denominata "BootstrapBrokerString" perché è necessario nei comandi successivi. 4. Eseguire il seguente comando, sostituendo BootstrapBrokerString con il valore ottenuto quando è stato eseguito il comando precedente. kafka-console-producer.sh --broker-list BootstrapBrokerString --producer.config client.properties --topic AWSKafkaTutorialTopic 5. Immettere qualsiasi messaggio desiderato e premere Enter (Invio). Ripetere questa fase due o tre volte. Ogni volta che si immette una riga e si preme Enter (Invio), tale riga viene inviata al cluster Apache Kafka come un messaggio separato. 6. Mantenere aperta la connessione al computer client, quindi aprire una seconda connessione separata al computer in una nuova finestra. 7. Nel comando seguente, sostituire BootstrapBrokerString con il valore salvato in precedenza. Quindi, passare alla cartella bin ed eseguire il comando utilizzando la seconda connessione al computer client. kafka-console-consumer.sh --bootstrap-server BootstrapBrokerString --consumer.config client.properties --topic AWSKafkaTutorialTopic --from-beginning Si iniziano a vedere i messaggi immessi in precedenza quando è stato utilizzato il comando produttore della console. Questi messaggi sono crittografati TLS in transito. 8. Immettere altri messaggi nella finestra del produttore e guardali apparire nella finestra del consumatore. Fase successiva Fase 7. Utilizzo di Amazon CloudWatch per visualizzare i parametri Amazon MSK (p. 13) Fase 7. Utilizzo di Amazon CloudWatch per visualizzare i parametri Amazon MSK In questa fase di Nozioni di base sull'uso di Amazon MSK (p. 4), vengono esaminati i parametri Amazon MSK in Amazon CloudWatch. Per visualizzare i parametri Amazon MSK in CloudWatch 1. Aprire la console CloudWatch all'indirizzo https://console.aws.amazon.com/cloudwatch/. 2. Nel riquadro di navigazione, selezionare Metrics (Parametri). 3. Scegliere la scheda All metrics (Tutti i parametri), quindi selezionare AWS/Kafka. 13
Amazon Managed Streaming per Apache Kafka Developer Guide Fase 8: Eliminazione del cluster 4. Per visualizzare i parametri a livello di broker, scegliere Broker ID, Cluster Name (ID broker, nome cluster). Per i parametri a livello di cluster, scegliere Cluster Name (Nome cluster). 5. (Facoltativo) Nel riquadro del grafico, seleziona una statistica e un periodo di tempo, quindi crea un allarme CloudWatch tramite queste impostazioni. Fase successiva Fase 8. Eliminazione del Cluster Amazon MSK. (p. 14) Fase 8. Eliminazione del Cluster Amazon MSK. Nella fase finale di Nozioni di base sull'uso di Amazon MSK (p. 4), viene eliminato il Cluster MSK creato in Fase 3. Creazione di un Cluster Amazon MSK. (p. 8). Per eliminare il Cluster Amazon MSK. utilizzando AWS CLI 1. Eseguire il seguente comando sul computer in cui è installato AWS CLI. aws kafka list-clusters --region us-east-1 2. Nell'output del comando list-clusters, cercare l'Amazon Resource Name (ARN) del cluster che corrisponde al cluster che si desidera eliminare. Copiare l'ARN. 3. Eseguire il comando seguente, sostituendo ClusterArn con l'ARN ottenuto quando è stato eseguito il comando precedente. aws kafka delete-cluster --region us-east-1 --cluster-arn ClusterArn 14
Amazon Managed Streaming per Apache Kafka Developer Guide Creazione di un cluster Amazon MSK: come funziona Un Cluster Amazon MSK. è la risorsa Amazon MSK principale che puoi creare nel tuo account. Negli argomenti in questa sezione viene descritto come eseguire operazioni Amazon MSK comuni. Per un elenco di tutte le operazioni che puoi eseguire su un Cluster MSK, consulta quanto segue: • La Console di gestione AWS • La documentazione di riferimento dell'API Amazon MSK. • Il riferimento ai comandi CLI Amazon MSK Argomenti • Creazione di un Cluster Amazon MSK. (p. 15) • Eliminazione di un Cluster Amazon MSK. (p. 18) • Ottenere la stringa di connessione Apache ZooKeeper per un Cluster Amazon MSK. (p. 19) • Ottenere i broker bootstrap per un Cluster Amazon MSK. (p. 20) • Elenco dei cluster Amazon MSK (p. 21) • Aumento delle dimensioni dello storage broker (p. 21) • Aggiornamento della configurazione di un Cluster Amazon MSK. (p. 22) • Espansione di un Cluster Amazon MSK. (p. 24) • Monitoraggio di un Cluster Amazon MSK. (p. 26) • Tagging di un Cluster Amazon MSK. (p. 37) Creazione di un Cluster Amazon MSK. Prima di poter creare un Cluster Amazon MSK. è necessario avere un VPC e configurare sottoreti all'interno di tale VPC. Sono necessarie due sottoreti in due zone di disponibilità diverse nelle seguenti regioni: Sud America (San Paolo), Canada (Centrale) e Stati Uniti occidentali (California settentrionale). In tutte le altre regioni in cui Amazon MSK è disponibile, è possibile specificare due o tre sottoreti. Le sottoreti devono trovarsi tutte in zone di disponibilità differenti. Quando crei un cluster, Amazon MSK distribuisce i nodi broker in modo uniforme sulle sottoreti specificate. Per un esempio di come configurare un VPC e le sottoreti per un Cluster MSK, consulta ??? (p. 4) e ??? (p. 7). Creazione di un cluster mediante la Console di gestione AWS 1. Open the Amazon MSK console at https://console.aws.amazon.com/msk/. 2. Scegliere Create cluster. 3. Specificare un nome per il cluster. 4. Nell'elenco VPC scegliere il VPC che si desidera utilizzare per il cluster. È inoltre possibile specificare quale versione di Apache Kafka deve essere utilizzata da Amazon MSK per creare il cluster. 5. Specificare due sottoreti se si utilizza una delle seguenti regioni: Sud America (San Paolo), Canada (Centrale) e Stati Uniti occidentali (California settentrionale). In altre regioni in cui Amazon MSK è disponibile, è possibile specificare due o tre sottoreti. Le sottoreti specificate devono trovarsi in zone di disponibilità differenti. 15
Amazon Managed Streaming per Apache Kafka Developer Guide Creazione di un cluster mediante l'AWS CLI 6. Scegliere il tipo di configurazione desiderato. Per informazioni sulle configurazioni MSK, consulta Configurazione (p. 39). 7. Specificare il tipo e il numero di broker che devono essere creati da MSK in ogni zona di disponibilità. Il valore minimo è un broker per zona di disponibilità e il valore massimo è cinque broker per zona di disponibilità. 8. (Facoltativo) Assegnare tag al cluster. I tag sono opzionali. Per ulteriori informazioni, consulta the section called “Tagging di un cluster” (p. 37). 9. È possibile regolare il volume di storage per broker. Dopo aver creato il cluster, è possibile aumentare il volume di storage per broker ma non ridurlo. 10. Scegliere le impostazioni desiderate per la crittografia dei dati in transito. Per impostazione predefinita, MSK esegue la crittografia dei dati quando transitano tra i broker all'interno di un cluster. Se non si desidera crittografare i dati mentre si spostano tra i broker, deselezionare la casella di controllo etichettata Enable encryption within the cluster (Abilita crittografia all'interno del cluster). 11. Scegliere una delle tre impostazioni per la crittografia dei dati mentre si spostano tra client e broker. Per ulteriori informazioni, consulta the section called “Crittografia in transito” (p. 50). 12. Scegliere il tipo di CMK che si desidera utilizzare per la crittografia dei dati inattivi. Per ulteriori informazioni, consulta the section called “Crittografia dei dati inattivi” (p. 50). 13. Se si desidera autenticare l'identità dei client, scegliere Enable TLS client authentication (Abilita autenticazione client TLS) selezionando la casella accanto a esso. Per ulteriori informazioni sull'autenticazione, consulta the section called “Autenticazione client” (p. 60). 14. Scegliere il livello di monitoraggio desiderato. Questo determina il set di parametri che si ottiene. Per ulteriori informazioni, consulta the section called “Monitoraggio di un cluster” (p. 26). 15. (Facoltativo) Scegliere Advanced settings (Impostazioni avanzate), quindi selezionare Customize settings. È possibile specificare uno o più gruppi di sicurezza a cui si desidera concedere l'accesso al cluster (ad esempio, i gruppi di sicurezza dei computer client). Se specifichi gruppi di sicurezza condivisi con te, devi verificare di disporre delle autorizzazioni per gli stessi. Nello specifico, è necessaria l'autorizzazione ec2:DescribeSecurityGroups. Per un esempio, consulta Amazon EC2: consente la gestione dei gruppi di sicurezza EC2 associati a uno specifico VPC, in modo programmatico e nella console. 16. Scegliere Create cluster. Creazione di un cluster mediante l'AWS CLI 1. Copiare il JSON seguente e salvarlo in un file. Assegnare un nome al file brokernodegroupinfo.json. Sostituire gli ID di sottorete nel JSON con i valori corrispondenti alle sottoreti. Le sottoreti devono trovarsi in zone di disponibilità differenti. Sostituire "Security- Group-ID" con l'ID di uno o più gruppi di sicurezza del client VPC. I client associati a questi gruppi di sicurezza ottengono l'accesso al cluster. Se specifichi gruppi di sicurezza condivisi con te, devi verificare di disporre delle autorizzazioni per gli stessi. Nello specifico, è necessaria l'autorizzazione ec2:DescribeSecurityGroups. Per un esempio, consulta Amazon EC2: consente la gestione dei gruppi di sicurezza EC2 associati a uno specifico VPC, in modo programmatico e nella console. Infine, salvare il file JSON aggiornato sul computer in cui è stato installato AWS CLI. { "InstanceType": "kafka.m5.large", "ClientSubnets": [ "Subnet-1-ID", "Subnet-2-ID" ], "SecurityGroups": [ "Security-Group-ID" ] } 16
Amazon Managed Streaming per Apache Kafka Developer Guide Creazione di un cluster con una configurazione MSK personalizzata mediante AWS CLI Important Specificare esattamente due sottoreti se si utilizza una delle seguenti regioni: Sud America (San Paolo), Canada (Centrale) e Stati Uniti occidentali (California settentrionale). Per altre regioni in cui Amazon MSK è disponibile, è possibile specificare due o tre sottoreti. Le sottoreti specificate devono trovarsi in zone di disponibilità distinte. Quando crei un cluster, Amazon MSK distribuisce i nodi broker in modo uniforme sulle sottoreti specificate. 2. Eseguire il seguente comando AWS CLI nella directory in cui è stato salvato il file brokernodegroupinfo.json, sostituendo "Your-Cluster-Name" con un nome a scelta. Per "Monitoring-Level", è possibile specificare uno dei seguenti tre valori: DEFAULT, PER_BROKER o PER_TOPIC_PER_BROKER. Per informazioni su questi tre diversi livelli di monitoraggio, consulta ??? (p. 26). Il parametro enhanced-monitoring è facoltativo. Se non viene specificato nel comando create-cluster, si ottiene il livello di monitoraggio DEFAULT. aws kafka create-cluster --cluster-name "Your-Cluster-Name" --broker-node-group-info file://brokernodegroupinfo.json --kafka-version "2.2.1" --number-of-broker-nodes 3 -- enhanced-monitoring "Monitoring-Level" L'output del comando è simile al JSON seguente: { "ClusterArn": "...", "ClusterName": "AWSKafkaTutorialCluster", "State": "CREATING" } Note Il comando create-cluster potrebbe restituire un errore che indica che una o più sottoreti appartengono a zone di disponibilità non supportate. Quando ciò si verifica, l'errore indica quali zone di disponibilità non sono supportate. Crea sottoreti che non utilizzano le zone di disponibilità non supportate e riprova a eseguire nuovamente il comando create-cluster. 3. Salvare il valore della chiave ClusterArn perché è necessario per eseguire altre operazioni nel cluster. Creazione di un cluster con una configurazione MSK personalizzata mediante AWS CLI Per informazioni sulle configurazioni MSK personalizzate e su come crearle, consulta Configurazione (p. 39). 1. Salva il JSON seguente in un file, sostituendo configuration-arn con l'ARN della configurazione che desideri utilizzare per creare il cluster. { "Arn": configuration-arn, "Revision": 1 } 2. Esegui il comando create-cluster e utilizza l'opzione configuration-info per puntare al file JSON salvato nella fase precedente. Di seguito è riportato un esempio. 17
Amazon Managed Streaming per Apache Kafka Developer Guide Creazione di un cluster mediante l'API aws kafka create-cluster --cluster-name ExampleClusterName --broker-node-group-info file://brokernodegroupinfo.json --kafka-version "1.1.1" --number-of-broker-nodes 3 -- enhanced-monitoring PER_TOPIC_PER_BROKER --configuration-info file://configuration.json Di seguito è riportato un esempio di una risposta corretta dopo l'esecuzione di questo comando. { "ClusterArn": "arn:aws:kafka:us-east-1:123456789012:cluster/ CustomConfigExampleCluster/abcd1234-abcd-dcba-4321-a1b2abcd9f9f-2", "ClusterName": "CustomConfigExampleCluster", "State": "CREATING" } Creazione di un cluster mediante l'API Per creare un cluster mediante l'API, consulta CreateCluster. Eliminazione di un Cluster Amazon MSK. Eliminazione di un cluster mediante la Console di gestione AWS 1. Open the Amazon MSK console at https://console.aws.amazon.com/msk/. 2. Scegli il Cluster MSK da eliminare selezionando la casella di controllo accanto ad esso. 3. Scegli Delete, quindi conferma l'eliminazione. Eliminazione di un cluster mediante la AWS CLI Esegui il comando seguente, sostituendo ClusterArn con l'Amazon Resource Name (ARN) ottenuto al momento della creazione del cluster. Se non disponi dell'ARN per il cluster, puoi trovarlo elencando tutti i cluster. Per ulteriori informazioni, consulta the section called “Elenco dei cluster” (p. 21). aws kafka delete-cluster --cluster-arn ClusterArn Eliminazione di un cluster mediante l'API Per eliminare un cluster utilizzando l'API, consulta DeleteCluster. 18
Puoi anche leggere