Vai al contenuto principale

Che cos’è Amazon Kinesis? Casi d’uso, prezzi e consigli per ottimizzare i costi

Scopri cos’è Amazon Kinesis e a cosa serve, più tre consigli preziosi per ottimizzare i costi.
Joleen Bothma
Joleen Bothma

Crea il tuo account gratuito

Pratica and corso your progress.

Continua con GoogleContinuando, accetti la nostra Termini di utilizzo, i nostri Informativa sulla privacy e il fatto che i tuoi dati sono archiviati negli USA.

Il data streaming è un flusso costante e continuo di dati, spesso in grandi volumi. Uno degli aspetti più importanti di un data stream è la sua sensibilità al fattore tempo. Dopo un certo periodo, infatti, i contenuti di un flusso possono perdere rilevanza.

Questo significa che le aziende possono ottenere enorme valore da analisi e insight in tempo reale sui propri stream di dati. Qui entra in gioco un’architettura specializzata per lo streaming. Una delle opzioni più diffuse e potenti è AWS Kinesis.

In questo articolo presentiamo AWS Kinesis ed esploriamo i due servizi principali offerti sotto l’ombrello Kinesis: Kinesis Data Streams e Kinesis Video Streams. Alla fine, confronteremo anche le differenze principali tra due servizi di data streaming: AWS Kinesis e Apache Kafka (e Amazon MSK).

Se sei alle prime armi con AWS, dai un’occhiata al nostro corso introduttivo su AWS che ti guiderà attraverso i concetti di base del principale provider cloud di oggi.

Che cos’è AWS Kinesis?

Amazon Kinesis è stato lanciato nel 2013 in risposta a un cambiamento del mercato verso l’ingestione e l’analisi dei dati in tempo reale.

AWS è però andata oltre: Amazon Kinesis è in grado di elaborare grandi flussi di dati come servizio completamente gestito, scalabile e basato sul cloud.

Negli anni successivi al lancio, AWS ha ampliato i servizi offerti all’interno di Amazon Kinesis. Si è iniziato con il rilascio di Amazon Kinesis Data Firehose nell’ottobre 2015 e, successivamente, di Amazon Kinesis Data Analytics nell’agosto 2016.

Inizialmente, AWS offriva solo il servizio Kinesis Data Streams per elaborare e analizzare grandi quantità di dati in tempo reale. Solo nel 2017 AWS ha introdotto Kinesis Video Streams per acquisire, elaborare e archiviare flussi video.

Nel tempo, tuttavia, Amazon Kinesis ha continuato a evolversi e cambiare. Arrivando a oggi, restano soltanto i due servizi core: Kinesis Data Streams e Kinesis Video Streams. Parleremo di questi cambiamenti più nel dettaglio più avanti.

Amazon Kinesis Video Streams vs Kinesis Data Streams

Fonte: AWS

A cosa serve Amazon Kinesis?

Amazon Kinesis è progettato per lo streaming di dati in tempo reale.

Questo significa che qualsiasi organizzazione che voglia sfruttare grandi volumi di dati in tempo reale (o quasi) può trarre enorme beneficio dall’offerta Amazon Kinesis.

Ecco alcuni casi d’uso per cui Amazon Kinesis è particolarmente adatto:

  • Streaming di log ed eventi da una o più fonti. I dati da applicazioni, server e dispositivi possono essere acquisiti in tempo reale.
  • Raccolta di flussi video da dispositivi con fotocamera. Pensa a sistemi di sorveglianza domestici e aziendali, telecamere ai semafori e così via.
  • Analisi in tempo reale di dati in streaming. Casi d’uso come il rilevamento di frodi, ad esempio, sono altamente sensibili al tempo e si basano su un’architettura di data streaming solida.

Esempio di caso d’uso di Amazon Kinesis Video Streams: Pet Monitor

Esempio di caso d’uso di Amazon Kinesis Video Streams (Fonte: AWS)

Modifiche recenti ai servizi Amazon Kinesis

In risposta ai feedback degli utenti, AWS ha recentemente apportato alcune modifiche ai propri servizi.

Amazon Kinesis Data Analytics è stato rinominato Amazon Managed Service for Apache Flink (MSF) il 30 agosto 2023.

Non solo: il supporto per Amazon Kinesis Data Analytics per applicazioni SQL verrà interrotto in futuro. I clienti dovranno migrare le proprie applicazioni a MSF per le applicazioni basate su SQL.

MSF è un servizio completamente gestito e serverless per creare ed eseguire applicazioni di streaming in tempo reale utilizzando Apache Flink. MSF include il supporto per SQL insieme ad altri linguaggi di programmazione, come Java e Scala.

Amazon Kinesis Data Firehose > Amazon Data Firehose

Il 9 febbraio 2024, AWS ha annunciato che rinominava Amazon Kinesis Data Firehose semplicemente in Amazon Data Firehose.

AWS ha effettuato questo cambiamento per riflettere la crescita delle loro fonti dati e dei connettori all’interno di Amazon Data Firehose. Oltre a Amazon Kinesis Data Streams, è stato aggiunto il supporto di integrazione per Amazon MSK e per oltre 40 altri connettori di origine e destinazione AWS.

AWS Kinesis Data Streams

AWS Kinesis Data Streams è il servizio di punta di Amazon sotto l’ombrello Amazon Kinesis.

In questa sezione esploriamo il servizio e i casi d’uso per cui è più indicato.

Che cos’è Kinesis Data Streams?

Kinesis Data Streams può acquisire continuamente grandi volumi di dati (a velocità di gigabyte al secondo) per abilitare casi d’uso di analytics in tempo reale.

Oltre a essere completamente integrato con altri servizi AWS, ecco alcune funzionalità di spicco di Kinesis Data Streams:

  • È serverless, quindi non serve effettuare provisioning o gestire server in anticipo, riducendo i costi iniziali per avviare lo streaming dei dati.
  • Con Kinesis, la raccolta dei dati è separata dall’elaborazione. Questa separazione rende più semplice per le applicazioni adattarsi a rapidi cambiamenti nelle informazioni.
  • Kinesis Data Streams può acquisire grandi volumi di dati in millisecondi, risultando una soluzione a bassissima latenza.
  • Puoi scegliere tra modalità di capacità on-demand e provisioned in base alle tue esigenze di streaming.
  • Kinesis Data Streams è sia sicuro che conforme. I tuoi dati possono essere crittografati e protetti a riposo per garantire la massima sicurezza.

Amazon Kinesis Data Streams è composto da tre elementi chiave: shard, producer e consumer. Vediamoli con un esempio reale di sistema di streaming analytics per un sito ecommerce.

Shard

Uno shard è un’unità all’interno di Kinesis che determina quanta quantità di dati può essere elaborata alla volta.

Ad esempio, se il sito ecommerce elabora 100 transazioni al secondo, potrebbe richiedere shard multipli per gestire agevolmente i dati in arrivo. Ogni shard può gestire fino a 1 MB di dati in ingresso al secondo, quindi se il traffico aumenta, aggiungere shard garantirà un’elaborazione efficiente.

Producer 

Un producer è qualsiasi sistema che invia dati al flusso Kinesis.

Per esempio, il sito e-commerce genera log in tempo reale ogni volta che un utente aggiunge un articolo al carrello, completa un acquisto o lascia una recensione. Ognuno di questi eventi viene inviato come record di dati a Kinesis.

Consumer

Un consumer è qualsiasi applicazione o sistema che legge i dati dal flusso Kinesis e li elabora. Ad esempio: 

  • Un sistema di rilevamento frodi che analizza le transazioni in arrivo in tempo reale per segnalare attività sospette.
  • Una dashboard che aggiorna in tempo reale le metriche di vendita per i responsabili di negozio.
  • Un motore di raccomandazione che suggerisce prodotti agli utenti in base alle attività recenti.

Vediamo come interagiscono tutti questi elementi con un esempio: 

  1. Un cliente aggiunge un prodotto al carrello → L’evento viene inviato a Kinesis (Producer)
  2. L’evento entra in uno shard (in base al carico di traffico)
  3. Un’applicazione consumer legge l’evento → Aggiorna l’inventario, attiva un modello di raccomandazione AI o segnala un rischio di frode

A cosa servono i Kinesis Data Streams?

I Kinesis Data Streams sono ideali per applicazioni che richiedono un’elaborazione rapida dei dati in tempo reale.

Per esempio, supponi di avere un’applicazione o un dispositivo che genera log o feed di dati. Useresti Kinesis Data Streams per acquisire questo flusso e applicare un’elaborazione o trasformazione, come il calcolo di metriche o analytics in tempo reale. Potrai poi inviare i dati elaborati a un data store per utilizzi successivi.

Questo è solo uno degli esempi più comuni dell’utilità di Kinesis Data Streams.

AWS Kinesis Video Streams

AWS Video Streams è un servizio Amazon Kinesis più recente con potenti applicazioni per diversi tipi di dati multimediali.

In questa sezione esploriamo il servizio e le applicazioni per cui è maggiormente indicato.

Che cos’è Kinesis Video Streams?

Kinesis Video Streams consente di acquisire grandi volumi di dati multimediali codificati nel tempo da dispositivi connessi.

Più concretamente, i dati codificati nel tempo sono un tipo di dati multimediali in cui i record sono correlati tra loro in una serie temporale. Video e audio sono esempi di dati codificati nel tempo, poiché ogni frame o sequenza è collegato al frame precedente e successivo.

Input e utilizzi di Amazon Kinesis Video Streaming

Amazon Kinesis Video Streaming (Fonte: AWS)

È importante notare che Kinesis Video Streams gestisce solo l’ingestione e l’archiviazione dei dati multimediali. L’elaborazione e l’analisi devono avvenire in un servizio diverso. Esempi sono Amazon Rekognition Video o Amazon SageMaker per applicazioni di machine learning.

Dai un’occhiata al nostro tutorial completo su Amazon SageMaker per iniziare a creare applicazioni di machine learning in AWS.

A cosa servono i Kinesis Video Streams?

Collegarsi e trasmettere contenuti multimediali ad AWS con Kinesis Video Streams è molto semplice (e sicuro). Esistono SDK e API in tempo reale create appositamente per Amazon Kinesis.

Questo significa che puoi iniziare rapidamente e con facilità con Amazon Kinesis Video Streams per le tue applicazioni di streaming multimediale.

Uno degli usi più diffusi dei flussi video è la creazione di applicazioni di machine learning per computer vision in tempo reale. Possono essere impiegate in un’ampia gamma di ambiti, come sicurezza e sorveglianza, smart home, risposta alle emergenze cittadine e così via.

Prezzi di AWS Kinesis

Uno dei grandi vantaggi di AWS è il modello di pricing pay-as-you-go. La maggior parte dei servizi AWS segue questo modello, e AWS Kinesis non fa eccezione.

Non ci sono costi iniziali o tariffe minime. Paghi solo per le risorse che utilizzi.

Vediamo come funzionano i prezzi di AWS Kinesis e come applicare alcune best practice per ottimizzare i costi.

Panoramica dei prezzi

I due servizi core di AWS Kinesis, Kinesis Data Streams e Kinesis Video Streams, hanno costi e opzioni di fatturazione diversi in base a come vengono configurati.

Kinesis Data Streams offre due modalità di capacità, ciascuna con costi differenti. Ecco un breve riepilogo:

  • On demand: Paghi in base al volume di dati che acquisisci e recuperi, oltre a una tariffa oraria per ogni data stream configurato nel tuo account AWS.
  • Provisioned: Con la modalità provisioned devi specificare il numero di shard necessari per la tua applicazione e verrai addebitato per ciascuno shard a una tariffa oraria.

La modalità on-demand è un approccio più flessibile e semplice, ideale quando inizi a usare Kinesis Data Streams.

Tuttavia, quando la tua applicazione raggiunge un punto in cui il traffico è più prevedibile e facile da stimare, la modalità provisioned può risultare più conveniente.

Kinesis Video Streams offre un pricing flessibile on-demand basato su tre fattori:

  • Il volume di dati che acquisisci (in gigabyte).
  • Il volume di dati che consumi (in gigabyte).
  • Il volume di dati che archivi in un mese (in gigabyte).

Consigli e best practice per l’ottimizzazione dei costi

Sia Kinesis Data Streams che Kinesis Video Streams non sono inclusi nell’AWS Free Tier. Questo significa che verrai addebitato dal momento in cui configuri uno di questi stream in AWS.

Tuttavia, ci sono diverse best practice e alcuni consigli da seguire durante la configurazione di AWS Kinesis per mantenere bassi i costi.

Per ottimizzare i costi, ecco tre consigli principali da seguire:

  • Passa alla modalità provisioned non appena il tuo traffico diventa prevedibile. Sebbene la modalità on-demand elimini la necessità di monitorare e gestire gli shard, può essere molto più costosa.
  • Puoi passare facilmente tra modalità on-demand e provisioned in base ai pattern di traffico. Per esempio, se ti aspetti picchi in alcune ore del giorno, puoi passare a on-demand e poi tornare alla modalità provisioned quando il traffico torna più costante. Attenzione però: puoi effettuare questo switch solo due volte in un periodo di 24 ore.
    • Configura le policy di conservazione dei dati sin da subito. Kinesis Data Streams non è progettato per l’archiviazione a lungo termine. Ti verrà addebitato lo storage oltre le 24 ore (lo storage è gratuito nelle prime 24 ore).

    AWS Kinesis vs Kafka

    Amazon Managed Streaming for Apache Kafka (Amazon MSK) è un altro servizio di data streaming molto popolare offerto da AWS.

    Puoi trovare la nostra guida completa per principianti ad Amazon MSK in un articolo separato, così come la nostra guida a Kafka.

    Confrontando Amazon MSK con Kinesis, c’è molta sovrapposizione. Entrambi i servizi offrono soluzioni scalabili, sicure e altamente disponibili per applicazioni di data streaming.

    La vera differenza nella scelta del servizio da utilizzare dipende dalle tue preferenze, esigenze e infrastruttura attuale.

    Se stai già usando Apache Kafka, potresti trarre vantaggio dal migrare a una soluzione cloud completamente gestita come Amazon MSK. Allo stesso modo, se il tuo team ha familiarità con Apache Kafka, Amazon MSK sarebbe preferibile rispetto ad Amazon Kinesis.

    Se invece non hai alcuna infrastruttura di data streaming esistente, potresti trovare Amazon Kinesis più adatto ai principianti e più semplice per iniziare.

    Conclusione

    Le analytics in tempo reale stanno diventando sempre più popolari e importanti per molti settori e aziende. Per riuscirci, è necessario impostare un buon sistema di data streaming in grado di gestire grandi quantità di dati senza ritardi o interruzioni.

    AWS ha riconosciuto questa crescente esigenza già nel 2013 e ha continuato a sviluppare e perfezionare una delle sue migliori soluzioni di data streaming: Amazon Kinesis. Oggi, Amazon Kinesis è una soluzione best-in-class per acquisire ed elaborare data stream a velocità straordinarie.

    Se sei nuovo in AWS, inizia con il nostro corso per principianti per saperne di più su AWS e i suoi servizi. Se sei pronto a iniziare una carriera con servizi cloud come AWS, leggi il nostro articolo sulle certificazioni AWS e su come scegliere quella migliore per i tuoi obiettivi. Poi, fai il passo successivo preparandoti a un colloquio e esercitandoti con le principali domande da colloquio su AWS.

    AWS Kinesis FAQ

    A cosa serve Amazon Kinesis?

    Amazon Kinesis è progettato per lo streaming di dati in tempo reale. Questo significa che puoi usare Amazon Kinesis per una varietà di applicazioni che, per loro natura, sono sensibili al tempo. Per esempio, puoi trasmettere log e dati di eventi, raccogliere flussi video da dispositivi con fotocamera o abilitare l’analisi in tempo reale dei dati in streaming.

    Qual è la differenza tra le modalità on-demand e provisioned in Amazon Kinesis Data Streams?

    Con la modalità di capacità on-demand paghi in base all’utilizzo. Questo la rende una buona scelta quando inizi a usare Amazon Kinesis Data Streams. Con la modalità provisioned, devi saper prevedere il traffico e i requisiti di streaming. Può essere impegnativo all’inizio, ma è un’opzione più conveniente nel lungo periodo.

    Qual è meglio, Amazon Managed Streaming for Apache Kafka (Amazon MSK) o Amazon Kinesis?

    Amazon MSK e Amazon Kinesis sono entrambe soluzioni di data streaming. Nessuno dei due servizi è intrinsecamente migliore dell’altro: la scelta dipende dalle tue preferenze, esigenze e infrastruttura attuale. Amazon Kinesis è spesso considerato molto adatto ai principianti, mentre Amazon MSK è ideale se lavori già con Apache Kafka.

    Che cos’è Amazon Kinesis Data Analytics?

    Originariamente, Amazon Kinesis Data Analytics consentiva di eseguire query SQL su dati in streaming in tempo reale. Tuttavia, ad agosto 2023 AWS ha rinominato Kinesis Data Analytics in Amazon Managed Service for Apache Flink (MSF). AWS ha effettuato questo cambiamento per ampliare l’offerta includendo SQL e altri linguaggi di programmazione, come Java e Scala.

    Che cos’è Amazon Kinesis Data Firehose?

    In origine, Amazon Kinesis Data Firehose permetteva di recapitare dati da Kinesis Data Streams o Kinesis Video Streams verso varie destinazioni per analisi o archiviazione. Tuttavia, a febbraio 2024 AWS ha annunciato che Amazon Kinesis Data Firehose sarebbe stato rinominato semplicemente in Amazon Data Firehose. Il cambiamento riflette la crescita delle fonti dati e dei connettori.

    Argomenti

    Correlato