Domande generali

D: Cos'è Amazon Kinesis Data Streams?

Amazon Kinesis Data Streams consente di creare applicazioni personalizzate per elaborare o analizzare flussi di dati per esigenze specialistiche. Puoi aggiungere in modo continuo a un flusso di dati di Amazon Kinesis diversi tipi di dati provenienti da centinaia di migliaia di origini, ad esempio clickstream, log di applicazioni e social media. In pochi secondi, i dati potranno essere letti ed elaborati dalle applicazioni Amazon Kinesis.

D: Quali attività sono gestite da Amazon Kinesis Data Streams per mio conto?

Amazon Kinesis Data Streams gestisce infrastruttura, storage, rete e configurazione necessari per trasmettere i dati al livello di throughput. Non è necessario occuparsi personalmente di provisioning, distribuzione, manutenzione di hardware o software oppure di altri servizi relativi ai flussi di dati. Inoltre, Amazon Kinesis Data Streams replica in modo sincrono i dati su tre zone di disponibilità, garantendo così disponibilità e durabilità dei dati elevate.

D: Cosa è possibile fare con Amazon Kinesis Data Streams?

Amazon Kinesis Data Streams è ideale per trasferire rapidamente dati dai loro produttori per elaborarli in modo continuo, ad esempio per trasformarli prima di trasmetterli a un datastore, eseguire analisi e parametri in tempo reale o ricavare flussi di dati più complessi per ulteriori elaborazioni. Di seguito sono elencati alcuni scenari comuni per utilizzare Amazon Kinesis Data Streams.

  • Alimentazione di feed di dati e log accelerata: invece di attendere la creazione di batch di dati, i produttori possono inoltrare i dati in un flusso di dati di Amazon Kinesis appena vengono prodotti, così da prevenire perdite di dati in caso di errori dei produttori. Ad esempio è possibile aggiungere in modo continuo a un flusso di dati log di applicazioni e di sistema, rendendoli disponibili in pochi secondi.
  • Report e parametri in tempo reale: è possibile estrarre parametri e generare report dai dati di un flusso di Amazon Kinesis in tempo reale. Ad esempio, un'applicazione Amazon Kinesis può elaborare parametri e report per i log dell'applicazione e di sistema a mano a mano che riceve il flusso in entrata, invece di attendere batch di dati.
  • Analisi in tempo reale: con Amazon Kinesis Data Streams, è possibile eseguire analisi dei dati in streaming in tempo reale. Ad esempio, è possibile aggiungere clickstream al flusso di dati di Amazon Kinesis e configurare l'applicazione Amazon Kinesis in modo che li analizzi in tempo reale, consentendo di ottenere approfondimenti in pochi minuti invece che in diverse ore o giorni.
  • Elaborazione di flussi complessi: è possibile creare grafi aciclici diretti o DAG (Directed Acyclic Graphs) di applicazioni Amazon Kinesis e flussi di dati. In questo caso, una o più applicazioni Amazon Kinesis possono aggiungere dati a un altro flusso di dati di Amazon Kinesis per alimentare ulteriori fasi di elaborazione.

D: Come si utilizza Amazon Kinesis Data Streams

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

D: Quali sono i limiti di Amazon Kinesis Data Streams?

Il throughput di un flusso di dati di Amazon Kinesis si ridimensiona senza alcun limite utilizzando un numero variabile di shard all'interno di un flusso. Tuttavia Amazon Kinesis Data Streams ha alcuni limiti da tenere in considerazione:

  • Di default, è possibile accedere ai record di un flusso per le 24 ore successive alla loro aggiunta al flusso. Questo limite può essere aumentato fino a 7 giorni abilitando la retention estesa dei dati.
  • Le dimensioni massime di un blob di dati (il payload di dati prima della codifica con Base64) per un record è di 1 megabyte (MB).
  • Uno shard può supportare fino a 1000 record PUT al secondo.

Per ulteriori informazioni su altre limitazioni a livello di API, consulta Amazon Kinesis Data Streams Limits.

D: In che cosa differisce Amazon Kinesis Data Streams da Amazon SQS?

Amazon Kinesis Data Streams consente l'elaborazione in tempo reale di flussi di Big Data. Consente inoltre l'ordinamento dei record e offre la possibilità di leggere e/o replicare i record nello stesso ordine in diverse applicazioni Amazon Kinesis. La Amazon Kinesis Client Library (KCL) distribuisce tutti i record per una determinata chiave di partizione allo stesso processore, facilitando la creazione di più applicazioni in grado di leggere dallo stesso flusso di dati di Amazon Kinesis (ad esempio, per l'applicazione di conteggi, aggregazioni o filtri).

Amazon Simple Queue Service (Amazon SQS) offre un servizio di accodamento in hosting affidabile e altamente scalabile per lo storage di messaggi durante il trasferimento tra più computer. Amazon SQS semplifica il trasferimento di dati tra componenti di applicazioni distribuite e consente di creare applicazioni in cui i messaggi sono elaborati separatamente (con semantica ack/fail a livello di messaggio), ad esempio flussi di lavoro automatizzati.

D: Quando è consigliato usare Amazon Kinesis Data Streams e quando Amazon SQS?

Consigliamo di usare Amazon Kinesis Data Streams quando i requisiti sono simili ai seguenti:

  • Record relativi a instradamenti verso lo stesso processore di record (come in processi MapReduce in streaming). Ad esempio, conteggio e aggregazione sono più semplici quando tutti i record per una determinata chiave sono instradati allo stesso processore di record.
  • Ordinamento di record. Ad esempio, se desideri trasferire i dati di log dall'host dell'applicazione all'host di elaborazione o archiviazione conservando l'ordine delle istruzioni dei log.
  • Utilizzo dello stesso flusso in contemporanea da parte di più applicazioni. Ad esempio, un'applicazione aggiorna in tempo reale un pannello di controllo mentre un'altra archivia i dati in Amazon Redshift. Entrambi i dati devono poter acquisire i dati dallo stesso flusso in modo indipendente e simultaneo.
  • Utilizzo di record nello stesso ordine a distanza di alcune ore. Ad esempio, un'applicazione di audit che viene eseguita alcune ore dopo un'applicazione di fatturazione. Poiché Amazon Kinesis Data Streams conserva fino a 7 giorni i dati, è possibile eseguire l'applicazione di audit fino a 7 giorni dopo l'applicazione di fatturazione.

Consigliamo di usare Amazon SQS quando i requisiti sono simili ai seguenti:

  • Semantica di messaggi (ad esempio ack/fail a livello di messaggio) e timeout visibilità. Ad esempio, desideri monitorare il completamento di ciascuna voce di una coda di elementi di lavoro in modo indipendente. Lo stato ack/fail viene monitorato da Amazon SQS, così l'applicazione non dovrà mantenere checkpoint o cursori persistenti. Amazon SQS, inoltre, eliminerà i messaggi inviati e inoltrerà nuovamente quelli con errori successivamente a un timeout visibilità.
  • Proroga di singoli messaggi. Ad esempio, desideri prorogare singoli processi in una coda. Con Amazon SQS, puoi prorogare singoli messaggi fino a 15 minuti.
  • Aumento dinamico di concorrenza/throughput in fase di lettura. Ad esempio, desideri aumentare le operazioni in lettura per una coda di lavoro finché non si risolve il backlog. Con Amazon Kinesis Data Streams, è possibile ridimensionare le risorse fino a un numero di shard necessario (anche se sarà necessario pianificare in anticipo il provisioning di un numero consono di shard).
  • Utilizzo della scalabilità trasparente di Amazon SQS. Ad esempio, vengono memorizzate nel buffer le richieste e vengono caricate le modifiche in seguito a picchi di carico o alla progressiva crescita aziendale. Poiché ogni richiesta memorizzata nel buffer può essere elaborata in modo indipendente, Amazon SQS è in grado di ricalibrare le risorse in modo trasparente in modo da gestire il carico senza alcun intervento manuale.

Concetti chiave

D: Cos'è uno shard?

Lo shard è un'unità di misura di throughput di un flusso di dati di 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 di dati. Ad esempio, è possibile creare un flusso di dati con due shard. Tale flusso di dati avrà un throughput di 2 MB al secondo in entrata e di 4 MB al secondo in uscita e consentirà fino a 2000 record PUT al secondo. Puoi monitorare parametri a livello di shard in Amazon Kinesis Data Streams e aggiungere o rimuovere shard dal flusso di dati in modo dinamico con il variare del throughput dei dati tramite il resharding del flusso.

D: Cos'è un record?

Il record è l'unità di dati memorizzati in un flusso di dati di 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 un flusso. Le dimensioni massime di un blob di dati (il payload di dati prima della codifica con in Base64) è di 1 megabyte (MB).

D: Cos'è una chiave di partizione?

Una chiave di partizione viene usata per separare e instradare i record di dati nei diversi shard di un flusso di dati. La chiave di partizione viene specificata dal produttore di dati al momento dell'aggiunta di dati nel flusso di dati di Amazon Kinesis. Ad esempio, poniamo di avere un flusso di dati 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 con la chiave A vengono aggiunti allo shard 1 e quelli con la chiave B vengono aggiunti allo shard 2.

D: Cos'è un numero di sequenza?

Il numero di sequenza è un identificatore univoco dei record. Il numero di sequenza viene assegnato da Amazon Kinesis quando un produttore di dati richiama le operazioni 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 richiestePutRecord o PutRecords, più elevati diventano i numeri di sequenza.

Kinesis Data Streams

D: Come si crea un flusso di dati di Amazon Kinesis?

Dopo la registrazione ad Amazon Web Services, è possibile creare un flusso di dati di Amazon Kinesis tramite la console di gestione o un'operazione CreateStream.

D: Come si sceglie il throughput di un flusso di dati di Amazon Kinesis?

Il throughput di un flusso di dati di Amazon Kinesis è determinato dal numero di shard nel flusso. Segui le istruzioni indicate in basso per calcolare il numero iniziale di shard con cui configurare il flusso di dati. Per regolare dinamicamente il numero di shard di un flusso di dati è possibile comunque eseguire il resharding.

  1. Calcola le dimensioni medie dei record scritti nel flusso di dati kilobyte (KB), arrotondate per eccesso a incrementi di 1 KB
  2. Effettua una stima del numero di record al secondo scritti nel flusso di dati. (number_of_records_per_second)
  3. Scegli quante applicazioni Amazon Kinesis acquisiscono in modo simultaneo e indipendente dati dal flusso. (number_of_consumers)
  4. Calcola la larghezza di banda in scrittura in entrata in KB (incoming_write_bandwidth_in_KB) moltiplicando average_data_size_in_KB per number_of_records_per_seconds.
  5. Calcola la larghezza di banda in lettura in uscita in KB (outgoing_read_bandwidth_in_KB) moltiplicando la incoming_write_bandwidth_in_KB per il number_of_consumers.

Potrai quindi calcolare il numero di shard (number_of_shards) necessario per il flusso di dati utilizzando la seguente formula:

number_of_shards = max (incoming_write_bandwidth_in_KB/1000, outgoing_read_bandwidth_in_KB/2000)

D: Qual è il throughput minimo che si può richiedere per un flusso di dati di Amazon Kinesis?

Il throughput di un flusso di dati di Amazon Kinesis si ricalibra per unità di shard. Uno shard è l'unità minima di throughput di un flusso di dati e fornisce 1 MB/s in entrata e 2 MB/s in uscita.

D: Qual è il throughput massimo che si può richiedere per un flusso di dati di Amazon Kinesis?

Il throughput di un flusso di dati di Amazon Kinesis può ridimensionarsi senza alcun limite. Di default, ogni account può effettuare il provisioning di 10 shard per regione. Per richiedere più di 10 shard per regione, usa il modulo alla pagina Amazon Kinesis Data Streams Limits.

D: In che modo le dimensioni dei record influiscono sul throughput di un flusso di dati di Amazon Kinesis?

Uno shard fornisce una velocità di input dati di 1 MB/sec e supporta fino a 1.000 record PUT al secondo. Di conseguenza, se le dimensioni dei record sono inferiori a 1 KB, la velocità di input di uno shard sarà inferiore a 1 MB/s, limitando il numero massimo di record PUT al secondo.

Aggiunta di dati a flussi di dati Kinesis

D: Come si aggiungono dati a un flusso di dati di Amazon Kinesis?

È possibile aggiungere dati a un flusso di dati di Amazon Kinesis tramite le operazioni PutRecord e PutRecords, la Amazon Kinesis Producer Library (KPL) oppure Amazon Kinesis Agent.

D: Qual è la differenza tra PutRecord e PutRecords?

PutRecord consente un solo record di dati per chiamata API, mentre PutRecords consente più record di dati per chiamata API. Per ulteriori informazioni sulle operazioni PutRecord e PutRecords, consulta PutRecord e PutRecords.

D: Cos'è Amazon Kinesis Producer Library (KPL)?

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

D: Quali piattaforme o linguaggi di programmazione è possibile usare per accedere all'API di Amazon Kinesis?

L'API di Amazon Kinesis è disponibile nei kit SDK di Amazon Web Services. Per consultare un elenco di piattaforme e linguaggi di programmazione per i kit SDK di Amazon Web Services, consulta la pagina Strumenti per Amazon Web Services.

D: In quali linguaggi di programmazione è disponibile Amazon Kinesis Producer Library (KPL)?

La base di Amazon Kinesis Producer Library (KPL) è un modulo in C++ e può essere compilata per funzionare con qualsiasi piattaforma con un compilatore C++ recente. La libreria è al momento disponibile in un'interfaccia Java. Stiamo valutando la possibilità di aggiungere il supporto per altri linguaggi di programmazione.

Cos'è Amazon Kinesis Agent?

Amazon Kinesis Agent è un'applicazione Java preinstallata che offre un modo semplice per raccogliere e inviare dati in un flusso di dati di 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 di dati. Per ulteriori informazioni, consulta Writing with Agents.

D: Quali piattaforme supporta Amazon Kinesis Agent?

Amazon Kinesis Agent al momento supporta Amazon Linux e Red Hat Enterprise Linux.

D: Dove è possibile ottenere Amazon Kinesis Agent?

Per scaricare e installare Amazon Kinesis Agent, usa i seguenti comandi e collegamenti:

In Amazon Linux: sudo yum install –y aws-kinesis-agent

In Red Hat Enterprise Linux: sudo yum install –y https://s3.amazonaws.com/streaming-data-agent/aws-kinesis-agent-latest.amzn1.noarch.rpm

Da GitHub: awlabs/amazon-kinesis-agent

D: Come si utilizza Amazon Kinesis Agent?

Dopo averlo installato sui server, è possibile configurare Amazon Kinesis Agent in modo che monitori determinati file su disco, inviando in modo continuo nuovi dati al flusso di dati di Amazon Kinesis. Per ulteriori informazioni, consulta Writing with Agents.

D: Cosa accade se si superano i limiti di capacità di un flusso di dati di Amazon Kinesis mentre il produttore di dati sta ancora aggiungendo dati al flusso?

I limiti di capacità di un flusso di dati di Amazon Kinesis sono definiti dal numero di shard nel flusso di dati. Questi limiti possono essere superati in base a throughput dei dati o numero di record PUT. Quando i limiti di capacità vengono superati, le chiamate di immissione dati verranno rifiutate con un'eccezione ProvisionedThroughputExceeded. Se la causa è un aumento temporaneo della velocità di input dei dati del flusso, le richieste verranno completate in seguito ai nuovi tentativi del producer di dati. Se la causa è un aumento prolungato della velocità di input dei dati del flusso, occorrerà aumentare il numero di shard nel flusso di dati per garantire capacità sufficiente per il completamento delle chiamate di immissione dati. In entrambi i casi, i parametri di Amazon CloudWatch consentono di monitorare il variare della velocità di input dei dati del flusso e la comparsa di eccezioni ProvisionedThroughputExceeded.

D: Quali dati influiscono sul throughput di dati di un flusso di dati di Amazon Kinesis durante una chiamata PutRecord o PutRecords?

I parametri necessari per una chiamata PutRecord o PutRecords sono il blob di dati, la chiave di partizione e il nome del flusso di dati. Le dimensioni del blob di dati (prima della codifica Base64) e della chiave di partizione influenzano negativamente il throughput di dati del flusso di dati di Amazon Kinesis, determinato dal numero di shard nel flusso.

Fan-out avanzato

D: Che cos'è il fan-out avanzato?

Il fan-out avanzato è una caratteristica opzionale per i consumer di Kinesis Data Streams che fornisce pipe logiche di throughput logiche da 2 MB al secondo tra clienti e shard. Questo permette ai clienti di dimensionare il numero di consumer leggendo da un flusso di dati in parallelo, mantenendo al contempo prestazioni elevate.

D: I consumer come utilizzano il fan-out avanzato?

I consumer devono innanzitutto registrarsi al servizio Kinesis Data Streams. La registrazione del consumer attiva in modo predefinito il fan-out avanzato. Se si utilizza KCL, il KCL version 2.x si occupa di registrare i consumer automaticamente, utilizzando il nome dell'applicazione KCL come nome del consumer. Una volta registrati, tutti i consumer otterranno le pipe di throughput logiche di fan-out avanzato, assegnate per loro. Quindi, i consumer utilizzano l'API HTTP/2 SubscribeToShard per richiamare i dati all'interno di queste pipe di throughput. L'API HTTP/1 GetRecords attualmente non supporta il fan-out avanzato, ci sarà bisogno pertanto di aggiornare a KCL 2.x7 o, in alternativa, registrare il consumer e fargli effettuare la chiamata API SubscribeToShard.

D: Come funziona il fan-out avanzato utilizzato dal consumer?

I consumer utilizzano il fan.out avanzato richiamando i dati con l'API SubscribeToShard. Il nome del consumer registrato viene utilizzato nell'API SubscribeToShard, in questo modo il consumer potrà sfruttare i vantaggi del fan-out avanzato assegnatogli.

D: Quando dovrei utilizzare il fan-out avanzato?
È bene utilizzare il fan-out avanzato se si hanno, o ci si aspetta di avere, più consumer che richiamano i dati da un flusso in parallelo, o almeno un consumer che necessità l'API SubscribeToShard per fornire velocità di disitribuzione dei dati sub-200 ms tra produttori e consumer.

D: Posso permettere ad alcuni consumer di utilizzare il fan-out avanzato e ad altri no?

Si, è possibile permettere a più consumer di utilizzare il fan-out avanzato e ad alcuni no utilizzando il fan-out avanzato nello stesso momento. L'utilizzo del fan-out avanzato non ha effetto sui limiti di shards per l'utilizzo tradizionale di GetRecords.

D: C'è un limite al numero di consumer che possono utilizzare il fan-out avanzato in un determinato flusso?

Esiste un limite predefinito di 5 consumer che possono utilizzare il fan-out avanzato per ogni flusso di dati. Qualora fossero necessari più di 5 consumer è possibile inviare una richiesta di aumento del limite tramite AWS Support. Ricorda che è possibile avere più di 5 consumer totali in lettura su un flusso se 5 di essi utilizzano il fan-out avanzato e gli altri no, nello stesso momento.

D: Come fanno i consumer a registrarsi per utilizzare il fan-out avanzato e l'API HTTP/2 SubscribeToShard?

Si raccomanda l'utilizzo di KCL 2.x,che registra automaticamente il consumer e utilizza sia il fan-out avanzato che l'API HTTP/2 SubscribeToShard. In alternativa, è possibile registrare manualmente il consumer utilizzando l'API RegisterStreamConsumer e utilizzare l'API SubscribeToShard con il nome del consumer registrato.

D: È previsto un costo associato all'utilizzo del fan-out avanzato?

Si, il costo è orario e on demand per ogni combinazione di shard in un flusso e consumer (consumer/shard all'ora) registrato per l'utilizzo del fan-out avanzato, in aggiunta al costo del recupero dei dati per ogni GB recuperato. Visita la pagina dei prezzi di Kinesis Data Streams per ulteriori dettagli.

D: Come viene calcolato il costo orario consumer/shard?

Il costo orario consumer/shard viene calcolato moltiplicando il numero dei consumer registrati di un flusso con il numero degli shard presenti. Per esempio, se un'ora consumer/shard costa 0,015 USD, per un flusso di dati da 10 shard, questo consumer che utilizza il fan-out avanzato sarebbe in grado di leggere da 10 sards e quindi incorrere in un addebito orario di 0,15 USD all'ora (1 consumer x 10 shard x 0,015 USD per ogni ora consumer/shard). Se ci fossero due consumer registrati per il fan-out avanzato simultaneamente, il costo orario totale consumer/shard sarebbe di 0,30 USD all'ora (2 consumer x 10 shard x 0,015 USD).

D: La fatturazione oraria consumer/shard per il fan-out avanzato viene ripartita automaticamente se termino o inizio un consumer entro l'ora?

Si, si paga solamente per la porzione ripartita dell'ora in cui il consumer è stato registrato per utilizzare il fan-out avanzato.

D: Come funziona la fatturazione del recupero dei dati in fan-out avanzato?

Si paga una tariffa bassa per ogni GB che viene misurata per ogni byte di dati recuperati dai consumer che utilizzato il fan-out avanzato. Non è previsto alcun arrotondamento del prezzo o un minimo di distribuzione.

D: Devo cambiare i miei produttori o il mio flusso di dati per utilizzare il fan-out avanzato?

No, il fan-out avanzato può essere attivato senza ripercussioni sui produttori di dati o i flussi.

Lettura ed elaborazione dei dati provenienti da flussi di dati Kinesis

D: Cos'è un'applicazione Amazon Kinesis?

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

D: Cos'è Amazon Kinesis Client Library (KCL)?

Amazon Kinesis Client Library (KCL) per Java | Python | Ruby | Node.js | .NET è una libreria preconfigurata che semplifica la creazione di applicazioni Amazon Kinesis per la lettura e l'elaborazione di dati provenienti da un flusso di dati di Amazon Kinesis.

KCL gestisce problemi complessi quali l'adattamento alle variazioni di volume del flusso di dati, 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. KLC 2.x supporta le API HTTP/1 GetRecords e HTTP/2 SubscribeToShard con il fan-out avanzato per il recupero di dati da un flusso. KCL 1.x non supporta l'API SubscribeToShard o il fan-out avanzato.

D: Come faccio ad aggiornare da KCL 1.x a 2.x per utilizzare SubscribeToShard e il fan-out avanzato?

Consulta la documentazione per l'utente di Kinesis Data Streams per imparare come aggiornare da KCL 1.x a KCL 2.x.

D: Cos'è l'API SubscribeToShard?

L'API SubscribeToShard è un'API di streaming che spinge i dati dagli shard ai consumer attraverso una connessione persistente senza un ciclo di richiesta dal client. L'API SubscribeToShard utilizza il protocollo HTTP/2 per distribuire dati a consumer registrati quando i dati arrivano allo shard, normalmente in 70 ms, offrendo così una distribuzione del 65% più veloce rispetto all'API GetRecords. I consumer potranno così approfittare di consegne più veloci anche con più consumer registrati in lettura dallo stesso shard.

D: Posso utilizzare SubscribeToShard senza utilizzare il fan-out avanzato?

No, SubscribeToShard necessita del fan-out avanzato, il che significa che è anche necessario registrare il consumer con il servizio Kinesis Data Streams prima di poter utilizzare SubscribeToShard.

D: Quanto dura la connessione persistente di SubscribeToShard?

La connessione persistente può durare fino a 5 minuti.

D: La Kinesis Client Library (KCL) supporta SubscribeToShard?

Si, la versione 2.x della KCL utilizza SubscribeToShard e il fan-out avanzato per recuperare i dati con prestazioni elevate da un flusso di dati Kinesis.

D: È previsto un costo per l'utilizzo di SubscribeToShard?

No, non è previsto alcun costo aggiuntivo per l'utilizzo di SubscribeToShard, ma è necessario utilizzare SubscribeToShard con il fan-out avanzato che ha un costo orario per combinazione consumer/shard e GB di dati distribuiti dal fan-out avanzato.

D: È necessario utilizzare il fan-out avanzato per utilizzare SubscribeToShard'

Si, per utilizzare SubscribeToShard è necessario registrare i propri consumer, la registrazione attiva il fan-out avanzato. Il consumer utilizzerà in modo predefinito il fan-out avanzato, automaticamente quando i dati vengono recuperati da SubscribeToShard.

D: Cos'è Amazon Kinesis Connector Library?

Amazon Kinesis Connector Library è una libreria preconfigurata che semplifica l'integrazione di Amazon Kinesis Data Streams con altri servizi di AWS e strumenti di terze parti. Per poter utilizzare Amazon Kinesis Connector Library, è necessario disporre di Amazon Kinesis Client Library (KCL) per Java | Python | Ruby | Node.js | .NET. 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.

D: Cos'è Amazon Kinesis Storm Spout?

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 di dati di 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.

D: In quali linguaggi di programmazione sono disponibili Amazon Kinesis Client Library (KCL), Amazon Kinesis Connector Library e Amazon Kinesis Storm Spout?

Amazon Kinesis Client Library (KCL) è al momento disponibile in Java, Python, Ruby, Node.js e .NET. Amazon Kinesis Connector Library e Amazon Kinesis Storm Spout sono al momento disponibili in Java. Stiamo valutando la possibilità di aggiungere il supporto per altri linguaggi di programmazione.

D: È necessario utilizzare Amazon Kinesis Client Library (KCL) per creare un'applicazione Amazon Kinesis?

No, per creare un'applicazione Amazon Kinesis è possibile anche impiegare l'API di Amazon Kinesis. Consigliamo tuttavia l'utilizzo di Amazon Kinesis Client Library (KCL) for Java | Python | Ruby | Node.js | .NET, se applicabile, perché è in grado di sostenere elevati carichi di lavoro associati con l'elaborazione di flussi distribuiti, rendendo lo sviluppo di applicazioni più efficiente.

D: In che modo Amazon Kinesis Client Library (KCL) interagisce con le applicazioni Amazon Kinesis?

Amazon Kinesis Client Library (KCL) per Java | Python | Ruby | Node.js | .NET agisce come intermediario tra Amazon Kinesis Data Streams e le applicazioni Amazon Kinesis. KCL usa l'interfaccia IRecordProcessor per comunicare con l'applicazione. L'interfaccia viene implementata nell'applicazione e KCL ne richiama il codice utilizzando i metodi dell'interfaccia.

Per ulteriori informazioni su come creare applicazioni con KCL, consulta Developing Consumer Applications for Amazon Kinesis Using the Amazon Kinesis Client Library.

D: Cosa sono i worker e i processore di record generati da Amazon Kinesis Client Library (KCL)?

Un'applicazione Amazon Kinesis può disporre di diverse istanze di applicazione e un worker è un'unità di elaborazione che esegue la mappatura a ciascuna di queste istanze. Un processore di record è l'unità di elaborazione che elabora i dati provenienti da uno shard di un flusso di dati di Amazon Kinesis. Un worker esegue la mappatura a uno o più processori di record. Un processore di record esegue la mappatura a uno shard ed elabora i record provenienti da quello shard.

All'avvio, le applicazioni richiamano Amazon Kinesis Client Library (KCL) per Java | Python | Ruby | Node.js | .NET per creare l'istanza di un worker. Tramite questa chiamata, KCL ottiene informazioni di configurazione per l'applicazione, ad esempio il nome del flusso di dati e le credenziali di AWS. La chiamata consente anche di inoltrare un riferimento all'implementazione IRecordProcessorFactory. KCL utilizza questo elemento per creare nuovi processori di record secondo necessità, per elaborare i dati provenienti dal flusso di dati. KCL comunica con questi processori di record utilizzando l'interfaccia IRecordProcessor.

D: Come monitora Amazon Kinesis Client Library (KCL) i record di dati che vengono elaborati da un'applicazione Amazon Kinesis?

Amazon Kinesis Client Library (KCL) per Java | Python | Ruby | Node.js | .NET crea automaticamente una tabella Amazon DynamoDB per ogni applicazione Amazon Kinesis Application, in modo da monitorare e conservare le informazioni sullo stato, tra cui gli eventi di resharding e i checkpoint del numero di sequenza. La tabella DynamoDB ha lo stesso nome dell'applicazione, perciò è importante che il nome dell'applicazione non crei conflitti con tabelle DynamoDB esistenti nello stesso account all'interno della stessa regione.

Tutti i worker associati allo stesso nome di applicazione funzionano sullo stesso flusso di dati di Amazon Kinesis. Eseguendo un'istanza aggiuntiva dello stesso codice di applicazione, ma con un nome diverso, la seconda istanza viene considerata un'applicazione separata che opera sullo stesso flusso di dati.

Sull'account AWS saranno addebitati i costi associati ad Amazon Kinesis Data Streams e alla tabella Amazon DynamoDB.

Per ulteriori informazioni sulle modalità di monitoraggio dello stato dell'applicazione da parte di KCL, consulta Tracking Amazon Kinesis Application state.

D: Come è possibile ricalibrare automaticamente la capacità di elaborazione Amazon Kinesis Amazon Kinesis Client Library (KCL)?

È possibile creare diverse istanze di un'applicazione Amazon Kinesis ed eseguirle su un set di istanze Amazon EC2 che fanno parte di un gruppo di Auto Scaling. All'aumentare dei requisiti di elaborazione, verrà creata automaticamente un'istanza Amazon EC2 contenente un'istanza dell'applicazione. Amazon Kinesis Client Library (KCL) per Java | Python | Ruby | Node.js | .NET genererà quindi un worker per la nuova istanza e sposterà automaticamente i processori di record dalle istanze sovraccariche alla nuova istanza.

D: Perché la chiamata GetRecords non restituisce alcun risultato anche se sono presenti dati nel flusso di dati di Amazon Kinesis?

Un motivo possibile è che non sono presenti record nella posizione specificata dall'iteratore di shard corrente. Questa situazione può verificarsi anche se è in uso TRIM_HORIZON come tipo di iteratore di shard. Un flusso di dati di Amazon Kinesis rappresenta un flusso continuo di dati. Richiamando l'operazione GetRecords ciclicamente, verrà restituito il record richiesto quando l'iteratore di shard avanza nella posizione in cui è memorizzato.

D: Cosa significa il risultato ApproximateArrivalTimestamp restituito dall'operazione GetRecords?

Ogni record include un valore chiamato ApproximateArrivalTimestamp. Viene impostato quando il record è ricevuto e memorizzato in Amazon Kinesis. La precisione del time stamp è al millesimo di secondo; l'accuratezza della rilevazione non è garantita. Ad esempio, i record in uno shard o in un flusso di dati può avere un time stamp sfasato.

D: Cosa accade se si superano i limiti di capacità di un flusso di dati di Amazon Kinesis mentre l'applicazione Amazon Kinesis sta leggendo i dati provenienti dal flusso?

I limiti di capacità di un flusso di dati di Amazon Kinesis sono definiti dal numero di shard nel flusso di dati. Questi limiti possono essere superati in base a throughput dei dati o chiamate di lettura dei dati. Quando i limiti di capacità vengono superati, le chiamate di lettura dati verranno rifiutate con un'eccezione ProvisionedThroughputExceeded. Se la causa è un aumento temporaneo della velocità di output dei dati del flusso di dati, le richieste verranno completate in seguito ai nuovi tentativi dell'applicazione Amazon Kinesis. Se la causa è un aumento prolungato della velocità di output dei dati del flusso, occorrerà aumentare il numero di shard nel flusso di dati per garantire capacità sufficiente per il completamento delle chiamate di lettura dei dati. In entrambi i casi, i parametri di Amazon CloudWatch consentono di monitorare il variare della velocità di output dei dati del flusso e la comparsa di eccezioni ProvisionedThroughputExceeded.

Gestione di flussi di dati Kinesis

D: Come si modifica il throughput di un flusso di dati di Amazon Kinesis?

Esistono due modi per modificare il throughput di un flusso di dati. Puoi usare l'API UpdateShardCount o la Console di gestione AWS per ridimensionare il numero di shard in un flusso di dati, oppure modificare il throughput di un flusso di dati di Amazon Kinesis cambiando il numero di shard nel flusso (operazione chiamata resharding).

D: Quanto richiede la modifica del throughput di un flusso di dati di Amazon Kinesis tramite l'API UpdateShardCount o la Console di gestione AWS?

Le richieste di ridimensionamento risorse impiegano in genere alcuni minuti. Le richieste di maggiori dimensioni richiedono una quantità di tempo leggermente maggiore.

D: Quali sono le limitazioni dell'API UpdateShardCount?

Per informazioni sulle limitazioni dell'API UpdateShardCount, consulta Amazon Kinesis Data Streams Service API Reference.

D: Amazon Kinesis Data Streams mantiene la disponibilità anche quando viene modificato il throughput di un flusso di dati tramite API UpdateShardCount o resharding?

Sì. È possibile continuare ad aggiungere e leggere dati dal flusso di dati di Amazon Kinesis anche quando è in uso l'API UpdateShardCount o è in corso il resharding per modificarne il throughput.

D: Cos’è il resharding?

Il resharding è il processo impiegato per ricalibrare il flusso di dati dividendo o unendo gli shard. In una divisione di shard, un singolo shard viene diviso in due shard, aumentando il throughput del flusso di dati. In un'unione di shard, due shard vengono unite in un singolo shard, diminuendo il throughput del flusso di dati. Per ulteriori informazioni, consulta la sezione Resharding a Data Stream nella Amazon Kinesis Data Streams Developer Guide.

D: Con quale frequenza è possibile modificare il throughput di un flusso di dati di Amazon Kinesis tramite resharding?

Un'operazione di resharding, ovvero una divisione di shard o un'unione di shard, richiede pochi secondi. È possibile eseguire una sola operazione di resharding alla volta. Di conseguenza, per un flusso di dati di Amazon Kinesis che dispone di un solo shard, è possibile raddoppiare il throughput in pochi secondi dividendo l'unico shard. In un flusso di dati con 1000 shard, raddoppiare il throughput dividendo tutti gli shard richiede 30.000 secondi (8,3 ore). Se è possibile prevedere un aumento dei requisiti di throughput, consigliamo di pianificare l'operazione di resharding in anticipo.

D: Come si modifica il periodo di retention dei dati di un flusso di dati di Amazon Kinesis?

Amazon Kinesis può conservare di default i dati per un periodo massimo di 24 ore. Il periodo di retention dei dati può essere aumentato fino a 7 giorni abilitando la retention estesa dei dati.

Per ulteriori informazioni sulla retention estesa dei dati, consulta Changing Data Retention Period.

D: Come è possibile monitorare il funzionamento e le prestazioni di un flusso di dati di Amazon Kinesis?

La console di gestione dei flussi di dati di Amazon Kinesis mostra parametri operativi e prestazionali chiave, ad esempio il throughput di dati in entrata e in uscita dei flussi di dati di Amazon Kinesis. 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 per gli shard all'interno di tali flussi. Per ulteriori informazioni sui parametri di Amazon Kinesis Data Streams, consulta Monitoring Amazon Kinesis Data Streams with Amazon CloudWatch.

Tutti i parametri a livello di flusso sono gratuiti. Tutti i parametri a livello di shard sono invece soggetti alle Tariffe di Amazon CloudWatch.

D: Come è possibile controllare e gestire gli accessi a un flusso di dati di Amazon Kinesis?

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 aggiungere dati in un flusso di dati di Amazon Kinesis. Per ulteriori informazioni su gestione e controllo degli accessi dei flussi di dati, consulta Controlling Access to Amazon Kinesis Data Streams Resources using IAM.

D: Come è possibile creare un log delle chiamate API inoltrate a un flusso di dati di Amazon Kinesis per analisi di sicurezza e risoluzione dei problemi di funzionamento?

Amazon Kinesis si integra con Amazon 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 operazioni API di Amazon Kinesis, consulta Logging Amazon Kinesis API calls Using Amazon CloudTrail.

D: Come è possibile gestire in modo efficiente i flussi di dati di Amazon Kinesis e i relativi costi?

Amazon Kinesis Data Streams 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 per distinguere i centri di costo, in modo da suddividerli in categorie e monitorarne i costi. Per ulteriori informazioni sull'applicazione di tag in Amazon Kinesis Data Streams, consulta Tagging Your Amazon Kinesis Data Streams.

D: In che modo è possibile descrivere l'utilizzo del limite di shard?

Puoi capire come stai utilizzando il limite di shard per un account tramite l'API DescribeLimits. Questa API restituisce il limite di shard e il numero di shard aperti nell'account. Se ti occorre aumentare il limite di shard, contattaci.

Sicurezza

D: I dati sono al sicuro utilizzando Kinesis Data Streams?

Kinesis è un servizio protetto di default. Solo i titolari dell'account e del flusso di dati possono accedere alle risorse Kinesis create. Kinesis è provvisto di funzionalità di autenticazione per controllare l'accesso ai dati. È possibile utilizzare le policy di AWS IAM per fornire in modo selettivo le autorizzazioni a utenti o gruppi di utenti. Inoltre, è possibile impiegare il protocollo HTTPS per inoltrare e ricevere dati da Kinesis tramite endpoint SSL. Se occorrono ulteriori livelli di sicurezza, è possibile impiegare la crittografia lato server e utilizzare chiavi master di AWS KMS per crittografare i dati contenuti nei flussi di dati. AWS KMS permette di utilizzare le chiavi master generate automaticamente oppure di importare le proprie chiavi nel servizio. Infine, è possibile utilizzare librerie di crittografia personalizzate lato client prima di caricare i dati in Kinesis.

D: È possibile accedere privatamente alle API Kinesis Data Streams da Amazon Virtual Private Cloud (VPC) senza usare IP pubblici?

Sì, è 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 su PrivateLink, consulta la relativa documentazione.

Crittografia

D: È possibile crittografare i dati caricati in un flusso di dati Kinesis?

Sì, sono disponibili due opzioni per la crittografia dei dati in un flusso di dati Kinesis. È possibile impiegare una crittografia lato server, una caratteristica completamente gestita che permette di crittografare e decrittografare i dati mentre vengono inoltrati o estratti dal flusso di dati. In alternativa è possibile scrivere i dati crittografati in un flusso di dati applicando la crittografia lato client.

D: Qual è il vantaggio di utilizzare la crittografia lato server piuttosto che quella lato client?

I clienti spesso scelgono la crittografia lato server per uno dei seguenti motivi:

  • Applicare la crittografia lato client è più difficile
  • Desiderano un secondo livello di sicurezza oltre alla crittografia lato client
  • Gli schemi di gestione delle chiavi lato client sono complessi da implementare

D: Cos'è la crittografia lato server?

La crittografia lato server per Kinesis Data Streams crittografa automaticamente i dati utilizzando una chiave master di AWS KMS o CMK (Client Master Key) prima che vengano scritti nel livello di storage del flusso di dati, decrittografandoli quando vengono ripristinati. La crittografia impedisce la scrittura e la lettura di payload e di chiave di partizione finché l'utente che desidera eseguire una di queste operazioni non ottiene un'autorizzazione a utilizzare la chiave selezionata per la crittografia del flusso di dati. Di conseguenza, la crittografia lato server può semplificare la soddisfazione dei requisiti di conformità e di sicurezza interni.

Con la crittografia lato server, le applicazioni lato client (producer e consumer) non necessitano di alcuna impostazione di crittografia né devono gestire chiavi CMK oppure operazioni di crittografia; i dati sono crittografati sia quando sono inattivi sia quando sono in transito, grazie al servizio Kinesis Data Streams. Tutte le chiavi CMK utilizzate dalla caratteristica di crittografia lato server sono fornite da AWS KMS. AWS KMS semplifica l'utilizzo di chiavi CMK gestite da AWS per Kinesis (un metodo che permette di applicare la crittografia con un semplice clic), chiavi CMK personali generate da AWS KMS oppure chiavi CMK importate.

D: È disponibile una guida alle operazioni di base per la crittografia lato server?

Sì, è disponibile nella documentazione.

D: La crittografia lato server interferisce con l'interazione tra le applicazioni e Amazon Kinesis Data Streams?

È possibile. Dipende dalla chiave utilizzata per la crittografia e dalle autorizzazioni che governano l'accesso alla chiave.

  • Se usi la chiave CMK gestita da AWS (alias chiave = aws/kinesis) le applicazioni non saranno influenzate dalla crittografia.
  • Se invece usi una chiave master differente, ad esempio una chiave master personalizzata di AWS KMS oppure una importata nello stesso servizio, e se producer e consumer di un flusso di dati non ottengono le autorizzazioni a impiegare la chiave CMK di AWS KMS usata per la crittografia, le richieste PUT e GET non andranno a buon fine. Prima di poter utilizzare la crittografia lato server, è necessario configurare le policy per le chiavi AWS KMS in modo che siano consentite crittografia e decrittografia dei messaggi. Per esempi e approfondimenti sulle autorizzazioni di AWS KMS, consulta la sezione AWS KMS API Permissions: Actions and Resources Reference nel documento AWS Key Management Service Developer Guide oppure le linee guida sulle autorizzazioni nella documentazione per l'utente sulla crittografia lato server Kinesis Data Streams.

D: Sono previsti costi aggiuntivi associati all'uso della crittografia lato server?

Sì; tuttavia, se usi una chiave CMK gestita da AWS per Kinesis e non superi l'utilizzo previsto dal piano gratuito dell'API KMS, potrai utilizzare la crittografia lato server senza alcun costo. Di seguito sono descritti i costi delle risorse:

Chiavi:

  • La chiave CMK gestita da AWS per Kinesis (alias = "aws/kinesis") è gratuita.
  • Le chiavi di KMS generate dall'utente sono soggette ai costi di KMS. Ulteriori informazioni.

Utilizzo dell'API KMS:

  • I costi di utilizzo dell'API si applicano per ogni chiave CMK, incluse quelle personalizzate. Kinesis Data Streams richiama KMS ogni 5 minuti circa, quando è impostata la rotazione delle chiavi dati. In un mese di 30 giorni, il costo totale delle chiamate API KMS avviate da Kinesis Data Streams è di qualche dollaro. Questi costi ovviamente aumentano di pari passo con il numero di credenziali utente utilizzate per producer o consumer di dati, perché ogni singola credenziale utente richiede una chiamata API univoca ad AWS KMS. Quando vengono utilizzati ruoli IAM per l'autenticazione, ogni chiamata assume-role-call darà vita a credenziali utente univoche; potrebbe essere utile memorizzare nella cache tali credenziali per risparmiare sui costi di KMS.

D: Quali regioni AWS offrono la crittografia lato server di Kinesis Data Streams?

La crittografia lato server di Kinesis Data Streams è disponibile nella regione AWS GovCloud e in tutte le regioni pubbliche eccetto Cina (Pechino).

D: In che modo è possibile avviare, aggiornare o rimuovere la crittografia lato server da un flusso di dati?

Per eseguire queste operazioni è necessario utilizzare la Console di gestione AWS o il kit SDK AWS. Per ulteriori informazioni, consulta la guida all'utilizzo della crittografia lato server di Kinesis Data Streams.

D: Quale algoritmo di crittografia viene impiegato dalla crittografia lato server?

Kinesis Data Streams usa l'algoritmo AES a 256 bit e GCM.

D: Se viene crittografato un flusso di dati su cui sono già stati scritti dei dati, cifrati o in testo semplice, saranno anch'essi crittografati o decrittografati in caso di aggiornamento della crittografia?

No, solo i nuovi dati scritti nel flusso di dati saranno crittografati (o lasciati senza crittografia) in caso di nuova applicazione della crittografia.

D: La crittografia lato server per Kinesis Data Streams a cosa viene applicata?

La crittografia lato server viene applicata al payload del messaggio e alla chiave di partizione, specificata dalle applicazioni producer del flusso di dati.

D: La crittografia lato server è una caratteristica specifica dello shard o del flusso?

La crittografia lato server è una caratteristica specifica del flusso.

D: È possibile modificare la chiave CMK che è stata utilizzata per crittografare un flusso di dati specifico?

Sì, è possibile usare la Console di gestione AWS o il kit SDK AWS per scegliere una nuova chiave master da applicare a un flusso di dati specifico.

D: Qual è il ciclo di vita della crittografia dei dati dal momento in cui vengono inseriti in un flusso di dati Kinesis con crittografia lato server finché non vengono ripristinati?

Il seguente schema descrive l'utilizzo da parte di Kinesis Data Streams delle chiavi CMK di AWS KMS per la crittografia dei messaggi prima che vengano memorizzati nel percorso PUT e la relativa decrittografia in seguito al ripristino in un percorso GET. Ogni volta che vengono richiamati uno o più putRecord o getRecord in un flusso di dati con crittografia lato server, Kinesis e AWS KMS eseguono le seguenti operazioni (inclusa la crittografia).

  1. I dati vengono inviati dall'applicazione Kinesis producer del cliente (client) in Kinesis tramite HTTPS con SSL.
  2. I dati vengono ricevuti da Kinesis e memorizzati nella RAM; viene applicata la crittografia al payload e alla chiave di partizione di un record.
  3. Kinesis richiede materiale per la generazione di chiavi in input o IKM (Input Keying Material) in testo semplice e una copia di tale materiale viene crittografata utilizzando la chiave master di KMS selezionata dal cliente.
  4. AWS KMS crea materiale IKM, lo crittografa impiegando la chiave master e inoltra in Kinesis sia la versione in testo semplice sia quella crittografata.
  5. Kinesis usa IKM in testo semplice per ottenere chiavi dati univoche per ogni record.
  6. Kinesis crittografa il payload e la chiave di partizione utilizzando le chiavi dati e rimuove la chiave in testo semplice dalla memoria.
  7. Kinesis allega il materiale IKM crittografato ai file crittografati.
  8. Il materiale IKM in testo semplice viene memorizzato nella cache per poter essere riutilizzato, con una scadenza di 5 minuti.
  9. Kinesis distribuisce il messaggio crittografato allo store di back-end, dove viene memorizzato sotto forma di dati inattivi e reso ripristinabile tramite una chiamata getRecords.

Ogni volta che viene richiamato un getRecord, Kinesis e AWS KMS eseguono le seguenti operazioni (inclusa la decrittografia).

  1. Quando viene effettuata una chiamata getRecords, il front-end di Kinesis ripristina il record crittografato dal servizio di back-end.
  2. Kinesis inoltra una richiesta a KMS utilizzando un token generato dalla richiesta del cliente. AWS KMS la autorizza.
  3. Kinesis decrittografa il materiale IKM crittografato memorizzato insieme al record.
  4. Kinesis ricrea le chiavi dati dei singoli record dal materiale IKM decrittografato.
  5. Se l'autorizzazione viene confermata, Kinesis decrittografa il payload e rimuove la chiave dati in testo semplice dalla memoria.
  6. Kinesis inoltra il payload tramite HTTPS con SSL al consumer Kinesis (client) che richiede il record.

Prezzi e fatturazione

D: Amazon Kinesis Data Streams è disponibile nel piano gratuito di AWS?

Amazon Kinesis Data Streams non è attualmente disponibile nel piano gratuito di AWS. Il piano gratuito di AWS è un programma che offre prove gratuite per una serie di servizi AWS. Per ulteriori informazioni, consulta la pagina Web relativa al piano gratuito di AWS.

D: Quanto costa Amazon Kinesis Data Streams?

I prezzi di Amazon Kinesis Data Streams sono calcolati in base al consumo effettivo. Non sono previsti pagamenti anticipati né tariffe minime: paghi solo le risorse che usi. I prezzi di Amazon Kinesis Data Streams si basano su due fattori base e un fattore opzionale.

  • Il costo orario degli shard è determinato dal numero di shard all'interno di un flusso di dati di Amazon Kinesis.
  • Il costo delle unità di payload PUT è determinato dal numero di unità di payload da 25 KB aggiunte dai produttori di dati al flusso.

Opzionale:

  • Il costo, opzionale, della retention estesa dei dati è determinata dal numero di shard per ora del flusso di dati. Quando viene abilitata la retention estesa dei dati, si paga la tariffa per la retention estesa per ogni shard nel flusso.
  • Il fan-out avanzato è un costo opzionale con due dimensioni di costo: le ore consume/shard e i recuperi dei dati. Le ore consumer/shard si riferiscono al numero di shard in un flusso moltiplicato per il numero di consumer che utilizzano il fan-out avanzato. I recuperi dei dati sono determinati dal numero di GB distribuiti ai consumer mediante il fan-out avanzato. 

Per ulteriori informazioni sui costi di Amazon Kinesis Data Streams, consulta la pagina dei prezzi di Amazon Kinesis Data Streams.

D: Il costo delle unità di payload PUT varia se viene usata l'operazione PutRecords invece dell'operazione PutRecord?

La tariffa per le unità di payload PUT viene calcolata in base al numero di unità di payload da 25 KB aggiunte a un flusso di dati di Amazon Kinesis. Il costo delle unità di payload PUT è quindi lo stesso, sia che usi l'operazione PutRecords, sia che usi l'operazione PutRecord.

D: Vengono addebitati i costi anche degli shard con stato "CLOSED"?

Uno shard può avere lo stato "CLOSED" dopo un resharding. Quando uno shard ha lo stato "CLOSED", non viene addebitato alcun costo.

D: Durante l'utilizzo di Amazon Kinesis Data Streams, si applicano anche altre tariffe?

Se l'esecuzione di applicazioni Amazon Kinesis avviene su Amazon EC2, saranno applicate le relative tariffe, che andranno ad aggiungersi ai costi di Amazon Kinesis Data Streams.

Amazon Kinesis Client Library (KCL) usa le tabelle Amazon DynamoDB per monitorare le informazioni sullo stato dell'elaborazione dei record. Se le applicazioni Amazon Kinesis usano KCL, saranno applicate le tariffe di Amazon DynamoDB, che andranno ad aggiungersi ai costi di Amazon Kinesis Data Streams.

Se vengono abilitati i parametri avanzati a livello di shard, oltre ai normali costi di Amazon Kinesis Data Streams saranno applicate le tariffe di Amazon CloudWatch associate ai parametri a livello di shard attivi.

Si tratta tuttavia di esempi comuni che non esauriscono tutti i casi d'uso possibili.

Ulteriori informazioni sui prezzi di Amazon Kinesis Video Streams

Visita la pagina dei prezzi
Sei pronto per iniziare?
Registrati
Hai altre domande?
Contattaci