Generale

D: Cos'è Amazon Kinesis Data Streams?

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

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

Amazon Kinesis Data Streams gestisce infrastruttura, archiviazione, rete e configurazione necessari per trasmettere i dati al livello della velocità effettiva. Non è necessario occuparsi personalmente di provisioning, implementazione, manutenzione di hardware o software oppure di altri servizi relativi ai flussi di dati. Inoltre, Kinesis Data Streams replica in modo sincrono i dati su tre zone di disponibilità, garantendo così disponibilità e durabilità dei dati elevate. Di default, Kinesis Data Streams dimensiona automaticamente la capacità, liberandoti dal provisioning e dalla gestione della capacità. Puoi scegliere la modalità di assegnazione se vuoi assegnare e gestire la velocità effettiva autonomamente.

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

Amazon Kinesis Data Streams è ideale per trasferire rapidamente dati dai loro produttori e poi elaborarli in modo continuo, sia che si tratti di trasformarli prima di trasmetterli a un archivio dati, di 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 registri accelerata: invece di attendere la creazione di batch dei dati, i produttori possono inoltrare i dati in un flusso di dati Kinesis appena i dati 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 registri 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 dati Kinesis in tempo reale. Ad esempio, l'applicazione Amazon Kinesis può elaborare parametri e report per i registri dell'applicazione e di sistema mentre i dati sono 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 Kinesis e configurare l'applicazione Kinesis in modo che li analizzi in tempo reale, consentendo di ottenere informazioni dettagliate in pochi minuti invece che in diverse ore o giorni.

Raccolta di dati di registri ed eventi: raccogli dati relativi a eventi e registri da varie origini, ad esempio server, desktop e dispositivi mobili. Creando quindi applicazioni con Amazon Lambda o Kinesis Data Analytics, sarà possibile elaborare in modo continuo questi dati, generare parametri, alimentare pannelli di controllo in tempo reale e inviare dati aggregati per la memorizzazione, ad esempio in Amazon Simple Storage Service (S3).

Applicazioni alimentate dagli eventi: si accoppia rapidamente con AWS Lambda per rispondere o adattarsi alle occorrenze istantanee all'interno delle applicazioni basate su eventi del tuo ambiente, su qualsiasi scala.

D: Come si utilizza Amazon Kinesis Data Streams

Dopo aver registrato su AWS, puoi iniziare a utilizzare Kinesis Data Streams creando un flusso dei dati Kinesis tramite la Console di gestione AWS o l'operazione CreateStream. Poi configura i produttori di dati in modo per aggiungere continuamente dati al tuo flusso di dati. Hai la possibilità di inviare i dati provenienti da risorse esistenti nei servizi AWS come Amazon DynamoDB, Amazon Aurora, Amazon CloudWatch e AWS IoT Core. Puoi quindi utilizzare AWS Lambda, Amazon Kinesis Data Analytics o AWS Glue Streaming per elaborare velocemente i dati archiviati in Kinesis Data Streams. Puoi anche costruire applicazioni personalizzate che si eseguono su Amazon Elastic Compute Cloud (EC2), Amazon Elastic Container Service (ECS) e Amazon Elastic Kubernetes Service (EKS) utilizzando Amazon Kinesis API o Amazon Kinesis Client Library (KCL).

Concetti chiave

D: Cosa sono una partizione, un produttore e un consumatore in Kinesis Data Streams?

Una partizione ha una sequenza di registri di dati in una trasmissione. È un'unità di misura della velocità effettiva di un flusso di dati Kinesis. Una partizione supporta 1MB/secondo e 1.000 registri al secondo per le scritture e 2MB/secondo per le letture. I limiti delle partizioni garantiscono prestazioni prevedibili, facilitando la progettazione e l'esecuzione di un flusso di lavoro di streaming dei dati estremamente affidabile. Un produttore inserisce i registri dei dati nelle partizioni e un consumatore ottiene i registri dei dati dalle partizioni. I consumatori usano le partizioni per l'elaborazione parallela dei dati e per il consumo dei dati nell'ordine esatto in cui sono archiviati. Se le scritture e le letture superano i limiti della partizione, le applicazioni del produttore e del consumatore riceveranno limitazioni, che possono essere gestite tramite nuovi tentativi.

D: Cos'è un registro?

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 registri di dati nelle diverse partizioni 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 Kinesis. Ad esempio, poniamo di avere un flusso di dati con due partizioni (partizione 1 e partizione 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 alla partizione 1 e quelli con la chiave B vengono aggiunti alla partizione 2.

D: Cos'è un numero di sequenza?

Il numero di sequenza è un identificatore univoco dei registri. 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 aumentano con il passare del tempo; più lungo è l'intervallo di tempo tra le richieste PutRecord o PutRecords, più elevati diventano i numeri di sequenza.

D: Cos'è una modalità di capacità?

La modalità di capacità di Kinesis Data Streams determina il modo in cui la capacità viene gestita e come viene addebitato l'utilizzo di un flusso dei dati. Puoi scegliere fra la modalità provisioning oppure on demand. Nella modalità provisioning devi specificare il numero di partizioni per il flusso dei dati. La capacità totale di un flusso dei dati è la somma delle capacità delle sue partizioni. Puoi aumentare o diminuire il numero di partizioni in un flusso dei dati secondo necessità, e pagherai per il numero di partizioni in base a una tariffa oraria. Nella modalità on demand AWS gestisce le partizioni per fornire la velocità effettiva necessaria. Paghi solo per la velocità effettiva utilizzata, e Kinesis Data Streams accoglie automaticamente le necessità di velocità effettiva del tuo carico di lavoro in caso di aumento o diminuzione. Tutte le API di scrittura e lettura di Kinesis Data Streams, insieme alle caratteristiche opzionali come Extended Retention e Enhanced Fan-Out, sono supportate in entrambe le modalità di capacità.

D: Come faccio a scegliere tra la modalità on demand e provisioning?

La modalità on demand è più indicata per i carichi di lavoro con pattern di traffico imprevedibili e altamente variabili. Dovresti usare questa modalità se preferisci che sia AWS a gestire la capacità al tuo posto o preferisci pagare in base all'utilizzo della velocità effettiva. La modalità provisioning è più indicata per il traffico prevedibile, dove i requisiti di capacità sono facile da prevedere. Dovresti considerare la possibilità di utilizzare la modalità assegnato se desideri avere un controllo minuzioso sulla modalità di distribuzione dei dati sulle partizioni. La modalità provisioning è indicata anche se vuoi assegnare ulteriori partizioni in modo che l'applicazione che le consuma possa avere più velocità effettiva di lettura per accelerare l'elaborazione complessiva.

D: Posso passare dalla modalità on demand alla modalità provisioning?

Sì. Puoi passare dalla modalità on demand alla modalità provisioning due volte al giorno. Il conteggio della partizione dei tuoi flussi dei dati rimane lo stesso quando passi dalla modalità provisioning alla modalità on demand e viceversa. Con il passaggio dalla modalità capacità provisioning alla modalità on demand, il tuo flusso dei dati mantiene il medesimo conteggio della partizione che aveva prima della transizione. Ma da quel momento in poi, Kinesis Data Streams monitorerà il traffico dei tuoi dati e dimensionerà il conteggio della partizione di questo flusso dei dati on demand verso l'alto o verso il basso, a seconda dell'aumento e della diminuzione del traffico.

Aggiunta di dati a Kinesis Data Streams

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

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

D: Qual è la differenza tra PutRecord e PutRecords?

L'operazione PutRecord consente un solo registro di dati all'interno di una chiamata API, mentre l'operazione PutRecords consente più registri di dati all'interno di una chiamata API. Per ulteriori informazioni, 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 velocità effettive elevate con una quantità limitata di risorse client.

D: Cos'è Amazon Kinesis Agent?

Amazon Kinesis Agent è un'applicazione Java predefinita 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 registri e server di database. L'agente monitora determinati file e invia in modo continuo dati nel flusso di dati. Per ulteriori informazioni, consulta Scrivere con gli agenti.

D: Quali dati influiscono sulla velocità effettiva 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 la velocità effettiva del flusso di dati di Amazon Kinesis, determinato dal numero di partizioni nel flusso di dati.

Lettura ed elaborazione dei dati provenienti da Kinesis Data Streams

D: Cos'è un consumatore e quali sono i diversi tipi di consumatore offerti da Amazon Kinesis Data Streams?

Un consumatore è un'applicazione che elabora tutti i dati da un flusso dei dati Kinesis. Puoi scegliere tra le tipologie di consumatore fan-out condiviso e fan-out avanzato per leggere i dati da un flusso dei dati Kinesis. I consumatori di fan-out condiviso condividono tutti 2MB/secondo di partizione di lettura effettiva e limiti di cinque transazioni al secondo e richiedono l'utilizzo dell'API GetRecords. Un consumatore di fan-out avanzato ottiene 2 MB/secondo di velocità effettiva di lettura, consentendo a più utenti di leggere i dati dallo stesso flusso in parallelo, senza contendersi la velocità effettiva con altri consumatori. Devi utilizzare l'API SubscribeToShard con i consumatori di fan-out avanzato. Ti consigliamo di utilizzare il fan-out avanzato con i consumatori se vuoi aggiungere più di un consumatore al tuo flusso dei dati.

D: Come faccio a elaborare i dati catturati e archiviati in Amazon Kinesis Data Streams?

Puoi utilizzare servizi gestiti come AWS Lambda, Amazon Kinesis Data Analytics o AWS Glue per elaborare i dati archiviati in Kinesis Data Streams. Questi servizi gestiti si occupano del provisioning e della gestione dell'infrastruttura sottostante, così potrai concentrarti sulla scrittura della tua logica di business. Puoi anche inviare dati archiviati in Kinesis Data Streams ad Amazon S3, Amazon OpenSearch Service, Amazon Redshift ed endpoint HTTP personalizzati, usando l'integrazione predefinita con Kinesis Data Firehose. Puoi anche costruire applicazioni personalizzate usando Amazon Kinesis Client Library, una libreria predefinita, oppure l'API di Amazon Kinesis Data Streams.

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

Amazon Kinesis Client Library (KCL) per Java, Python, Ruby, Node.js e .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 in streaming, la coordinazione di servizi distribuiti e l'elaborazione di dati con tolleranza ai guasti. KCL ti permette di concentrare l'attenzione sulla logica di business durante la creazione di applicazioni. Consulta la documentazione su Kinesis Data Streams qui per ulteriori dettagli su KCL.

D: Cos'è l'API SubscribeToShard?

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

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

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

D: Quando dovrei utilizzare il fan-out avanzato?

È bene utilizzare il fan-out avanzato se si hanno, o ci si aspetta di avere, più consumatori che richiamano i dati da un flusso in parallelo, o almeno un consumatore che necessità l'API SubscribeToShard per fornire velocità di distribuzione dei dati sub-200 millisecondi tra produttori e consumatori.

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

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

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

Sì. Si, è possibile permettere a più consumatori 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 partizioni per l'utilizzo tradizionale di GetRecords.

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

Sì. Si, per utilizzare SubscribeToShard è necessario registrare i propri consumatori, la registrazione attiva il fan-out avanzato. Il consumatore utilizzerà per impostazione predefinita il fan-out avanzato, automaticamente quando i dati vengono recuperati tramite SubscribeToShard.

Modalità on demand

D: Quali sono le quote di default della velocità effettiva per scrivere i dati nei flussi dei dati utilizzando la modalità on demand?

Un nuovo flusso dei dati creato in modalità on demand ha una quota di 4MB/secondo e 4.000 registri al secondo per scrittura. Di default, questi flussi aumentano automaticamente a 200 MB/secondo e di 200.000 registri al secondo per scrittura.

D: Come si dimensionano i flussi dei dati in modalità on demand per gestire l'aumento della velocità effettiva di scrittura?

Un flusso dei dati in modalità on demand accoglie fino al doppio del suo picco precedente della velocità effettiva di scrittura riscontrato negli ultimi 30 giorni. Mentre la velocità effettiva di scrittura del tuo flusso dei dati raggiunge un nuovo picco, Kinesis Data Streams dimensiona la capacità del flusso automaticamente. Per esempio, se il tuo flusso dei dati ha una velocità effettiva di scrittura che varia fra 10 MB/secondo e 40 MB/secondo, Kinesis Data Streams ti garantirà di potere raddoppiare il picco della velocità effettiva di 80MB/secondo. Di conseguenza, se lo stesso flusso dei dati sostiene un nuovo picco della velocità effettiva pari a 50 MB/secondo, Data Streams garantirà che ci sia abbastanza capacità per importare 100 MB/secondo della velocità effettiva di scrittura. Tuttavia, vedrai le eccezioni "ProvisionedThroughputExceeded" se il tuo traffico cresce più del doppio rispetto al picco precedente in una finestra di 15 minuti. Devi ritentare con queste richieste.

D: Quali sono i limiti di velocità effettiva per la lettura dei dati dai flussi in modalità on demand?

La capacità di lettura aggregata della modalità on demand aumenta proporzionalmente alla velocità effettiva di scrittura per garantire che le applicazioni del consumatore abbiano sempre una velocità effettiva di lettura per elaborare i dati in entrata in tempo reale. Otterrai almeno il doppio della velocità effettiva di scrittura per leggere i dati usando l'API GetRecords. Ti consigliamo di utilizzare un consumatore con l'API GetRecord in modo che abbia abbastanza spazio per l'aggiornamento quando l'applicazione dovrà ripristinarsi dall'inattività. Per aggiungere più di un'applicazione, dovrai utilizzare il fan-out avanzato, che supporta l'aggiunta fino a 20 consumatori a un flusso dei dati tramite l'API SubscribeToShard, ognuna con una velocità effettiva dedicata.

Modalità provisioning

D: Quali sono i limiti di Amazon Kinesis Data Streams in modalità provisioning?

la velocità effettiva di un flusso di dati di Amazon Kinesis si ridimensiona senza alcun limite utilizzando un numero variabile di partizioni all'interno di un flusso.

D: Come dimensionae la capacità di Amazon Kinesis Data Streams in modalità provisioning?

Puoi aumentare la capacità di un flusso di dati Kinesis in modalità provisioning dividendo le partizioni esistenti tramite l'API SplitShard. Puoi ridurre la capacità unendo due partizioni tramite l'API MergeShard. In alternativa, puoi usare l'API UpdateShardCount per aumentare (o diminuire) la capacità di trasmissione a una partizione specifica.

D: Come si sceglie la velocità effettiva di un flusso di dati di Amazon Kinesis in modalità provisioning?

La velocità effettiva di un flusso di dati Kinesis è determinato dal numero di partizioni nel flusso di dati. Segui le istruzioni indicate in basso per calcolare il numero iniziale di partizioni con cui configurare il flusso di dati in modalità provisioning. che è possibile regolare dinamicamente il numero di partizioni all'interno di un flusso di dati tramite il ripartizionamento.

Calcola le dimensioni medie dei record scritti nel flusso di dati kilobyte (KB), arrotondate per eccesso a incrementi di 1 KB (average_data_size_in_KB)

Effettua una stima del numero di record al secondo scritti nel flusso di dati. (number_of_records_per_second)

Scegli quante applicazioni Amazon Kinesis acquisiscono in modo simultaneo e indipendente dati dal flusso. (number_of_consumers)

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.

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.

In seguito puoi calcolare il numero iniziale di partizioni (number_of_shards) di cui ha bisogno il tuo 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 è la velocità effettiva massima che si può richiedere per un flusso di dati di Amazon Kinesis in modalità provisioning?

La velocità effettiva di un flusso di dati di Amazon Kinesis può ridimensionarsi senza alcun limite. La quota di partizione predefinita è 500 partizioni per flusso per le seguenti regioni AWS: Stati Uniti orientali (Virginia settentrionale), Stati Uniti occidentali (Oregon) ed Europa (Irlanda). Per tutte le altre regioni, la quota di partizione predefinita è di 200 partizioni per flusso. Puoi richiedere l'incremento della quota di partizione con la console AWS Service Quotas.

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 in modalità provisioning?

Nella modalità provisioning, i limiti di capacità di un flusso di dati di Amazon Kinesis sono definiti dal numero di partizioni nel flusso di dati. Questi limiti possono essere superati in base una velocità effettiva dei dati o numero di registri 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 produttore di dati. Se la causa è un aumento prolungato della velocità di input dei dati del flusso, occorrerà aumentare il numero di partizioni 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: 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 in modalità provisioning?

Nella modalità provisioning, i limiti di capacità di un flusso di dati di Amazon Kinesis sono definiti dal numero di partizioni nel flusso di dati. Questi limiti possono essere superati in base una velocità effettiva 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 partizioni 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.

Conservazione dei dati estesa e a lungo termine

D: Qual è il periodo di conservazione supportato da Kinesis Data Streams?

Il periodo di retention predefinito di 24 ore copre scenari in cui i ritardi intermittenti nell'elaborazione costringono a un recupero rispetto ai dati in tempo reale. Una conservazione di sette giorni ti consente di rielaborare i dati fino a un massimo di sette giorni per risolvere potenziali perdite di dati a valle. La conservazione dei dati a lungo termine per più di sette giorni e fino a 365 giorni ti consente di rielaborare i dati precedenti per i casi d'uso come il back-testing di algoritmi, le compilazioni gli archivi dei dati e la verifica.

D: Posso utilizzare le API di Kinesis Data Streams esistenti per leggere i dati più vecchi di sette giorni?

Sì. Puoi utilizzare le stesse API getShardIterator, GetRecords e SubscribeToShard per leggere i dati conservati per più di sette giorni. Gli utenti possono spostare l'iteratore nella posizione desiderata nel flusso, recuperare la mappa delle partizioni (sia aperta che chiusa) e leggere i record.

D: Esistono altre API che possono consentirmi di leggere i dati obsoleti?

Sì. Esistono dei miglioramenti delle API per le API ListShards, GetRecords e SubscribeToShard. Puoi utilizzare la nuova opzione di filtro con il parametro TimeStamp disponibile nell'API ListShards per recuperare in modo efficiente la mappa delle partizioni e migliorare le prestazioni di lettura dei dati obsoleti. Il filtro TimeStamp di ListShards consente alle applicazioni di individuare ed enumerare le partizioni a partire dal momento in cui desideri rielaborare i dati ed eliminare l'esigenza di iniziare all'orizzonte trim. GetRecords e SubscribeToShards hanno un nuovo campo, ChildShards che ti consente di individuare rapidamente tutte le partizioni secondarie quando un applicazione termina la lettura dei dati da una partizione chiusa anziché dover attraversare di nuovo la mappa delle partizioni. L'individuazione rapida delle partizioni fa un uso efficiente delle risorse di calcolo dell'applicazione in uso per flussi di qualsiasi dimensione, a prescindere dal periodo di conservazione dei dati.

D: In che circostanze uso i miglioramenti API? 

Puoi utilizzare questi miglioramenti API se hai in programma di conservare i dati più a lungo e di dimensionare regolarmente la capacità del tuo flusso. Le operazioni di dimensionamento del flusso chiudono le partizioni esistenti e aprono nuove partizioni secondarie. I dati in tutte le ripartizioni aperte e chiuse vengono conservati fino alla fine del periodo di conservazione. Pertanto il numero totale di partizioni aumenta in progressione lineare con un periodo di conservazione più lungo e più operazioni di dimensionamento. Questo incremento nella mappa delle partizioni ti richiede l'uso di ListShards con il filtro TimeStamp e del campo ChildShards nelle API GetRecords e SubscribeToShard per un'individuazione efficiente di partizioni per il recupero dati. Per poter disporre di queste caratteristiche, dovrai aggiornare il KCL alla versione più recente (1.x per utenti standard e 2.x per utenti fan-out avanzato).

D: Amazon Kinesis Data Streams supporta la registrazione degli schemi?

Sì. I client di Kinesis Data Streams possono utilizzare il registro degli schemi di AWS Glue - una caratteristica serverless di AWS Glue - tramite la Kinesis Producer Library (KPL) e le Kinesis Client Libraries (KCL) oppure tramite le API del registro degli schemi di AWS Glue Schema nell'SDK Java di AWS. Il registro degli schemi è disponibile senza costi aggiuntivi. 

Consulta la documentazione per l'utente del registro degli schemi per le nozioni di base e ulteriori informazioni.

Gestione di Kinesis Data Streams

D: Come si modifica la velocità effettiva di un flusso di dati di Amazon Kinesis in modalità provisioning?

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

D: Quanto richiede la modifica della velocità effettiva di un flusso di dati di Amazon Kinesis in modalità provisioning 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: Amazon Kinesis Data Streams rimane disponibile quando cambio la velocità effettiva del mio flusso di dati Kinesis in modalità provisioning o quando il dimensionamento avviene automaticamente in modalità on demand?

Sì. È possibile continuare ad aggiungere e leggere dati dal flusso di dati Kinesis anche quando è in uso l'API UpdateShardCount o è in corso il ripartizione per modificarne la velocità effettiva oppure quando Kinesis Data Streams lo effettua automaticamente in modalità on demand.

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

La console di gestione di Amazon Kinesis Data Streams visualizza parametri operativi e prestazionali chiave, ad esempio la velocità effettiva di dati in entrata e in uscita dei flussi di dati Kinesis. Kinesis Data Streams si integra con Amazon CloudWatch per raccogliere, visionare e analizzare parametri di CloudWatch per i tuoi flussi di dati e per le partizioni all'interno di tali flussi. Per ulteriori informazioni sui parametri di Amazon Kinesis Data Streams, consulta Monitoring Amazon Kinesis Data Streams con Amazon CloudWatch.

Nota che tutti i parametri a livello di flusso sono gratuiti. Tutti i parametri attivati a livello di partizione sono invece addebitati alla Tariffazione 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 Kinesis. Per ulteriori informazioni sulla gestione e il controllo degli accessi dei flussi di dati, consulta Controllo degli accessi ad Amazon Kinesis Data Streams Resources utilizzando l'IAM.

D: Come posso registrare le chiamate API inoltrate a un flusso di dati di Amazon Kinesis per analisi di sicurezza e risoluzione dei problemi di funzionamento?

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

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

Kinesis Data Streams consente di contrassegnare con dei tag i flussi di dati 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 di Kinesis Data Streams. Per ulteriori informazioni sull'assegnazione di tag in Amazon Kinesis Data Streams, consultaAssegnazione di tag in Amazon Kinesis Data Streams.

Sicurezza

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

Amazon Kinesis è un servizio protetto di default. Solo i proprietari 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 AWS Key Management Service (KMS) per crittografare i dati contenuti nei flussi di dati. AWS KMS permette di utilizzare le chiavi KMS generate per la crittografia oppure di importare le proprie chiavi KMS su AWS KMS. Infine, è possibile utilizzare librerie di crittografia personalizzate lato client prima di caricare i dati in Kinesis.

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

Sì. È possibile accedere privatamente alle API di Kinesis Data Streams da Amazon VPC creando degli endpoint VPC. Grazie agli endpoint VPC, il routing 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 nei VPC. Per ulteriori informazioni su PrivateLink, consulta la relativadocumentazione.

Crittografia

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

Sì, e sono disponibili due opzioni. È 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?

Potresti scegliere la crittografia lato server rispetto alla crittografia lato client per uno dei seguenti motivi:

  1. Applicare la crittografia lato client è più difficile.
  2. Desiderano un secondo livello di sicurezza oltre alla crittografia lato client.
  3. 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 specifica di AWS KMS 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 (produttori e consumatori) non necessitano di alcuna impostazione di crittografia né devono gestire chiavi KMS 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 KMS utilizzate dalla caratteristica di crittografia lato server sono fornite da AWS KMS. AWS KMS semplifica l'utilizzo di chiavi KMS gestite da AWS per Kinesis (un metodo che permette di applicare la crittografia con un semplice clic), chiavi AWS KMS personali oppure chiavi KMS importate per la crittografia.

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

Sì, c'è una guida introduttiva disponibile nella documentazione del utente.

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 KMS gestita da AWS (alias chiave = aws/kinesis) le applicazioni non saranno influenzate dall'attivazione o dalla disattivazione della crittografia.
  • Se invece usi una chiave KMS differente, ad esempio una chiave personalizzata di AWS KMS oppure una importata nello stesso servizio, e se produttore e consumatore di un flusso di dati non ottengono le autorizzazioni a impiegare la chiave 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'utilizzo della crittografia lato server?

Sì; tuttavia, se utilizzi una chiave KMS gestita da AWS per Kinesis e non superi il costo previsto dell'utilizzo dell'API della KMS del Piano gratuito di AWS, potrai utilizzare la crittografia lato server senza alcun costo. Di seguito sono descritti i costi delle risorse:

Chiavi:

La chiave KMS gestita da AWS per Kinesis (alias = "aws/kinesis") è gratuita.
Le chiavi di KMS gestite 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 KMS, incluse quelle personalizzate. Kinesis Data Streams richiama KMS ogni cinque minuti circa, quando è impostata la rotazione della chiave dati. In un mese di 30 giorni, il costo totale delle chiamate API KMS avviate da un flusso di dati Kinesis è di qualche dollaro. Questi costi ovviamente aumentano di pari passo con il numero di credenziali utente utilizzate per produttore o consumatore di dati, perché ogni singola credenziale utente richiede una chiamata API univoca ad AWS KMS. Quando utilizzi 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-GCM a 256 bitper la crittografia.

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 KMS che è stata utilizzata per crittografare un flusso di dati specifico?

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

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

No. Amazon Kinesis Data Streams non è attualmente disponibile nel piano gratuito di AWS. AWS
Il piano gratuito di AWS è un programma che offre prove gratuite per un gruppo di servizi AWS. Per ulteriori informazioni,
Per dettagli sul Piano gratuito di AWS, consulta il piano gratuito di AWS.

Accordo sul Livello di Servizio (SLA)

D: Che cosa garantisce lo SLA di Amazon Kinesis Data Streams?

Lo SLA di Amazon Kinesis Data Streams garantisce una percentuale di tempo di attività mensile di almeno il 99,9% per Amazon Kinesis Data Streams.

D: Come posso sapere se ho diritto a un credito di assistenza SLA?

Hai diritto a un credito di assistenza SLA per Amazon Kinesis Data Streams, secondo lo SLA di Amazon Kinesis Data Streams, se più di una zona di disponibilità in cui stai eseguendo un'attività, all'interno della stessa regione ha una percentuale di tempo di attività mensile inferiore al 99,9% durante un 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 Kinesis Data Streams.

Prezzi e fatturazione

D: Come funziona la fatturazione di Amazon Kinesis Data Streams?

Kinesis Data Streams utilizza il pagamento in base al consumo effettivo. Non sono previsti pagamenti anticipati o tariffe minime, paghi solo le risorse che usi. Kinesis Data Streams ha due modalità di capacità, on demand e provisioning, entrambe con opzioni di fatturazione specifiche.

D: Come funziona la fatturazione di Amazon Kinesis Data Streams in modalità on demand?

Con la modalità capacità on demand non è necessario che specifichi in anticipo la velocità effettiva di lettura e scrittura che prevedi che la tua applicazione eseguirà. In questa modalità, il prezzo si basa sul volume di dati importati e recuperati oltre a una tariffa oraria calcolata su ogni flusso dei dati nel tuo account. Le caratteristiche opzionali richiedono tariffe aggiuntive: conservazione dei dati estesa (oltre le prime 24 ore ed entro i primi sette giorni), conservazione dei dati a lungo termine (oltre sette giorni e fino a un anno), e fan-out avanzato. Per ulteriori informazioni sui costi di Kinesis Data Streams, consulta la pagina dei prezzi di Amazon Kinesis Data Streams.

D: Come funziona la fatturazione di Kinesis Data Streams in modalità provisioning?

Con la modalità capacità provisioning, specifichi il numero di partizioni necessarie per la tua applicazione in base al tasso di scrittura e lettura richiesto. Una partizione è un'unità di capacità che prevede 1 MB/secondo di scrittura e 2 MB/secondo di lettura. Ogni partizione viene fatturata secondo una tariffa oraria. Inoltre pagherai per i registri scritti nel tuo flusso dei dati Kinesis. Ti vengono addebitati costi aggiuntivi quando utilizzi le caratteristiche opzionali come Extended retention e Enhanced Fan-Out.

I prezzi di Kinesis Data Streams in modalità provisioning si basano su due fattori base e tre fattori opzionali.

  • Il costo orario delle partizioni è determinato dal numero di partizioni 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.
  • La conservazione dei dati a lungo termine è un costo opzionale con due fattori di costo: archiviazione di dati a lungo termine e recupero di dati a lungo termine. L'archiviazione di dati a lungo termine rispecchia il numero dei dati per GB/mese archiviati per il periodo superiore a sette giorni fino a 365 giorni. Il recupero di dati a lungo termine rispecchia il numero di GB di dati recuperati che sono stati archiviati per un periodo superiore a sette giorni.
  • Il fan-out avanzato è un costo opzionale con due dimensioni di costo: le ore consumatore-partizione 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 consumatori mediante il fan-out avanzato.

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

D: Come viene calcolata un'ora consumatore-partizione per l'utilizzo del fan-out avanzato in modalità provisioning?

Il costo orario consumatore-partizione viene calcolato moltiplicando il numero dei consumatori registrati di un flusso con il numero delle partizioni presenti. Si, si paga solamente per la porzione ripartita proporzionalmente dell'ora in cui il consumatore è stato registrato per utilizzare il fan-out avanzato. Per esempio, se un'ora consumatore-partizione costa 0,015 USD, per un flusso di dati da 10 partizioni, questo consumatore che utilizza il fan-out avanzato sarebbe in grado di leggere da 10 partizioni e quindi incorrere in un addebito orario di 0,15 USD all'ora (1 consumatore x 10 partizioni x 0,015 USD per ogni ora consumatore-partizione). Se ci fossero due consumatori registrati per il fan-out avanzato simultaneamente, il costo orario totale consumatore-partizione sarebbe di 0,30 USD all'ora (2 consumatori x 10 partizioni x 0,015 USD).

Confronto con altri servizi AWS

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 l'ordinamento dei registri e offre la possibilità di leggere e/o replicare i registri nello stesso ordine in diverse applicazioni Amazon Kinesis. La Amazon Kinesis Client Library (KCL) distribuisce tutti i registri 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 (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 Kinesis Data Streams quando i requisiti del caso d'uso sono simili ai seguenti:

Registri relativi al routingi verso lo stesso processore di registri (come in processi MapReduce in streaming). Ad esempio, conteggio e aggregazione sono più semplici quando tutti i registri per una determinata chiave sono instradati allo stesso processore di registri.

Ordinamento di record. Ad esempio, se desideri trasferire i dati di registri dall'host dell'applicazione all'host di elaborazione o archiviazione conservando l'ordine delle istruzioni dei registri.

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 verifica che viene eseguita alcune ore dopo un'applicazione di fatturazione. Poiché Kinesis Data Streams conserva fino a 365 giorni i dati, è possibile eseguire l'applicazione di verifica fino a 365 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 ciascun elemento 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, devi programmare processi individuali con un ritardo in una coda di processo. Con Amazon SQS, puoi prorogare singoli messaggi fino a 15 minuti.

Aumento dinamico di concorrenza/throughput in fase di lettura. Ad esempio, desideri aggiungere più lettori a una coda di lavoro finché non si risolve il backlog. Con Kinesis Data Streams, è possibile aumentare le risorse fino a un numero di partizioni necessario (tuttavia, nota che dovrai eseguire il provisioning un numero sufficiente di partizioni in anticipo).

Utilizzo della capacità di Amazon SQS di dimensionare in modo trasparente. 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 dimensionare le risorse in modo trasparente in modo da gestire il carico senza istruzioni di provisioning da parte tua.

Ulteriori informazioni sui prezzi di Amazon Kinesis Data Streams

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