Funzionalità di Streaming gestito da Amazon per Apache Kafka

Perché scegliere Amazon MSK?

Lo streaming gestito da Amazon per Apache Kafka (Amazon MSK) offre Apache Kafka, Kafka Connect e il Replicatore Amazon MSK completamente gestiti. Apache Kafka è un archivio dati distribuito, ottimizzato per l'acquisizione e l'elaborazione di dati in streaming in tempo reale. Amazon MSK effettua il provisioning dell'infrastruttura del cluster, configura i cluster Apache Kafka, sostituisce i server in caso di guasto, orchestra patch e aggiornamenti dei server, progetta cluster ad alta disponibilità, assicura che i dati siano archiviati e protetti in modo duraturo, imposta monitoraggio e allarmi ed esegue il dimensionamento per supportare le modifiche al carico. Con Amazon MSK, è possibile dedicare più tempo allo sviluppo e all'esecuzione di applicazioni per eventi in streaming piuttosto che alla gestione dei cluster Apache Kafka.

Vista a volo d'uccello della strada

Integrazione scalabile

Amazon MSK rappresenta la dorsale di rete (backbone) di integrazione per le moderne applicazioni di messaggistica e basate su eventi al centro dei servizi di importazione ed elaborazione dei dati, nonché architetture di applicazioni basate su microservizi. Esistono diversi modi per integrarsi con altri sistemi, tra cui una varietà di altri servizi AWS, rendendo lo sviluppo di applicazioni più semplice e veloce. È possibile portare il proprio connettore e implementarlo in un'infrastruttura completamente gestita tramite Amazon MSK Connect. In alternativa, è possibile scegliere da un elenco sempre crescente di integrazioni native con altri servizi AWS, come Amazon S3, Amazon Redshift, Servizio gestito da Amazon per Apache Flink e AWS Lambda. Amazon MSK si integra inoltre con AWS Identity and Access Management (IAM), Gestione certificati AWS (ACM) e Servizio AWS di gestione delle chiavi (AWS KMS) per fornire un accesso clienti sicuro, autenticato e autorizzato ai propri dati. È possibile anche applicare la governance degli schemi tramite il Registro degli schemi di AWS Glue.

Cityscape

Compatibile con Apache Kafka

Amazon MSK supporta tutte le funzionalità di Apache Kafka pronte all'uso e rende disponibili le versioni più recenti di Apache Kafka entro poche settimane dalla disponibilità pubblica.

Amazon MSK mantiene la piena compatibilità con il protocollo client open source di Apache Kafka; pertanto, le applicazioni e gli strumenti creati per Apache Kafka funzionano immediatamente con Amazon MSK, senza modifiche al codice dell'applicazione.

È possibile aggiornare le versioni di Apache Kafka sui cluster con provisioning in pochi passaggi e quindi decidere quando sfruttare le funzionalità e le correzioni di bug presenti nelle nuove versioni di Apache Kafka. Amazon MSK automatizza l'implementazione degli aggiornamenti di versione sui cluster in esecuzione per mantenere la disponibilità delle operazioni di I/O del client.

Scegli il tuo tipo di cluster

Amazon MSK Provisioned offre un controllo granulare sul cluster Apache Kafka. Consente di scegliere il tipo di broker, di effettuare il pre-provisioning delle istanze del server, di selezionare il tipo di archiviazione desiderato e di scegliere la versione di Apache Kafka preferita, nonché di scegliere quando e in che misura scalare i cluster in risposta alla variazione del carico di lavoro.

Amazon MSK Serverless gestisce completamente il cluster Apache Kafka, evitando la necessità di stimare la capacità necessaria per il carico di lavoro o di decidere quando scalarlo in risposta alle variazioni del traffico.

Nessun server da gestire

Indipendentemente dal tipo di cluster scelto, con pochi passaggi nella console di gestione AWS, è possibile creare un cluster completamente gestito altamente disponibile, sicuro e supportato da sistemi avanzati di monitoraggio e rilevamento di Amazon MSK che mantengono automaticamente lo stato operativo del cluster.

Apache Kafka utilizza Apache Kafka Raft (KRaft) o Apache ZooKeeper per la gestione dei metadati. Amazon MSK consente di creare cluster in entrambe le modalità nelle versioni di Apache Kafka supportate. Amazon MSK gestisce al posto tuo anche questi nodi di metadati aggiuntivi senza costi aggiuntivi.

Diversi tipi di broker

I broker Express sono un tipo di broker offerto da MSK Provisioned che rende Apache Kafka più semplice da gestire, più conveniente da eseguire su larga scala e più elastico con la stessa bassa latenza prevista. I broker Express includono una capacità di archiviazione virtualmente illimitata ed elastica che non richiede alcun sovraccarico di gestione, forniscono un throughput fino a 3 volte superiore per broker e possono aumentare verticalmente fino a 20 volte più velocemente. Inoltre, permettono di effettuare il ripristino fino al 90% più velocemente rispetto ai broker Apache Kafka Standard nei servizi di Streaming gestito da Amazon per Apache Kafka (MSK).

I broker Standard di MSK Provisioned offrono la massima flessibilità per configurare le prestazioni del cluster. È possibile scegliere tra un'ampia gamma di configurazioni sul cluster per ottimizzare le dimensioni, tra cui disponibilità, durata, throughput e latenza. Sui broker Standard, è possibile controllare anche le configurazioni di archiviazione sul cluster e rispondere della gestione del provisioning e dell'utilizzo dell'archiviazione.

Opzioni di archiviazione

I broker Express includono una capacità di archiviazione virtualmente illimitata ed elastica che non richiede dimensionamento, provisioning o gestione continua della capacità. La capacità di archiviazione si scala automaticamente per soddisfare le esigenze di conservazione dei dati e si paga solo per l'archiviazione utilizzata.

Con l'archiviazione su più livelli, è possibile archiviare dati praticamente illimitati in MSK senza la necessità di eseguire il provisioning e gestire la capacità di archiviazione. È possibile abilitare l'archiviazione su più livelli in pochi passaggi per i cluster esistenti e pagare solo per ciò che si utilizza. È possibile prima archiviare i dati in un livello di archiviazione principale ottimizzato per le prestazioni e poi consentire ad Amazon MSK di classificare automaticamente i dati nel livello a basso costo per una conservazione più lunga. La funzionalità è supportata in tutte le regioni AWS in cui è disponibile Amazon MSK. Per ulteriori informazioni su come iniziare a utilizzare l'archiviazione su più livelli, consulta la Guida per sviluppatori di Amazon MSK.

Altamente resiliente

Tutti i cluster sono distribuiti su più zone di disponibilità (tre è l'impostazione predefinita) e Amazon MSK offre la replica dei dati in queste zone senza costi aggiuntivi. Inoltre, la disponibilità del cluster è supportata dall'Accordo sul livello di servizio di Amazon MSK che garantisce il 99,9% di disponibilità.

Amazon MSK dispone di sistemi automatici che rilevano e rispondono rapidamente ai problemi. Se un componente smette di funzionare, Amazon MSK lo sostituisce automaticamente senza causare tempi di inattività delle applicazioni. Inoltre, implementiamo automaticamente le patch software necessarie per consentire l'aggiornamento e il funzionamento ottimale del cluster.

I broker Amazon MSK Serverless ed Express di MSK Provisioned applicano configurazioni di best practice, come la replica a tre vie, e riservano larghezza di banda per le operazioni in background, come la replica e il ripristino, in modo da ottenere più facilmente una disponibilità prevedibile delle risorse del cluster.

Utilizzando il Replicatore Amazon MSK, è possibile configurare la replica continua dei dati su un cluster di backup secondario in un'altra regione, consentendo di creare applicazioni multiregionali altamente disponibili e tolleranti ai guasti per una maggiore resilienza. Inoltre, è possibile utilizzare il Replicatore MSK per fornire un accesso ai dati a bassa latenza in diverse regioni geografiche o per distribuire i dati ai partner.

Altamente sicuro

I cluster Apache Kafka vengono eseguiti in un Amazon Virtual Private Cloud (Amazon VPC) gestito da Amazon MSK. I client Kafka dell'ambiente Amazon VPC possono accedere al cluster privatamente tramite un'interfaccia di rete elastica per più account che Amazon MSK implementa nel VPC. Se i clienti Kafka sono distribuiti su uno o più VPC o account AWS, è comunque possibile connettersi privatamente al cluster utilizzando la funzionalità di connettività privata multi-VPC. Questa funzionalità elimina il sovraccarico operativo derivante dalla gestione automatica di una soluzione AWS PrivateLink e si adatta perfettamente alla scalabilità del cluster Amazon MSK, consentendo di mantenere la connettività privata con il cluster senza la necessità di apportare ulteriori modifiche alla configurazione. Inoltre, la connettività privata multi-VPC elimina le problematiche legate alla gestione di IP non sovrapposti, tabelle complesse di peering e routing associate ad altre soluzioni di connettività VPC  e consente la sovrapposizione degli IP tra i VPC connessi.

Il controllo degli accessi IAM è un'opzione di sicurezza gratuita che semplifica l'autenticazione del cluster e l'autorizzazione dell'API Apache Kafka utilizzando i ruoli IAM o le policy degli utenti per controllare gli accessi. Utilizzando il controllo degli accessi IAM, non sarà più necessario costruire ed eseguire sistemi di gestione degli accessi una tantum per controllare l'autenticazione e l'autorizzazione dei client per Apache Kafka. I cluster sono protetti utilizzando le autorizzazioni con privilegi minimi per impostazione predefinita. Per i cluster sottoposti a provisioning, puoi anche utilizzare l'autenticazione Simple Authentication and Security Layer (SASL)/Salted Challenge Response Authentication Mechanism (SCRAM) o l'autenticazione Mutual Transport Layer Security (TLS) con liste di controllo accessi (ACL) di Apache Kafka per controllare l'accesso dei client.

Amazon MSK esegue la crittografia dei dati a riposo senza alcuna configurazione speciale o strumenti di terza parte. Per i cluster con provisioning, tutti i dati a riposo possono essere crittografati utilizzando una chiave AWS KMS per impostazione predefinita o la tua chiave. Inoltre, è possibile crittografare tramite TLS i dati in transito tra broker, nonché tra client e broker sul cluster. Per quanto riguarda i cluster serverless, per impostazione predefinita tutti i dati a riposo vengono crittografati utilizzando chiavi gestite dal servizio e tutti i dati in transito vengono crittografati tramite TLS.

Amazon MSK offre un'opzione per connettersi in modo sicuro ai broker dei cluster Amazon MSK che eseguono Apache Kafka 2.6.0 o versioni successive su Internet. Abilitando l'accesso pubblico, i client autorizzati esterni a un Amazon VPC privato possono trasmettere dati crittografati dentro e fuori da specifici cluster Amazon MSK.

Scalabilità

È possibile scalare i cluster MSK Provisioned aggiungendo altri broker o passando a un'istanza di broker di dimensioni maggiori in pochi minuti senza tempi di inattività. Allo stesso modo, è possibile ridurre verticalmente la capacità del cluster rimuovendo i broker o passando a un'istanza di broker di dimensioni inferiori.

I cluster Serverless di Amazon MSK regolano automaticamente le risorse di calcolo e archiviazione disponibili per i carichi di lavoro in risposta alle esigenze di throughput dell'applicazione.

Amazon MSK si integra con Cruise Control, un popolare strumento open source per Apache Kafka che gestisce automaticamente le assegnazioni delle partizioni per conto tuo. Per i cluster serverless, Amazon MSK gestisce automaticamente le assegnazioni delle partizioni.

Puoi aumentare facilmente la quantità di spazio di archiviazione assegnato per broker al fine di soddisfare le modifiche ai requisiti di archiviazione utilizzando la console di gestione AWS o l'AWS Command Line Interface (AWS CLI). Puoi anche creare una policy di scalabilità automatica per espandere automaticamente lo spazio di archiviazione e soddisfare i requisiti crescenti di streaming.

Configurabile

Con Amazon MSK, è possibile scegliere il grado di configurabilità dei cluster. I broker Express sono preconfigurati con le best practice predefinite consigliate da Amazon MSK, garantendo disponibilità, durabilità e prestazioni di throughput ottimali pronte all'uso. È possibile personalizzare alcune configurazioni per soddisfare le esigenze specifiche del carico di lavoro. Invece, i broker Standard offrono la flessibilità di modificare più di 30 diverse configurazioni di cluster, consentendo di personalizzare la disponibilità, il rapporto prezzo/prestazioni e il comportamento complessivo del cluster in base a requisiti esatti. Inoltre, è garantito l'accesso alla suite completa di configurazioni dinamiche e tematiche di Kafka, che aiutano a perfezionare ulteriormente l'esperienza. Per ulteriori informazioni, consulta la documentazione sulle Configurazioni MSK personalizzate.

Osservabile

È possibile visualizzare e monitorare metriche importanti utilizzando CloudWatch per comprendere e mantenere le prestazioni delle applicazioni di streaming. Un set predefinito di oltre 50 metriche è disponibile senza costi aggiuntivi. Inoltre, è possibile abilitare un monitoraggio più avanzato a livello di broker e argomento per risolvere problemi specifici. Le metriche avanzate vengono fatturate alle tariffe standard di CloudWatch.

Open Monitoring con Prometheus consente di monitorare Amazon MSK utilizzando soluzioni come Datadog, Lenses, New Relic, Sumo Logic o un server Prometheus e di eseguire facilmente la migrazione dei pannelli di controllo di monitoraggio esistenti verso Amazon MSK. Per ulteriori informazioni, consulta la documentazione di Open Monitoring con Prometheus.

I log dei broker consentono di risolvere i problemi delle applicazioni Apache Kafka e di analizzarne le comunicazioni con il cluster MSK. È possibile distribuire i log dei broker Apache Kafka a uno o più dei seguenti tipi di destinazione: Amazon CloudWatch Logs, Amazon Simple Storage Service (Amazon S3) e Amazon Data Firehose. Inoltre, è possibile registrare le chiamate API Amazon MSK con AWS CloudTrail.

Profondamente integrato

Offriamo un'ampia varietà di integrazioni AWS in Amazon MSK, che includono quanto segue: