Cos'è Amazon Kinesis Data Firehose?

Amazon Kinesis Data Firehose è il mezzo più semplice per caricare flussi di dati in datastore e strumenti di analisi. È in grado di acquisire, trasformare e caricare automaticamente flussi di dati in Amazon S3Amazon Redshift e Amazon Elasticsearch Service e Splunk, per ottenere analisi in tempo reale con gli strumenti di business intelligence e i pannelli di controllo che usi tutti i giorni. Si tratta di un servizio completamente gestito che ridimensiona automaticamente le risorse in base al throughput dei dati e non richiede alcuna attività di amministrazione durante il funzionamento. Inoltre può elaborare in batch, comprimere e crittografare i dati prima del caricamento, riducendo al minimo lo storage utilizzato e migliorando il livello di sicurezza.

 

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

Amazon Kinesis Data Firehose gestisce infrastruttura, storage, rete e configurazione necessari per acquisire e caricare i dati in Amazon S3, Amazon Redshift, Amazon Elasticsearch Service o Splunk. Non è necessario occuparsi personalmente di provisioning, distribuzione e manutenzione di hardware o software, né occorre scrivere altre applicazioni per gestire il processo. Firehose ricalibra le risorse in modo elastico senza alcun intervento manuale o impegno da parte degli sviluppatori. Inoltre, Amazon Kinesis Data Firehose replica i dati in modo sincrono in tre diverse strutture in una regione AWS, garantendo disponibilità e durabilità elevate dei dati durante il trasferimento a destinazione.

D: Come si usa Amazon Kinesis Data Firehose?

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

  • Creare un flusso di distribuzione Amazon Kinesis Data Firehose tramite la console di Firehose o l'operazione CreateDeliveryStream. È anche possibile configurare una funzione AWS Lambda nel flusso di distribuzione per preparare e trasformare i dati grezzi prima di caricarli.
  • Configurare i produttori di dati affinché inviino in modo continuo i dati al flusso di distribuzione utilizzando Amazon Kinesis Agent o l'API di Firehose.
  • Firehose caricherà in modo automatico e continuo i dati alle destinazioni specificate.

D: Che cos'è un'origine?

Un'origine è la sorgente da cui vengono generati e acquisiti in modo continuo i flussi di dati. Ad esempio, un'origine può essere un server di logging in un'istanza Amazon EC2, un'applicazione su dispositivi mobili, un sensore su un dispositivo IoT o un flusso di Kinesis. 

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

Il throughput di un flusso di distribuzione Amazon Kinesis Data Firehose può ridimensionarsi senza alcun limite. Tuttavia Firehose ha alcuni limiti da tenere in considerazione.

  • Le dimensioni massime di un record inviato a Firehose (prima della codifica con Base64) sono 1.000 KB.
  • Le operazioni API CreateDeliveryStream(), DeleteDeliveryStream(), DescribeDeliveryStream(),ListDeliveryStreams() e UpdateDestination() possono fornire fino a 5 transazioni al secondo.
  • Se la destinazione risulta non disponibile, ogni flusso di distribuzione memorizza i record di dati fino a 24 ore.
  • L'operazione PutRecordBatch() può sostenere fino a 500 record o 4 MB per chiamata, (a seconda del limite raggiunto per primo).
  • Le dimensioni del buffer variano da 1 MB a 128 MB. La soglia di dimensioni viene applicata al buffer prima della compressione.
  • L'intervallo del buffer varia da 60 a 900 secondi.

Di default, ogni account può avere fino a 20 flussi di distribuzione per regione AWS. Ogni flusso di distribuzione può ricevere fino a 2.000 transazioni al secondo, 5.000 record al secondo e 5 MB al secondo. Per aumentare questi due limiti, è possibile compilare l'apposito modulo di richiesta di aumento dei limiti di servizio.

 

 

 

D: Cos'è un flusso di distribuzione?

Un flusso di distribuzione è l'entità di base di Amazon Kinesis Data Firehose. Con Firehose è possibile creare un flusso di distribuzione a cui inviare dati.

D: Cos'è un record?

Un record rappresenta i dati di interesse che il produttore di dati invia a un flusso di distribuzione. Le dimensioni massime di un record (prima della codifica con Base64) sono 1.000 KB.

D: Cos'è una destinazione?

Una destinazione è il datastore in cui i dati saranno distribuiti. Le destinazioni supportate al momento da Amazon Kinesis Data Firehose sono Amazon S3, Amazon Redshift, Amazon Elasticsearch Service e Splunk.

 

 

 

D: Come si crea un flusso di distribuzione?

Puoi creare un flusso di distribuzione Amazon Kinesis Data Firehose tramite la console di Firehose o l'operazione CreateDeliveryStream. Per ulteriori informazioni, consulta Creating a Delivery Stream.

D: Quali formati di compressione è possibile usare?

Amazon Kinesis Data Firehose consente di comprimere i dati prima di inoltrarli in Amazon S3. Al momento, il servizio supporta i formati di compressione GZIP, ZIP e SNAPPY. Se i dati vengono successivamente caricati in Amazon Redshift, è supportato solo il format GZIP.

D: Come opera la compressione quando si usa la funzione di abbonamento a CloudWatch Logs?

La funzione di abbonamento a CloudWatch Logs permette di inoltrare flussi di dati da CloudWatch Logs in Kinesis Data Firehose. Tutti gli eventi di log provenienti da CloudWatch Logs sono già compressi in formato gzip, perciò è necessario disabilitare la funzione di compressione di Firehose per evitare che venga applicata due volte. Per ulteriori informazioni sulla funzione di abbonamento di CloudWatch Logs, consulta la sezione Subscription Filters with Amazon Kinesis Data Firehose nella guida per l'utente di Amazon CloudWatch Logs.  

D: Quali tipi di crittografia è possibile usare?

Amazon Kinesis Data Firehose consente di crittografare i dati dopo la distribuzione in un bucket Amazon S3. Al momento della creazione del flusso di distribuzione, è possibile scegliere di crittografare i dati con una chiave AWS Key Management Service (KMS) già in uso. Per ulteriori informazioni su KMS, consulta AWS Key Management Service.

D: In cosa consiste la trasformazione dei dati con Lambda?

Firehose può richiamare una funzione AWS Lambda che effettui la trasformazione dei dati in ingresso prima che vengano inoltrati alla propria destinazione. La nuova funzione Lambda può essere configurata tramite uno dei piani Lambda predefiniti; in alternativa, è possibile scegliere una funzione Lambda esistente.

D: Cos'è il backup dei record di origine?

Se utilizzi la caratteristica di trasformazione dei dati di Lambda, puoi anche configurare il backup dei record di origine; Amazon Kinesis Data Firehose distribuirà i dati in ingresso non trasformati in un bucket S3 separato. Sarà possibile specificare un prefisso secondario che si aggiungerà al prefisso "AAAA/MM/GG/HH" generato da Firehose, che indica la data e l'ora nel fuso orario UTC.

D: Cos'è la registrazione di log di errore?

Se la trasformazione dei dati con Lambda è stata attivata, Firehose può registrare i log di tutte le chiamate Lambda e di tutti gli errori di inoltro dei dati in Amazon CloudWatch Logs, per esaminare gli eventuali errori verificatisi durante una chiamata Lambda o la distribuzione dei dati. Per ulteriori informazioni, consulta Monitoring with Amazon CloudWatch Logs.

D: Cosa sono le dimensioni del buffer e l'intervallo di buffer?

Amazon Kinesis Data Firehose memorizza nel buffer i dati in streaming in entrata fino a una determinata dimensione o per un determinato periodo di tempo prima di distribuirli a destinazione. È possibile configurare le dimensioni del buffer e l'intervallo di buffer al momento della creazione del flusso di distribuzione. Le dimensioni del buffer sono espresse in MB e variano da 1 a 128 MB per destinazioni in Amazon S3 e da 1 MB a 100 MB per le destinazioni in Amazon Elasticsearch Service. L'intervallo di buffer è espresso in secondi e varia da 60 a 900 secondi. Si prega di notare che, in situazioni in cui la consegna dei dati alla destinazione è più lenta rispetto alla scrittura dei dati sul flusso di consegna, Firehose aumenta in modo dinamico le dimensioni del buffer per assicurarsi che tutti i dati vengano consegnati alla destinazione.

D: In che modo di applicano le dimensioni del buffer in caso di compressione dei dati?

Le dimensioni del buffer si applicano prima della compressione. Di conseguenza, se decidi di comprimere i dati, le dimensioni degli oggetti nel bucket Amazon S3 saranno minori delle dimensioni del buffer specificate.

D: Quale ruolo IAM è necessario specificare durante la creazione di un flusso di distribuzione?

Amazon Kinesis Data Firehose presuppone che sia specificato un ruolo IAM per accedere a risorse quali bucket Amazon S3 e domini Amazon Elasticsearch. Per ulteriori informazioni, consulta la sezione Controlling Access with Amazon Kinesis Data Firehose nella Amazon Kinesis Data Firehose Developer Guide.

D: Di quali privilegi deve disporre l'utente di Amazon Redshift da specificare al momento della creazione di un flusso di dati?

L'utente Amazon Redshift deve disporre di privilegi INSERT di Redshift per poter copiare i dati dal bucket Amazon S3 nel cluster Redshift.

D: Quali operazioni è necessario eseguire se il cluster Amazon Redshift si trova in un cloud privato virtuale?

Se il cluster Amazon Redshift si trova in un cloud privato virtuale, è necessario consentire l'accesso di Amazon Kinesis Data Firehose al cluster Redshift sbloccando gli indirizzi IP di Firehose nel cloud privato virtuale. Al momento, Firehose usa un blocco CIDR differente per ogni regione AWS disponibile: 52.70.63.192/27 per la regione Stati Uniti orientali (Virginia settentrionale), 52.89.255.224/27 per la regione Stati Uniti occidentali (Oregon) e 52.19.239.192/27 per la regione UE (Irlanda). Per ulteriori informazioni su come sbloccare gli IP per un cloud privato virtuale, consulta la sezione Grant Firehose Access to an Amazon Redshift Destination nella Amazon Kinesis Data Firehose Developer Guide.

D: Perché è necessario fornire un bucket Amazon S3 quando si sceglie come destinazione Amazon Redshift?

Quando scegli una destinazione in Amazon Redshift, Amazon Kinesis Data Firehose distribuisce i dati prima nel bucket Amazon S3, quindi esegue un comando COPY di Redshift per caricare i dati dal bucket S3 al cluster Redshift.

D: Cos'è la rotazione degli indici per le destinazioni in Amazon Elasticsearch Service?

Amazon Kinesis Data Firehose può gestire la rotazione degli indici di Amazon Elasticsearch Service secondo intervalli di tempo predeterminati. Puoi configurare questi intervalli durante la creazione del flusso di distribuzione. Per ulteriori informazioni, consulta la sezione Index Rotation for the Amazon ES Destination della Amazon Kinesis Data Firehose Developer Guide.

D: Perché è necessario fornire un bucket Amazon S3 quando si sceglie come destinazione Amazon Elasticsearch Service?

Quando i dati vengono caricati in Amazon Elasticsearch Service, Amazon Kinesis Data Firehose può eseguire il backup di tutti i dati o solo dei dati che non è stato possibile distribuire. Per sfruttare al meglio questa funzione ed evitare le perdite di dati, è necessario fornire un bucket Amazon S3 di backup.

D: È possibile modificare le configurazioni dei flussi di distribuzione dopo che sono stati creati?
È possibile modificare le configurazioni dei flussi di distribuzione in qualsiasi momento. Per farlo, usa la console di Firehose oppure il comando UpdateDestination. Il flusso di distribuzione manterrà lo stato "ACTIVE" anche durante l'aggiornamento delle configurazioni, perciò potrai continuare a inviarvi dati. La configurazione aggiornata entra in vigore generalmente entro pochi minuti.

D: In che modo è possibile preparare e trasformare i dati grezzi in Amazon Kinesis Data Firehose?

Amazon Kinesis Data Firehose permette di utilizzare una funzione AWS Lambda per preparare e trasformare i dati grezzi in ingresso nel flusso di distribuzione prima del caricamento a destinazione. È possibile configurare una funzione AWS Lambda per operare la trasformazione dei dati al momento della creazione di un nuovo flusso di distribuzione, oppure quando viene modificato un flusso di distribuzione esistente.

D: In che modo è necessario reindirizzare in Amazon Kinesis Data Firehose i dati preparati e trasformati da una funzione AWS Lambda?

Tutti i record trasformati da Lambda devono essere reindirizzati in Firehose con i tre parametri elencati di seguito; in caso contrario, Firehose rifiuterà i record e li elaborerà come errori.

  • recordId: durante la chiamata, Firehose inoltra a Lambda un recordId con ciascun record. Ogni record sottoposto a trasformazione deve tornare con lo stesso recordId. Eventuali corrispondenze errate tra il recordId originale e il recordId restituito saranno elaborate come errori di trasformazione. 
  • result: lo stato della trasformazione di ciascun record. I valori consentiti per questo parametro sono i seguenti: "Ok" se il record è stato sottoposto correttamente a trasformazione. "Dropped" se la logica di elaborazione prevede che il record non venga elaborato. "ProcessingFailed" se il record non può essere sottoposto correttamente a trasformazione. Quando genera i parametri SucceedProcessing.Records e SucceedProcessing.Bytes, Firehose elencherà i record con valori "Ok" e "Dropped" tra quelli elaborati correttamente, mentre i record con stato "ProcessingFailed" saranno elencati tra gli errori. 
  • data: il payload di dati trasformati post-codifica con Base64. 

D: Quali piani Lambda sono disponibili per preparazione e trasformazione dei dati?

Firehose permette di creare funzioni Lambda personalizzati per la trasformazione dei dati utilizzando i seguenti piani Lambda:

  • General Firehose Processing: questo piano contiene il modello di trasformazione e stato dei dati descritto in precedenza. Utilizza questo piano per creare una logica di trasformazione personalizzata.
  • Apache Log to JSON: questo piano analizza e converte le righe di log Apache in oggetti JSON con nomi di campi JSON predefiniti.
  • Apache Log to CSV: questo piano analizza e converte le righe di log Apache in formato CSV.
  • Syslog to JSON: questo piano analizza e converte le righe di Syslog in oggetti JSON con nomi di campi JSON predefiniti.
  • Syslog to CSV: questo piano analizza e converte le righe di Syslog in formato CSV.

D: È possibile conservare una copia di tutti i dati grezzi in un bucket S3?

Sì, Firehose esegue il backup di tutti i record non sottoposti a trasformazione nel bucket S3 nello stesso momento in cui inoltra i record trasformati a destinazione. Il backup dei record di origine può essere abilitato quando crei o quando aggiorni un flusso di distribuzione.

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

Per aggiungere dati a un flusso di distribuzione Amazon Kinesis Data Firehose, usa Amazon Kinesis Agent oppure le operazioni PutRecord e PutRecordBatch di Firehose. Kinesis Data Firehose si integra inoltre con altre origini dati di AWS quali Kinesis Data Streams, AWS IoT, Amazon CloudWatch Logs e Amazon CloudWatch Events.

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 distribuzione. È 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 distribuzione. 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 distribuzione. Per ulteriori informazioni, consulta Writing with Agents.

D: Qual è la differenza tra PutRecord e PutRecordBatch?

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

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

L'API di Amazon Kinesis Data Firehose è 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: Come si aggiungono dati da un flusso di distribuzione Firehose in un flusso Kinesis?

Al momento della creazione o dell'aggiornamento di un flusso di distribuzione tramite la console di AWS o le API Firehose, è possibile configurare il flusso Kinesis come origine del flusso di distribuzione. Una volta completata tale configurazione, Firehose leggerà automaticamente i dati provenienti dal flusso Kinesis e caricherà i dati nella destinazione specificata.

D: Con quale frequenza Kinesis Data Firehose legge i dati provenienti dal flusso Kinesis?

Kinesis Data Firehose richiama l'operazione GetRecords() di Kinesis Data Streams una volta al secondo per ogni shard di Kinesis.

D: Da dove legge i dati Kinesis Data Firehose quando un flusso Kinesis viene configurato come origine di un flusso di distribuzione?

Quando un flusso di dati Kinesis è configurato come origine del flusso di distribuzione, Kinesis Data Firehose inizia a leggere i dati dalla posizione LATEST del flusso. Per ulteriori informazioni sulle posizioni dei flussi di dati Kinesis, consulta la sezione GetShardIterator nel documento Kinesis Data Streams Service API Reference.

D: È possibile configurare un flusso di dati Kinesis come origine di più flussi di distribuzione Firehose?

Sì. Tuttavia, le chiamate GetRecords() da Kinesis Data Firehose sono incluse nel calcolo del throttling dello shard di Kinesis, perciò è necessario pianificare il flusso di distribuzione insieme alle altre applicazioni Kinesis per accertarsi di non superare le restrizioni impostate. Per ulteriori informazioni, consulta la sezione Kinesis Data Streams Limits nella guida agli sviluppatori di Kinesis Data Streams.

D: È ancora possibile aggiungere dati a un flusso di distribuzione tramite Kinesis Agent o tramite le operazioni PutRecord e PutRecordBatch di Firehose una volta configurato il flusso di dati Kinesis come origine?

No, non è possibile. Quando un flusso di dati Kinesis è configurato come origine di un flusso di distribuzione Firehose, le operazioni PutRecord e PutRecordBatch vengono disabilitate. Per aggiungere dati al flusso di dati Kinesis, sarà necessario utilizzare le operazioni PutRecord e PutRecords di Kinesis Data Streams.

D: Come si aggiungono dati provenienti da AWS IoT a un flusso di distribuzione?

Per aggiungere dati provenienti da AWS IoT a un flusso di distribuzione, è necessario creare un'operazione di AWS IoT che vi inoltri gli eventi. Per ulteriori informazioni, consulta la sezione Writing to Amazon Kinesis Data Firehose Using AWS IoT nella guida agli sviluppatori di Kinesis Data Firehose. 

D: Come si aggiungono dati provenienti da CloudWatch Logs a un flusso di distribuzione?

Per aggiungere dati provenienti da CloudWatch Logs a un flusso di distribuzione è necessario creare un filtro di sottoscrizione che vi inoltri gli eventi. Per ulteriori informazioni, consulta la sezione Using CloudWatch Logs Subscription Filters nella guida per l'utente di Amazon CloudWatch.

D: Come si aggiungono dati provenienti da CloudWatch Events a un flusso di distribuzione Amazon Kinesis Data Firehose?

Per aggiungere dati provenienti da CloudWatch Events a un flusso di distribuzione Amazon Kinesis Firehose è necessario creare una regola CloudWatch Events impostando come destinazione il flusso di distribuzione. Per ulteriori informazioni, consulta la sezione Writing to Amazon Kinesis Data Firehose Using CloudWatch Events nella guida agli sviluppatori di Kinesis Data Firehose.

 

D: Con quale frequenza Amazon Kinesis Data Firehose distribuisce dati in un bucket Amazon S3?

La frequenza di distribuzione dei dati in Amazon S3 è determinata dalle dimensioni del buffer di S3 e dall'intervallo di buffer configurati per il flusso di distribuzione. Amazon Kinesis Data Firehose memorizza nel buffer i dati in entrata prima di distribuirli in Amazon S3. Puoi configurare le dimensioni (da 1 MB a 128 MB) o gli intervalli (da 60 a 900 secondi) del buffer di S3; la condizione che si verifica per prima attiverà l'inoltro dei dati in Amazon S3. In situazioni in cui l'inoltro dei dati alla destinazione è più lento rispetto all'acquisizione dei dati nel flusso di distribuzione, Amazon Kinesis Data Firehose aumenta automaticamente le dimensioni del buffer per assicurarsi che tutti i dati vengano consegnati a destinazione.

D: Con quale frequenza Amazon Kinesis Data Firehose distribuisce dati in un Cluster Amazon Redshift?

Quando scegli una destinazione in Amazon Redshift, Amazon Kinesis Data Firehose distribuisce i dati prima nel bucket Amazon S3, quindi esegue un comando COPY di Redshift per caricare i dati dal bucket S3 al cluster Redshift. La frequenza delle operazioni COPY dei dati da Amazon S3 in Amazon Redshift è determinata dalla rapidità di esecuzione del comando COPY da parte del cluster Redshift. Se sono ancora presenti dati da copiare, Firehose esegue un nuovo comando COPY quando quello precedente viene completato dal cluster Redshift.

D: Con quale frequenza Amazon Kinesis Data Firehose distribuisce dati in un dominio Amazon Elasticsearch?

La frequenza di distribuzione dei dati in Amazon Elasticsearch Service è determinata dai valori dalle dimensioni e dell'intervallo del buffer di Elasticsearch configurati per il flusso di distribuzione. Firehose memorizza nella cache i dati in entrata prima di distribuirli ad Amazon Elasticsearch Service. Puoi configurare le dimensioni (da 100 MB a 60 MB) o gli intervalli (da 60 a 900 secondi) del buffer di Elasticsearch; la condizione che si verifica per prima attiverà l'inoltro dei dati in Amazon Elasticsearch Service. In situazioni in cui l'inoltro dei dati alla destinazione è più lento rispetto all'acquisizione dei dati nel flusso di distribuzione, Amazon Kinesis Data Firehose aumenta automaticamente le dimensioni del buffer per assicurarsi che tutti i dati vengano consegnati a destinazione.

D: Come vengono organizzati i dati nel bucket Amazon S3?

Amazon Kinesis Data Firehose aggiunge un prefisso con l'ora in UTC nel formato AAAA/MM/DD/HH prima di immettere oggetti in Amazon S3. Il prefisso si traduce in una struttura di cartelle di Amazon S3, in cui ogni etichetta separata da un barra (/) diventa una sottocartella. Puoi modificare questa struttura aggiungendo una cartella superiore preceduta dalla barra (ad esempio LaMiaApp/AAAA/MM/GG/HH) oppure aggiungendo testo prima dell'indicazione AAAA dell'anno (ad esempio LaMiaApp AAAA/MM/GG/HH). Per farlo, specifica un prefisso di S3 al momento della creazione del flusso di distribuzione.

D: In che modo vengono assegnati i nomi degli oggetti Amazon S3 distribuiti da Amazon Kinesis Data Firehose?

I nomi degli oggetti Amazon S3 vengono assegnati secondo il seguente modello: NomeFlussoDiDistribuzione-VersioneFlussoDiDistribuzione-AAAA-MM-GG-HH-MM-SS-StringaCasuale, dove VersioneFlussoDiDistribuzione inizia da 1 e aumenta di un'unità per ogni modifica alla configurazione del flusso di distribuzione. Per modificare le configurazioni del flusso di distribuzione (ad esempio il nome del bucket S3, i limiti di buffer, la compressione e la crittografia), usa la console di Firehose o l'operazione UpdateDestination.

D: Cos'è la cartella manifest nel bucket Amazon S3?

Per le destinazioni in Amazon Redshift, Amazon Kinesis Data Firehose genera file manifest per il caricamento in batch di oggetti Amazon S3 in cluster Redshift. Nella cartella manifest vengono salvati i file manifest generati da Firehose.

D: In che modo vengono gestiti i documenti Elasticsearch di un backup in un bucket Amazon S3?

Se viene utilizzata la modalità "All documents", Amazon Kinesis Data Firehose concatenerà diversi record in entrata in base alla configurazione del buffer del flusso di distribuzione, quindi li inoltrerà nel bucket S3 come oggetto S3. Indipendentemente dal tipo di modalità di backup configurata, i documenti il cui caricamento non è riuscito verranno inoltrati nel bucket S3 utilizzando un formato JSON che consente l'aggiunta di informazioni aggiuntive quali codice di errore e data e ora del tentativo non riuscito. Per ulteriori informazioni, consulta la sezione Amazon S3 Backup for the Amazon ES Destination della Amazon Kinesis Data Firehose Developer Guide.  

D: Un singolo flusso di distribuzione può distribuire i dati in più bucket Amazon S3?

Un singolo flusso di distribuzione può distribuire dati in un solo bucket Amazon S3 alla volta. Se desideri distribuire i dati in più bucket S3, devi creare più di un flusso di distribuzione.

D: Un singolo flusso di distribuzione può distribuire i dati in più cluster o tabelle Amazon Redshift?

Un singolo flusso di distribuzione può distribuire dati contemporaneamente in un solo cluster e una tabella Amazon Redshift alla volta. Se desideri distribuire i dati in più cluster o tabelle Redshift, devi creare più di un flusso di distribuzione.

D: Un singolo flusso di distribuzione può distribuire i dati in più domini o indici Amazon Elasticsearch Service?

Un singolo flusso di distribuzione può distribuire dati contemporaneamente in un solo dominio e in un indice Amazon Elasticsearch Service alla volta. Se desideri distribuire i dati in più domini o indici Amazon Elasticsearch Service, devi creare più di un flusso di distribuzione.

D: Perché le richieste vengono respinte quando vengono inviati dati a un flusso di distribuzione Amazon Kinesis Data Firehose?

Di default, ogni flusso di distribuzione può ricevere fino a 2.000 transazioni al secondo, 5.000 record al secondo e 5 MB al secondo. Per aumentare questi limiti, è possibile compilare l'apposito modulo di richiesta di aumento dei limiti di servizio

D: Perché compaiono record duplicati nel bucket Amazon S3, nella tabella Amazon Redshift o nell'indice Amazon Elasticsearch Service?

Amazon Kinesis Data Firehose usa semantica at-least-once per l'invio di dati. In alcuni rari casi, ad esempio quando si verifica un timeout della richiesta inseguito ad un tentativo di invio di dati, il nuovo tentativo operato da Firehose potrebbe causare un duplicato, se la richiesta precedente va a buon fine. 

D: Cosa accade se la distribuzione dei dati nel bucket Amazon S3 non va a buon fine?

Se la distribuzione dei dati nel bucket Amazon S3 non va a buon fine, Amazon Kinesis Data Firehose prova nuovamente l'inoltro ogni 5 secondi per un massimo di 24 ore. Se il problema continua oltre questo intervallo di tempo, i dati vengono rimossi.

D: Cosa accade se la distribuzione dei dati nel cluster Amazon Redshift non va a buon fine?

Se la distribuzione dei dati nel cluster Amazon Redshift non va a buon fine, Amazon Kinesis Data Firehose prova nuovamente l'inoltro ogni 5 secondi per un massimo di 60 minuti. Dopo 60 minuti, Amazon Kinesis Data Firehose salta il batch di oggetti S3 corrente pronti per il comando COPY e passa al batch successivo. Le informazioni relative agli oggetti non elaborati vengono inviate al bucket S3 sotto forma di file manifest nella cartella errors, che potrai utilizzare per recuperare le informazioni manualmente. Per ulteriori informazioni su come eseguire il comando COPY sui dati con un file manifest, consulta Using a Manifest to Specify Data Files.

D: Cosa accade se la distribuzione dei dati nel dominio Amazon Elasticsearch non va a buon fine?

Per le destinazioni in Amazon Elasticsearch Service, al momento della creazione del flusso di distribuzione puoi specificare un intervallo di tempo di durata compresa tra 0 e 7.200 secondi. Se la distribuzione dei dati verso il dominio Amazon ES non va a buon fine, Amazon Kinesis Data Firehose prova nuovamente l'inoltro per l'intervallo di tempo specificato. Dopo questo periodo, Amazon Kinesis Data Firehose salta il batch di dati corrente e passa al batch successivo. I dettagli relativi ai documenti non inoltrati vengono memorizzati nella cartella elasticsearch_failed del bucket S3 e potrai utilizzarli per recuperare le informazioni manualmente.

D: Cosa accade se si verifica un errore durante la trasformazione dei dati?

In caso di errore durante la chiamata di una funzione Lambda per la trasformazione dei dati da parte di Firehose, possono verificarsi due scenari:

  • Nel primo scenario, la chiamata alla funzione non viene completata, ad esempio, perché viene raggiunto il timeout di rete e si applicano limitazioni di chiamata Lambda. In questi casi, Firehose prova di default ad eseguire la chiamata per tre volte, quindi salta il batch di record in questione. I record non elaborati vengono elencati tra i record con errori di elaborazione. È possibile configurare un numero di nuovi tentativi compreso tra 0 e 300 tramite le API CreateDeliveryStream e UpdateDeliveryStream. Per questo tipo di errori, è possibile anche utilizzare la funzione di log degli errori di Firehose ed emettere errori di chiamata in CloudWatch Logs. Per ulteriori informazioni, consulta Monitoring with Amazon CloudWatch Logs
  • Nel secondo scenario, l'errore si verifica quando il parametro result della trasformazione del record restituito dalla funzione Lambda è "ProcessingFailed". Firehose elenca questi record tra quelli non elaborati correttamente. Per questo tipo di errori, è possibile anche utilizzare la funzione di log degli errori di Lambda ed emettere log di errore in CloudWatch Logs. Per ulteriori informazioni, consulta Accessing Amazon CloudWatch Logs for AWS Lambda.

In entrambi gli scenari di errore, i record non elaborati correttamente vengono inoltrati al bucket S3 nella cartella processing_failed.

D: Perché le dimensioni degli oggetti S3 consegnati sono più grandi rispetto alle dimensioni di buffer specificate nella configurazione del flusso di consegna? 

La maggior parte delle volte, le dimensioni degli oggetti S3 consegnati riflettono la dimensione di buffer specificata, purché la condizione della dimensione di buffer venga soddisfatta prima della condizione dell'intervallo di buffer. Tuttavia, quando la consegna dei dati alla destinazione è più lenta rispetto alla scrittura dei dati sul flusso di consegna, Firehose aumenta in modo dinamico le dimensioni del buffer per assicurarsi che tutti i dati vengano consegnati alla destinazione. In queste circostanze, le dimensioni degli oggetti S3 consegnati potrebbero essere maggiori rispetto alle dimensioni di buffer specificate.

D: Cos'è la cartella errors nel bucket Amazon S3?

La cartella errors memorizza i file manifest che contengono le informazioni su tutti gli oggetti S3 che non è stato possibile caricare nel cluster Amazon Redshift. È possibile caricare questi oggetti manualmente tramite il comando COPY di Redshift. Per ulteriori informazioni su come eseguire il comando COPY sui dati con un file manifest, consulta Using a Manifest to Specify Data Files.

D: Cos'è la cartella elasticsearch_failed nel bucket Amazon S3?

La cartella elasticsearch_failed memorizza i documenti che non è stato possibile caricare nel dominio Amazon Elasticsearch. È possibile reindicizzare questi documenti manualmente per recuperare le informazioni.  

D: Cos'è la cartella processing_failed nel bucket Amazon S3?

La cartella processing_failed memorizza i record non sottoposti a trasformazione da parte della funzione AWS Lambda a causa di errori. È possibile effettuare nuovi tentativi di elaborazione manualmente.

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

La console di Firehose mostra parametri operativi e prestazionali chiave, ad esempio il volume di dati in entrata e il volume di dati distribuiti. Amazon Kinesis Data Firehose integra i parametri di Amazon CloudWatch per raccogliere, visionare e analizzare i parametri dei flussi di distribuzione. Per ulteriori informazioni sui parametri di Amazon Kinesis Data Firehose, consulta la sezione Monitoring with Amazon CloudWatch Metrics della Amazon Kinesis Data Firehose Developer Guide.

D: In che modo è possibile monitorare gli errori di trasformazione e distribuzione di un flusso di distribuzione Amazon Kinesis Data Firehose?

Amazon Kinesis Data Firehose si integra con Amazon CloudWatch Logs, consentendoti di aprire log di errore specifici in caso di mancata trasformazione o mancato recapito dei dati. Puoi abilitare la registrazione di log di errore al momento della creazione del flusso di distribuzione. Per ulteriori informazioni, consulta la sezione Monitoring with Amazon CloudWatch Logs della Amazon Kinesis Data Firehose Developer Guide.

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

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

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

Amazon Kinesis Data Firehose 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 Data Firehose, consulta Logging Amazon Kinesis Data Firehose API calls Using Amazon CloudTrail.

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

No. Amazon Kinesis Data Firehose 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 Firehose?
I prezzi di Amazon Kinesis Data Firehose sono calcolati in base al consumo effettivo. Non sono previsti pagamenti anticipati né tariffe minime: paghi solo le risorse che usi. La fatturazione di Amazon Kinesis Data Firehose si basa sul volume di dati acquisiti in Firehose (in GB), arrotondando per eccesso le dimensioni di ciascun record a incrementi di 5 KB. Per ulteriori informazioni sui costi di Amazon Kinesis Data Firehose, consulta la pagina dei prezzi di Amazon Kinesis Data Firehose.

D: Quando viene usata l'operazione PutRecordBatch per inviare dati in Amazon Kinesis Data Firehose, come viene calcolato l'arrotondamento a incrementi di 5 KB?

L'arrotondamento per eccesso a incrementi di 5 KB viene calcolato a livello di record, non a livello di operazione API. Ad esempio, se la chiamata PutRecordBatch contiene due record da 1 KB, il volume di dati calcolato per quella chiamata sarà di 10 KB (5 KB per record).

D: La tariffa di Amazon Kinesis Data Firehose include anche i costi relativi ad Amazon S3, Amazon Redshift, Amazon Elasticsearch Service e AWS Lambda?

No, i costi associati ad Amazon S3, Amazon Redshift, Amazon Elasticsearch Service e AWS Lambda, ovvero i costi per lo storage e per le richieste, saranno fatturati separatamente. Per ulteriori informazioni, consulta le pagine relative ai prezzi di Amazon S3Amazon Redshift, Amazon Elasticsearch Service e AWS Lambda.