Domande generali

D: Cos'è Amazon MSK?
Amazon MSK è un nuovo servizio di streaming di dati di AWS per la gestione dell’infrastruttura e del funzionamento di Apache Kafka; facilita l’esecuzione delle applicazioni Apache Kafka in AWS, in modo che gli sviluppatori e i responsabili di DevOps non debbano diventare esperti del funzionamento dei cluster Apache Kafka. Amazon MSK è il servizio ideale con cui eseguire le applicazioni Apache Kafka nuove ed esistenti in AWS. Amazon MSK opera e mantiene i cluster Apache Kafka, offre caratteristiche di sicurezza di livello aziendale senza ulteriori configurazioni oltre a integrazioni incorporate con AWS per accelerare lo sviluppo delle applicazioni di flussi di dati. Per iniziare, è possibile eseguire la migrazione dei carichi di lavoro Apache Kafka esistenti ad Amazon MSK oppure crearne di nuovi da zero in qualche minuto con pochi clic. Non vengono applicati costi di trasferimento dei dati per il traffico in-cluster e non sono richiesti impegni a lungo termine né pagamenti anticipati. I prezzi vengono calcolati esclusivamente in base alle risorse utilizzate.
 
D: Cos'è Apache Kafka?
Apache Kafka è una piattaforma open source scalabile, a elevate prestazioni e con tolleranza ai guasti per creare pipeline di flussi di dati in tempo reale e applicazioni. Apache Kafka è un archivio di flussi dati che separa le applicazioni che producono flussi di dati nell’archivio dati (produttori) dalle applicazioni che consumano flussi di dati dall’archivio dati (consumatori). Le organizzazioni usano Apache Kafka come origine dati per le applicazioni che analizzano continuamente e reagiscono al flusso di dati. Ulteriori informazioni su Apache Kafka.
 
D: Cosa sono i flussi di dati?
I flussi di dati sono flussi continui di record o eventi di piccole dimensioni (un record o un evento equivale di solito a qualche kilobyte) generati da migliaia di macchine, dispositivi, siti Web e applicazioni. I flussi di dati sono composti da svariati tipi di dati, ad esempio i file di log generati dai clienti che utilizzano applicazioni Web o su dispositivi mobili, acquisti effettuati su siti di e-commerce, eventi all'interno di videogiochi, informazioni provenienti da social network, dati di transazioni finanziarie, servizi di geolocalizzazione e telemetria relativi a dispositivi connessi o strumentazioni in data center. I servizi per i flussi di dati come Amazon MSK e Amazon Kinesis Data Streams facilitano la raccolta, l’elaborazione e la consegna continue di flussi di dati. Ulteriori informazioni sui flussi di dati.
 
D: Quali sono le funzionalità principali di Apache Kafka?
Apache Kafka ha tre funzionalità principali:
  • È dotato di tolleranza ai guasti, memorizza i flussi di dati come una serie continua di record e conserva l’ordine in cui sono stati prodotti i record.
  • Funge da buffer tra i produttori e i consumatori di dati. Consente a molti produttori di dati (ad esempio siti Web, dispositivi IoT e istanze Amazon EC2) di pubblicare flussi di dati in modo continuo e di categorizzarli utilizzando gli argomenti Apache Kafka. Diversi consumatori di dati (ad esempio applicazioni di machine learning e funzioni Lambda) leggono da questi argomenti a velocità diverse, in modo simile a quanto avviene con una coda di messaggi o un sistema di messaggistica aziendale.
  • I consumatori di dati elaborano i dati dagli argomenti Apache Kafka secondo la modalità first-in-first-out, conservando l’ordine in cui sono stati prodotti i dati.
 
D: Quali sono i concetti principali di Apache Kafka?
Apache Kafka archivia i record in argomenti. I produttori di dati scrivono i record negli argomenti e i consumatori leggono i record dagli argomenti. Ciascun record in Apache Kafka è costituito da una chiave, un valore e un time stamp. Apache Kafka esegue il partizionamento degli argomenti e replica tali partizioni su più nodi chiamati broker. Esegue quindi un cluster su uno o più broker, che possono trovarsi su zone di disponibilità AWS diverse, per creare un cluster a disponibilità elevata. Apache Kafka si affida ad Apache Zookeeper per coordinare i task relativi ai cluster, garantendo così l’integrità delle risorse che interagiscono con i cluster Apache Kafka.
 
D: In quali casi è indicato utilizzare Apache Kafka?
Apache Kafka viene utilizzato per supportare applicazioni in tempo reale che trasformano, consegnano e reagiscono ai flussi di dati e per creare pipeline di flussi di dati in tempo reale che ottengono i dati in modo affidabile tra più sistemi e applicazioni.
 
D: A cosa serve Amazon MSK?
Amazon MSK facilita le operazioni di avvio ed esecuzione delle versioni open source di Apache Kafka in AWS grazie all’elevata disponibilità e sicurezza e offre integrazioni con i servizi AWS senza i costi operativi legati all’esecuzione di un cluster Apache Kafka. Amazon MSK consente di utilizzare e configurare versioni open source di Apache Kafka, mentre il servizio gestisce la configurazione, il provisioning, le integrazioni con AWS e la manutenzione continua dei cluster Apache Kafka.
 
È possibile eseguire il provisioning di un cluster Amazon MSK con solo qualche clic nella console. Amazon MSK sostituisce quindi i broker non integri, replica automaticamente i dati per assicurarne la disponibilità elevata, gestisce i nodi Apache ZooKeeper, distribuisce automaticamente patch hardware se necessario, gestisce le integrazioni con i servizi AWS, rende visibili le metriche importanti tramite la console e supporta gli aggiornamenti della versione di Apache Kafka quando è supportata più di una versione, così l’utente può trarre vantaggio dai miglioramenti alla versione open source di Apache Kafka.
 
D: Quali versioni di Apache Kafka supporta Amazon MSK?
Al momento, Amazon MSK supporta la versione 1.1.1 e la versione 2.2.1 di Apache Kafka.
 
D: Le API Apache Kafka sono compatibili con Amazon MSK?
Sì, Amazon MSK fornisce supporto nativo per tutte le API data plane e admin.
 
D: Amazon MSK supporta Apache Kafka AdminClient?
Sì.

Produzione e consumo di dati

D: È possibile utilizzare le API Apache Kafka per trasferire dati da e verso Apache Kafka?
Sì, Amazon MSK fornisce supporto per le API produttore e consumatore native di Apache Kafka. Non è richiesta la modifica del codice dell’applicazione quando i client iniziano a lavorare con i cluster in Amazon MSK.
 
 
D: È possibile utilizzare Apache Kafka Connect, Apache Kafka Streams o qualsiasi altro componente dell’ecosistema di Apache Kafka con Amazon MSK?
Sì, è possibile utilizzare qualsiasi componente che sfrutta le API produttore e consumatore di Apache Kafka e Apache Kafka AdminClient. Al momento, gli strumenti per il caricamento dei file .jar nei cluster Apache Kafka non sono compatibili con Amazon MSK, compresi Confluent Control Center, Confluent Auto Data Balancer, Uber uReplicator e LinkedIn Cruise Control.

Migrazione ad Amazon MSK

D: È possibile eseguire la migrazione dei dati all’interno di un cluster Apache Kafka esistente ad Amazon MSK?
Sì, è possibile utilizzare strumenti open source e di terze parti come MirrorMaker, integrati ad Apache Kafka open source, per replicare i dati dai cluster nei cluster Amazon MSK.

Aggiornamenti della versione

D: Gli aggiornamenti di versione di Apache Kafka sono supportati? 
Gli aggiornamenti di versione del cluster non sono attualmente supportati, ma abbiamo in programma di supportare gli aggiornamenti della versione a breve. 
 
D: Come funziona il processo di aggiornamento dietro le quinte?
Quando viene distribuita una nuova versione di Apache Kafka, Amazon MSK impiega un processo di aggiornamento in sequenza che aggiorna un broker o nodo Apache ZooKeeper alla volta prima di passare alla risorsa successiva. Durante tutto il processo di aggiornamento, il cluster sarà in stato di “Aggiornamento” e diventerà “Attivo” una volta completato. È importante tenere presente che, se si sceglie di non replicare i dati a diversi broker all’interno un cluster che deve essere aggiornato, il cluster sarà soggetto a tempi di inattività.

Cluster

D: Come si può creare un primo cluster Amazon MSK?
Il primo cluster può essere creato in pochi clic nella Console di gestione AWS oppure mediante il kit SDK AWS. Per prima cosa, nella Console Amazon MSK, è necessario selezionare una regione AWS nella quale creare un cluster Amazon MSK. Andranno poi scelti il nome del cluster, il cloud privato virtuale (VPC) dove si vuole eseguire il cluster, una strategia di replica dei dati per il cluster (tre zone di disponibilità sono l’impostazione predefinita per garantire una durabilità elevata) e le sottoreti per ciascuna zona di disponibilità. Quindi, è necessario selezionare il tipo di istanza broker e il numero di broker per zona di disponibilità prima di fare clic su “Crea”.

D: Quali risorse sono contenute in un cluster?
Ciascun cluster contiene le istanze broker, lo storage allocato e i nodi Apache ZooKeeper.

D: Di quali tipi di istanze broker è possibile eseguire il provisioning all’interno di un cluster Amazon MSK?
È possibile scegliere le istanze all’interno della famiglia di istanze EC2 M5.
 
D: Amazon MSK offre prezzi per le istanze riservate?
No, al momento no.

D: È necessario eseguire il provisioning e pagare per i volumi di avvio dei broker?
No, ciascun broker di cui viene eseguito il provisioning include storage dei volumi di avvio gestito dal servizio Amazon MSK.

D: Quando viene creato un cluster Apache Kafka, le risorse sottostanti (ad esempio le istanze Amazon EC2) vengono mostrate nella console EC2?
Alcune risorse, come le interfacce di rete elastiche (ENI), vengono mostrate nell’account Amazon EC2. Altre risorse Amazon MSK non vengono mostrate nell’account EC2, poiché sono gestite dal servizio Amazon MSK.

D: Cosa è necessario per eseguire il provisioning all’interno di un cluster Amazon MSK?
È necessario eseguire il provisioning delle istanze broker e dello storage broker per ciascun cluster che viene creato. Non è richiesto, invece, eseguire il provisioning dei nodi Apache ZooKeeper, dato che tali risorse sono incluse con ciascun cluster che viene creato senza costi aggiuntivi.

D: Qual è la configurazione predefinita dei broker per un cluster?
Se non altrimenti specificato, Amazon MSK usa le stesse impostazioni predefinite della versione open source di Apache Kafka. Le impostazioni predefinite sono documentate qui
D: È possibile eseguire il provisioning dei broker in modo che la distribuzione nelle zone di disponibilità non sia equilibrata (ad esempio 3 in us-east-1a, 2 in us-east-1b e 1 in us-east-1c)?
No, le best practice di Amazon MSK impongono di distribuire i broker in modo equilibrato su tutte le zone di disponibilità all’interno di un cluster.

D: Come funziona la replica dei dati in Amazon MSK?
Amazon MSK usa la replica leader-follower di Apache Kafka per replicare i dati tra i broker. Amazon MSK semplifica la distribuzione dei cluster con 3 repliche delle zone di disponibilità per impostazione predefinita e consente di utilizzare una strategia di replica personalizzata sulla base degli argomenti. Per impostazione predefinita con ciascuna delle opzioni di replica, i broker leader e follower vengono distribuiti e isolati utilizzando la strategia di replica specificata. Ad esempio, se viene selezionata una strategia di replica dei broker a tre zone di disponibilità, con un broker per cluster di ciascuna zona di disponibilità, Amazon MSK creerà un cluster di tre broker (un broker in tre zone di disponibilità in una regione) e, per impostazione predefinita, anche il fattore di replica degli argomenti sarà uguale a 3, a meno che non si scelga di modificarlo.

D: Posso cambiare le configurazioni predefinite del broker o caricare una configurazione del cluster su Amazon MSK?
Sì, Amazon MSK permette di creare configurazioni personalizzate e applicarle a nuovi cluster. È possibile creare le configurazioni personalizzate utilizzando la l’interfaccia a riga di comando o la Console AWS. Il supporto per le configurazioni personalizzate dei cluster esistenti sarà disponibile a giugno 2019.

D: Quali proprietà di configurazione possono essere personalizzate?
Le proprietà di configurazione che è possibile personalizzare sono documentate qui.

D: Qual è la configurazione predefinita per un nuovo argomento?
Amazon MSK usa la configurazione predefinita di Apache Kafka, se non altrimenti specificato qui:

Fattore di replica

Cluster predefinito

Min.Insync.Replicas

2

Argomenti

D: Come si crea un argomento?
Una volta che il cluster Apache Kafka è stato creato, è possibile usare le API Apache Kafka per creare argomenti. Tutte le azioni e le configurazioni relative agli argomenti e ai livelli di partizione vengono eseguite utilizzando le API Apache Kafka. Il seguente comando è un esempio di creazione di un argomento utilizzando le API di Apache Kafka:
 
bin/kafka-topics.sh --create —bootstrap-server ConnectionString:9092 --replication-factor 3 --partitions 1 --topic TopicName  

Rete

D: Amazon MSK viene eseguito in un cloud privato virtuale (VPC) Amazon?
Sì, Amazon MSK viene sempre eseguito all’interno di un cloud privato virtuale Amazon gestito dal servizio Amazon MSK. Le risorse Amazon MSK verranno rese disponibili nel cloud privato virtuale Amazon, nella sottorete e nel gruppo di sicurezza selezionati quando il cluster è stato configurato. Gli indirizzi IP del cloud privato virtuale vengono collegati alle risorse Amazon MSK tramite interfacce a rete elastiche (ENI); in questo modo, il traffico di rete rimarrà nell'ambito della rete AWS e non sarà accessibile da Internet.
 
D: La connessione tra i client e un cluster Amazon MSK è sempre privata?
Sì, i dati possono essere prodotti e utilizzati da un cluster Amazon MSK solo tramite una connessione privata tra i client nel cloud privato virtuale e il cluster Amazon MSK. Amazon MSK non supporta endpoint pubblici.

D: In che modo i broker nel cluster Amazon MSK vengono resi accessibili ai client nel cloud privato virtuale?
I broker nel cluster vengono resi accessibili ai client nel cloud privato virtuale attraverso interfacce di rete elastiche (ENI), che appariranno nell’account. I gruppi di sicurezza nelle interfacce ENI determinano l’origine e il tipo di traffico in entrata e in uscita consentito per i broker.

D: Come si può consentire ai client in esecuzione su diversi account AWS di accedere a un determinato cluster?
È possibile usare una connessione peer tra istanze VPC per consentire ai client in esecuzione su diversi account AWS di accedere a un determinato cluster.

Collegamento al VPC

D: Come faccio a collegarmi al mio cluster MSK AWS dall’esterno del VPC?

Esistono diversi metodi per connettersi ai cluster AWS MSK dall’esterno del VPC.

Crittografia

D: È possibile crittografare i dati nel cluster Amazon MSK?
Sì, Amazon MSK usa la crittografia lato server Amazon EBS e le chiavi AWS KMS per crittografare i volumi di storage.

D: All'interno di un cluster MSK di Amazon, i dati sono crittografati durante il transito tra broker?
Sì, per impostazione predefinita, sui nuovi cluster è abilitata la crittografia in transito tramite TLS per la comunicazione tra i broker. Quando viene creato un cluster, è possibile scegliere di non utilizzare la crittografia in transito.

D: I dati vengono crittografati durante il transito tra i client Apache Kafka e il servizio Amazon MSK?
Sì, per impostazione predefinita la crittografia in transito è impostata su TLS soltanto per i cluster creati dalla console CLI o AWS. Occorre una configurazione ulteriore affinché i clienti possano comunicare con i cluster utilizzando la crittografia TLS. Puoi modificare l'impostazione di crittografia predefinita selezionando le impostazioni TLS/testo non crittografato o testo non crittografato. Ulteriori informazioni: MSK Encryption

D: In un cluster Amazon MSK, i dati vengono crittografati in transito durante il trasferimento tra i broker e i nodi Apache ZooKeeper?
No, la versione predefinita di Apache Zookeeper inclusa in Apache Kafka non supporta la crittografia. Tuttavia è importante notare che le comunicazioni tra Apache Zookeeper e i broker Apache Kafka si limitano alle informazioni sullo stato della partizione, agli argomenti e ai broker.

Autenticazione e autorizzazione

D: Come posso limitare la portata della connettività a un cluster Amazon MSK su più client nel mio VPC?
Amazon MSK supporta l'autenticazione basata su TLS; è possibile utilizzare questa funzione per autenticare le connessioni client a un cluster MSK di Amazon. Amazon MSK consente di distribuire le CA private a un cluster MSK all'interno del servizio AWS Certificate Manager. Se l'autenticazione client TLS è abilitata, solo i client che presentano certificati TLS generati dalle CA private precedentemente caricate possono essere autenticati presso il cluster.

D: Come funziona l’autorizzazione in Amazon MSK?
Per l'autorizzazione, Apache Kafka utilizza liste di controllo degli accessi (ACL), mentre Amazon MSK supporta l'uso di ACL. Per abilitare le ACL è necessario abilitare l'autenticazione client utilizzando TLS.

D: Come si fa per autenticare e autorizzare un client allo stesso tempo?
I client Amazon MSK che utilizzano l'autenticazione TLS del client possono utilizzare il Dname dei certificati TLS dei client come elemento ACL principale per autenticare e autorizzare le richieste dei client.

Monitoraggio, parametri, registrazione di log e applicazione di tag

D: Come si monitorano le prestazioni dei cluster e degli argomenti?
È possibile monitorare le prestazioni dei cluster usando metriche standard e quelle degli argomenti con metriche più complesse nella console Amazon CloudWatch.
 
D: Come si monitorano lo stato di integrità e le prestazioni dei client?
È possibile utilizzare qualsiasi tipo di monitoraggio lato client supportato dalla versione Apache Kafka in uso.

D: Posso applicare dei tag alle risorse di Amazon MSK?
Sì, è possibile applicare dei tag ai cluster Amazon MSK tramite l’interfaccia a riga di comando o la Console AWS.

D: Come si monitorano i lag dei consumatori?
I lag dei consumatori all'interno del tuo cluster Amazon MSK possono essere monitorati con strumenti specifici per questa funzionalità, come Linkedin's Burrow: https://github.com/linkedin/Burrow

Apache ZooKeeper

D: Cos'è Apache ZooKeeper?
Tratto da https://zookeeper.apache.org/: "Apache ZooKeeper è un servizio centralizzato per il mantenimento delle informazioni di configurazione, l’assegnazione di nomi, la sincronizzazione distribuita e i servizi di gruppo. Tutti questi servizi vengono utilizzati in qualche modo dalle applicazioni distribuite,” compreso Apache Kafka.

D: Amazon MSK utilizza Apache ZooKeeper?
Sì, Amazon MSK utilizza Apache ZooKeeper e lo gestisce all’interno di ciascun cluster come parte del servizio Amazon MSK. I nodi Apache ZooKeeper sono compresi in ciascun cluster senza costi aggiuntivi.
 
D: Come interagiscono i clienti con Apache ZooKeeper?
I client possono interagire con Apache ZooKeeper attraverso un endpoint Apache ZooKeeper fornito dal servizio. L’endpoint viene fornito nella Console di gestione AWS o utilizzando DescribeCluster API.

Integrazioni

D: Con quali servizi AWS si integra Amazon MSK?
Amazon MSK si integra con:

Dimensionamento

D: Come si fa per aumentare lo spazio di storage di un cluster?
È possibile aumentare lo spazio di storage nel cluster utilizzando la Console di gestione AWS o l’interfaccia a riga di comando AWS. 
 
D: È possibile aumentare il numero di broker in un cluster esistente?
No. Il dimensionamento del numero di broker in un cluster esistente non è attualmente supportato da Amazon MSK ma è previsto nella nostra tabella di marcia.
D: È possibile calibrare la dimensione delle istanze del broker in un cluster esistente?
No. La calibratura delle dimensioni delle istanze dei broker in un cluster esistente non è attualmente supportata da Amazon MSK ma è prevista nella nostra tabella di marcia.

Prezzi e disponibilità

D: Come vengono calcolati i prezzi di Amazon MSK?
I prezzi dipendono dalle ore di broker Apache Kafka e dalle ore di storage assegnate. Saranno addebitati i costi di AWS per il trasferimento dei dati da e verso Amazon MSK. Visita la pagina dei prezzi per ulteriori informazioni.

D: Si pagano i trasferimenti di dati resi necessari dalla replica dei dati?
No, tutti i trasferimenti dei dati in-cluster sono inclusi nel servizio senza costi aggiuntivi.
 
D: Quali regioni offre Amazon MSK?
La disponibilità regionale di Amazon MSK è illustrata qui

D: Come vengono calcolati i prezzi del trasferimento di dati?
Saranno addebitati i costi standard di AWS per il trasferimento di dati da e verso un cluster Amazon MSK. Non saranno addebitati costi per il trasferimento di dati all’interno del cluster in una regione, compreso il trasferimento di dati tra broker e tra broker e nodi Apache ZooKeeper.

Conformità

D: Amazon MSK è soggetto alla normativa HIPAA?

Sì. Amazon MSK è soggetto alla normativa HIPAA. Per un elenco completo dei servizi AWS e dei programmi per la conformità, consulta Servizi AWS coperti dal programma di conformità.

Contratto sul livello di servizio (SLA)

D: Cosa garantisce lo SLA di Amazon MSK?
Lo SLA di Amazon MSK garantisce una percentuale di tempo di attività mensile di almeno il 99,9% per Amazon MSK.
 
D: Come posso sapere se ho diritto a un credito di assistenza SLA?
Hai diritto a un credito SLA per Amazon MSK secondo quanto previsto dallo SLA di Amazon MSK se le distribuzioni Multi-AZ su Amazon MSK hanno una percentuale di Uptime mensile inferiore al 99,9% durante qualsiasi ciclo di fatturazione mensile.
 
Per dettagli completi sui termini e le condizioni del contratto sul livello di servizio e per indicazioni sulla presentazione di una richiesta, consulta la pagina dei dettagli relativa allo SLA di Amazon MSK.

Nozioni di base su Amazon MSK

Calcola i costi
Calcola i costi

Visita la pagina dei prezzi di Amazon MSK.

Esamina la guida alle operazioni di base
Esamina la guida alle operazioni di base

Scopri come configurare un cluster Apache Kafka in Amazon MSK con questa guida dettagliata.

Esegui il tuo cluster Apache Kafka
Esegui il tuo cluster Apache Kafka

Inizia a eseguire il tuo cluster Apache Kafka in Amazon MSK. Accedi alla Console Amazon MSK.