Amazon Kinesis Data Streams consente di creare applicazioni personalizzate per elaborare o analizzare flussi di dati per esigenze specialistiche. È possibile configurare centinaia di migliaia di origini dati per inoltrare in modo continuo i dati in un flusso di dati Kinesis. Ad esempio, i dati provenienti da clickstream di siti Web, log di applicazioni e feed di social media. In meno di un secondo, i dati potranno essere letti ed elaborati dalle applicazioni Amazon Kinesis.

Nel seguente diagramma di architettura, Amazon Kinesis Data Streams viene usato come gateway all'interno di una soluzione per i Big Data. I dati provenienti da molteplici origini vengono incanalati in un flusso Amazon Kinesis, quindi i dati nel flusso vengono elaborati da diverse applicazioni Amazon Kinesis. In questo esempio, un'applicazione (di colore giallo) esegue un pannello di controllo in tempo reale sui dati in streaming. Un'altra applicazione (di colore rosso) esegue una semplice aggregazione e trasferisce i dati elaborati in Amazon S3. In dati in Amazon S3 vengono ulteriormente elaborati e memorizzati in Amazon Redshift per eseguire operazioni di analisi complesse. Una terza applicazione (di colore verde) inoltra i dati grezzi in Amazon S3, archiviandoli infine in Amazon Glacier, soluzione di storage a lungo termine a basso costo. Le tre pipeline di elaborazione dei dati operano simultaneamente e in parallelo. Amazon Kinesis Data Streams consente di impiegare un qualsiasi numero di linee di elaborazione dei flussi di dati senza rallentare le prestazioni.

kinesis-architecture-crop

Lo shard è un'unità di misura di throughput di un flusso Amazon Kinesis. Uno shard fornisce una capacità di 1 MB/s in entrata e 2 MB/s in uscita. Uno shard può supportare fino a 1.000 record PUT al secondo. Il numero di shard richiesti viene specificato al momento della creazione di un flusso. Ad esempio, è possibile creare un flusso con due shard. Tale flusso avrà un throughput di 2 MB al secondo in entrata e di 4 MB al secondo in uscita e consentirà fino a 2.000 record PUT al secondo. È possibile monitorare parametri a livello di shard in Amazon Kinesis Data Streams e aggiungere o rimuovere shard in modo dinamico a seconda del throughput dei dati mediante un'operazione di resharding del flusso.

Il record è l'unità di dati memorizzati in un flusso Amazon Kinesis. Un record è composto da un numero di sequenza, una chiave di partizione e un blob di dati. Un blob di dati rappresenta i dati di interesse che il produttore di dati aggiunge a un flusso. Le dimensioni massime di un blob di dati (il payload di dati dopo decodifica con Code64) è di 1 megabyte (MB).

Una chiave di partizione viene usata per separare e instradare i record di dati nei diversi shard di un flusso. La chiave di partizione viene specificata dal produttore di dati al momento dell'immissione di dati nel flusso Amazon Kinesis. Ad esempio, poniamo di avere un flusso Amazon Kinesis con due shard (Shard 1 e Shard 2). È possibile configurare il produttore di dati con due chiavi di partizione (Chiave A e Chiave B), in modo che tutti i record di dati con la Chiave A vengono aggiunti allo Shard 1 e quelli con la Chiave B vengono aggiunti allo Shard 2.

Il numero di sequenza è un identificatore univoco dei record di dati. Il numero di sequenza viene assegnato da Amazon Kinesis Data Streams quando un produttore di dati richiama le API PutRecord o PutRecords per aggiungere dati in un flusso di dati di Amazon Kinesis. I numeri di sequenza per la stessa chiave di partizione in genere diventano più grandi con il passare del tempo; più lungo è l'intervallo di tempo tra le richieste PutRecord PutRecords , più elevati diventano i numeri di sequenza. 


Dopo la registrazione ad Amazon Web Services, per iniziare a usare Amazon Kinesis Data Streams è sufficiente:

  • Creare un flusso Amazon Kinesis tramite la console di gestione di Amazon Kinesis oppure l'API CreateStream.
  • Configurare i produttori di dati in modo che inoltrino continuativamente dati nel flusso Amazon Kinesis.
  • Creare le applicazioni Amazon Kinesis che leggono ed elaborano i dati del flusso Amazon Kinesis.

I produttori di dati possono inviare i dati in Amazon Kinesis Data Streams tramite le API di Amazon Kinesis Data Streams, Amazon Kinesis Producer Library (KPL) o Amazon Kinesis Agent

 

Amazon Kinesis Data Streams fornisce due API per immettere i dati in un flusso Amazon Kinesis: PutRecord e PutRecords. PutRecord consente un solo record di dati per chiamata API, mentre PutRecords consente più record di dati per chiamata API.

Amazon Kinesis Producer Library (KPL) è una libreria configurabile e semplice da utilizzare che facilita l'invio di dati in un flusso Amazon Kinesis. Amazon Kinesis Producer Library (KPL) offre un'interfaccia semplice, affidabile e asincrona che consente di raggiungere throughput elevati con una quantità limitata di risorse client.

Amazon Kinesis Agent è un'applicazione Java preinstallata che offre un modo semplice per raccogliere e inviare dati in un flusso Amazon Kinesis. È possibile installare l'agente su ambienti server basati su Linux quali server Web, server di log e server di database. L'agente monitora determinati file e invia in modo continuo dati nel flusso. 


Un'applicazione Amazon Kinesis è un consumer di dati che legge ed elabora i dati provenienti da un flusso Amazon Kinesis. È possibile creare un'applicazione Amazon Kinesis utilizzando le API di Amazon Kinesis API o Amazon Kinesis Client Library (KCL).

Amazon Kinesis Client Library (KCL) è una libreria preconfigurata che semplifica la creazione di applicazioni Amazon Kinesis per la lettura e l'elaborazione di dati provenienti da un flusso Amazon Kinesis. KCL gestisce problemi complessi quali l'adattamento alle variazioni di volume del flusso, il bilanciamento del carico dei dati, la coordinazione di servizi distribuiti e l'elaborazione di dati con tolleranza ai guasti. KCL consente di concentrare l'attenzione sulla logica di business durante la creazione di applicazioni Amazon Kinesis.

Amazon Kinesis Connector Library è una libreria preconfigurata che semplifica l'integrazione di Amazon Kinesis con altri servizi di AWS e strumenti di terze parti. Amazon Kinesis Client Library (KCL) è un requisito per l'utilizzo di Amazon Kinesis Connector Library. La versione corrente della libreria offre connettori per Amazon DynamoDB, Amazon Redshift, Amazon S3 ed Elasticsearch. La libreria, inoltre, include connettori di esempio di ciascun tipo e file di generazione di Apache Ant per poter eseguire il codice di esempio.

Amazon Kinesis Storm Spout è una libreria preconfigurata che semplifica l'integrazione di Amazon Kinesis Data Streams con Apache Storm. La versione corrente di Amazon Kinesis Storm Spout ricerca i dati provenienti da un flusso Amazon Kinesis e li inoltra sotto forma di tuple. Sarà quindi possibile aggiungere lo spout alla topologia Storm per sfruttare Amazon Kinesis Data Streams come servizio scalabile e affidabile di acquisizione di flussi, storage e riproduzione.


Amazon Kinesis Data Streams si integra con Amazon CloudWatch per raccogliere, visionare e analizzare parametri di CloudWatch per i flussi di dati di Amazon Kinesis e gli shard all'interno di tali flussi. Per ulteriori informazioni sui parametri di Amazon Kinesis Data Streams, consulta il paragrafo Monitoring Amazon Kinesis with Amazon CloudWatch.

Amazon Kinesis Data Streams si integra con AWS Identity and Access Management (IAM), un servizio che consente di controllare gli accessi degli utenti alle risorse e ai servizi AWS. Ad esempio, è possibile creare una policy che consente solo a un utente o a un gruppo di utenti specifico di immettere dati in un flusso di Amazon Kinesis. Per ulteriori informazioni su gestione e controllo degli accessi dei flussi Amazon Kinesis, consulta Controlling Access to Amazon Kinesis Resources using IAM.

Amazon Kinesis Data Streams si integra con AWS CloudTrail, un servizio che registra le chiamate API di AWS sull'account e ne inoltra i file di log. Per ulteriori informazioni sulla registrazione delle chiamate API e per ottenere un elenco delle API di Amazon Kinesis, consulta Logging Amazon Kinesis API calls Using AWS CloudTrail.

È possibile accedere privatamente alle API Kinesis Data Streams da Amazon Virtual Private Cloud (VPC) creando un endpoint VPC. Grazie agli endpoint VPC, l'instradamento tra il cloud privato virtuale e Kinesis Data Streams viene gestito dalla rete AWS senza chiamare in causa gateway Internet, gateway NAT o connessioni VPN. La generazione più recente di endpoint VPC utilizzata da Kinesis Data Streams è basata su AWS PrivateLink, una tecnologia che permette connessioni private tra servizi AWS con interfacce ENI (Elastic Network Interface) e IP privati in un cloud privato virtuale. Per ulteriori informazioni, consultare la documentazione di AWS PrivateLink.

È possibile crittografare i dati immessi in Kinesis Data Streams tramite crittografia lato server o lato client. La crittografia lato server è una caratteristica completamente gestita che permette di crittografare e decrittografare i dati mentre vengono inoltrati o estratti dal flusso. La crittografia lato client interviene sui dati prima che vengano inoltrati nel flusso. Per ulteriori informazioni, consulta la sezione Sicurezza delle domande frequenti su Kinesis Data Streams.

Amazon Kinesis consente di contrassegnare con dei tag i flussi di dati di Amazon Kinesis per facilitare la gestione dei costi e delle risorse. Un tag è un'etichetta personalizzata in forma di coppia chiave-valore che semplifica l'organizzazione delle risorse AWS. Ad esempio, puoi applicare un tag ai flussi di dati di Amazon Kinesis per distinguere i centri di costo, in modo da suddividerli in categorie e monitorarne i costi. Per ulteriori informazioni, consulta Tagging Your Amazon Kinesis Data Streams.