Esperienze di IoT e scalabilità con AWS Timestream

Scegliere AWS Timestream


 

Negli ultimi anni i database specializzati per le serie temporali ( in gergo TSDB – Time Series Database) hanno guadagnato notorietà e sono sempre più utilizzati per le loro particolarità e la grande adattabilità nelle applicazioni IoT e negli scenari di analisi dati. LOGCONSULTING ha sempre lavorato in contesti industriali dove, tra i dati raccolti, la variabile dipendente “tempo” è sempre presente. Quando si è trattato di scegliere un prodotto adattabile ai carichi di lavoro dei nostri progetti SaaS, la scelta è caduta su AWS e Amazon Timestream. Abbiamo valutato e scelto il servizio managed Amazon Timestream, consci della grande esperienza di AWS nell’elaborazione dati e nello storage distribuito.  Amazon Timestream è stato creato da AWS con un’architettura Serverless, un’elevata scalabilità e una forte integrazione con i componenti che LOGCONSULTING già utilizza nei suoi progetti; componenti quali AWS IOT Core, AWS Forecast ecc..

I requisiti che AWS Timestream ha rispettato durante il nostro processo di selezione e scelta del prodotto, sono stati:

Gestione del ciclo di vita dei dati. I dati non possono essere cancellati, solo archiviati e letti. I dati “vivono” nel database per un periodo di tempo prestabilito e per un massimo di 200 anni.
Elevata compatibilità e sicurezza grazie alla compliance nativa del servizio con le norme di riferimento per la security e la privacy dei dati(GDPR).
Raggiungibilità in più regioni tra cui due in Europa.
Compatibilità con AWS IoT Core.
Velocità, prestazioni e costi drasticamente più convenienti di un database relazionale. Database con scritture e letture dei dati in memoria molto veloci.
Compliance, Amazon Timestream è idoneo e conforme alle norme HIPAA, ISO (9001, 27001, 27017 e 27018), PCI DSS e Health Information Trust Alliance (HITRUST) Common Security Framework (CSF). Inoltre, Amazon Timestream rientra nell’ambito dei report SOC di AWS SOC 1, SOC 2 e SOC 3.

I casi d’uso, le misurazioni e le esperienze svolte con AWS Timestream ci hanno portato a utilizzare questo prodotto in tutti i nostri progetti IoT dove migliaia di dispositivi connessi eseguono injection di dati attraverso code MQTT, TOPICS e STREAMS dedicati. In particolare Timestream è risultato estremamente competitivo in questi ambiti:

Archiviazione, analisi dati e indicatori di produzione (KPI) come : OEE, tempi di produzione, indicazione degli allarmi e controllo dell’andamento della produzione nel tempo.

Archiviazione di dati sensibili ricavati da dispositivi medici che trasmettono costantemente i dati relativi a gas sedativi, temperature, pressioni, dati biometrici ecc. La crittografia e la privacy garantita dal servizio sono stati determinanti per queste tipologie di dati.

Nelle applicazioni SaaS in cui la durata del servizio è prestabilita, il dato può essere cancellato al termine del contratto SaaS. In questo caso non è più responsabilità del DBA o del DevOps monitorare e intervenire durante il ciclo di vita del dato.

 

Timeseries e il gateway REST API


 

Quando si accumulano una grande quantità di dati, questi si devono interrogare con alta velocità e bassa latenza ad intervalli regolari. Farlo globalmente è diventata una delle sfide che ci siamo trovati davanti. I dati archiviati su timestream non variano mai una volta archiviati e su questo presupposto abbiamo creato un nostro Gateway che, con tre differenti livelli di cache, permette ai nostri clienti, di convertire le query SQL scritte per Timestream in API RESTful pronte all’uso. Il nostro gateway risiede in ogni region AWS e con un routing intelligente riesce ad aggregare i dati che risiedono su Istanze timestream differenti in una unica API, permettendo una velocità di implementazione delle soluzioni IoT globali mai vista.

 

Ora i nostri clienti possono semplicemente scrivere le loro query, confrontarsi con noi su come ottimizzarle ed integrarle subito come sorgenti dati RESTful . Il funzionamento è semplice, ad ogni cliente viene assegnato un token/key così che possa da subito iniziare a scrivere ed eseguire le query. Ad ogni query verrà assegnato un numero richiamabile via REST globalmente.