IoT su AWS

Guida ai servizi e costi.

Questo whitepaper descrive come implementare attraverso i servizi AWS un'infrastruttura IoT basilare, ma al tempo stesso completa. Offre, inoltre, una descrizione dettagliata dei vari costi. Dopo aver letto questa pagina, conoscerai:

  • i componenti chiave di un'infrastruttura IoT moderna
  • come stimarne rapidamente i costi
  • quanto ciascun servizio AWS contribuisca al costo operativo totale e quali siano le ottimizzazioni possibili
Panoramica

AWS offre oltre 200 servizi. Se da una parte è fantastico, per certi versi è anche intimidatorio: come puoi conoscerli tutti in dettaglio e sapere come combinarli per creare la piattaforma IoT di cui la tua azienda ha bisogno?

Ecco perché abbiamo deciso di condividere la nostra esperienza e creare questa breve guida, ponendo particolare attenzione sui costi: spesso è difficile anche fornire una stima approssimativa e vogliamo dare il nostro piccolo contributo per cambiare le cose.

Questa guida non ha l'ambizione di essere esaustiva: trattala più come un'introduzione su come utilizzare i servizi AWS in ambito IoT.

Come leggere questo documento (e alcune avvertenze)

Come sempre accade per il software, ci sono molti modi per raggiungere lo stesso obiettivo. Abbiamo cercato, per quanto possibile, di evitare qualsiasi "dipende" e di indicarti il percorso più semplice per creare un'infrastruttura IoT.

Questo whitepaper contiene tre diverse sezioni: servizi, scenari e analisi dei costi - oltre a qualche bonus qua e là. Ogni sezione è indipendente dalle altre: puoi scorrerle nell'ordine che preferisci.

Troverai alcune sezioni evidenziate con il simbolo 💡: queste contengono consigli pratici basati sull'esperienza che abbiamo accumulato negli anni. Dacci retta, seguile e risparmiati i nostri errori.

Basta con le chiacchiere, si parte!

AWS offre una serie di servizi gestiti che possono essere utilizzati per creare un'infrastruttura IoT: il principale vantaggio nell'utilizzarli è che non devi preoccuparti della loro scalabilità.

Ecco l'insieme minimo di servizi AWS di cui avrai bisogno per creare una soluzione IoT basilare, accompagnato da un breve riepilogo delle funzionalità fornite da ognuno di essi.

# Nome Usato per
1 IoT Core Mantenere registri dispositivi, message broker, stato connessione dispositivi, motore di regole, certificati dispositivi (Amazon Sidewalk)
2 IoT Remote Device Management Monitorare la flotta dispositivi, tunneling verso un dispositivo, registrazione dispositivi massiva
3 AWS Lambda Applicare regole a messaggi in arrivo (message mapper)
4 DynamoDB Archiviazione dati
5 S3 - Glacier Deep Archive Archivio di backup, archivio di ripristino
6 Amazon CloudWatch Monitoraggio cloud
7 AWS Key Management Service Creare e controllare chiavi di crittografia (HTTPs, cifratura dati in DynamoDB o S3, ...)
8 Amazon SNS Servizio di notifiche base (e-mail, SMS e notifiche push)
9 Amazon API Gateway Esporre dati tramite API RESTful e Websockets

Come puoi vedere, i servizi possono essere divisi in tre categorie: connessione dispositivi, archiviazione dati e funzionalità ausiliari.

L'archiviazione dei dati merita particolare attenzione. Nelle applicazioni IoT, questo è tipicamente l'aspetto più critico, sia in termini di costi che di prestazioni: la sezione successiva fornisce alcuni suggerimenti su come implementare una strategia di archiviazione dati efficace.

💡 Ottimizzazione dell'archiviazione dei dati

Le applicazioni IoT coinvolgono grandi quantità di dati, raccolti sotto forma di serie temporali. Una delle cose più importanti da osservare è questa: non tutti i dati sono uguali. I valori più recenti sono richiesti frequentemente, mentre i dati più vecchi vengono raramente consultati.

Questo si adatta bene a una struttura di archiviazione a quattro livelli: solitamente vengono identificati come hot, warm, cold e archival. A mano a mano che la temperatura dell'archiviazione diminuisce, le prestazioni ed il costo per byte diminuiscono.

Una strategia di archiviazione ottimale prevede la scrittura dei dati in un database "hot", per poi un progressivo trasferimento verso database "più freddi" con il passare del tempo.

Se i primi tre livelli sono simili tra loro, quello di archiviazione merita una nota particolare. Immaginalo come una memoria economica da scrivere e mantenere, ma estremamente costosa da leggere: è tipicamente utilizzata per archiviare backup minimizzandone il costo.

Facciamo un esempio utilizzando i servizi AWS. Ad esempio, si potrebbero utilizzare:

  • 1 mese di archiviazione DynamoDB standard ("hot")
  • 1 mese di archiviazione DynamoDB standard-infrequent access ("warm"). Questo tipo di archiviazione ha le stesse prestazioni dell'archiviazione standard - ha solo un costo maggiore per l'accesso ai dati, inferiore per il loro mantenimento
  • 1 anno di archiviazione S3 - Glacier Deep Archive ("archival")
  • Backup on-demand di DynamoDB (per l'archiviazione "hot")
  • Esportazione archiviazione DynamoDB a S3 (per il trasferimento dati a Glacier)

Questa configurazione consentirebbe alle applicazioni di accedere agli ultimi 2 mesi di dati raccolti, più manterrebbe i backup per un intero anno. Questa ed altre simulazioni sono esplorate in maggiore dettaglio nella sezione "Scenari".

Una nota finale su DynamoDB: per ottimizzare i costi, è opportuno analizzare il tipo di capacità necessaria per il tuo caso d'uso.

La capacità è "provisioned" o "on-demand": immagina di dover scegliere tra il pagare una somma fissa o per ogni richiesta. Nella nostra esperienza, la maggior parte dei casi d'uso IoT beneficia di un modello provisioned, poiché la maggior parte del traffico può essere facilmente prevista - scala con il numero di dispositivi sul campo. Per approfondire, vedi qui.

Panoramica

Creare un'infrastruttura IoT su AWS e valutarne correttamente il costo significa capire quanti dati sono coinvolti. A tal proposito, dovresti prendere in considerazione tre fattori:

  • quanti dispositivi sono collegati
  • quanti dati raccoglie ciascun dispositivo
  • per quanto tempo desideri conservare i dati

Se hai bisogno di ottenere un preventivo preciso per la tua situazione, la scelta migliore è utilizzare il Calcolatore AWS. Come stima approssimativa, tieni presente che i costi per collegare più dispositivi o per raccogliere più dati aumentano linearmente. Per questo motivo, anziché confrontare quantità diverse di dispositivi, le simulazioni contenute in questo documento sono state standardizzate a 20.000 dispositivi ed è stato evidenziato l'effetto dell'aggiunta di funzionalità diverse.

Configurazioni

Analizzeremo i costi in sei scenari. Ognuno di questi ha una combinazione unica di connettività, archiviazione e servizi ausiliari.

Scenario Dispositivi Traffico mensile [messaggi/dispositivo] Payload [kB] Elaborazione di Lambda
1 20.000 43.800 (1 msg/min) 5 kB No
2 20.000 43.800 (1 msg/min) 10 kB No
3 20.000 43.800 (1 msg/min) 15 kB No
4 20.000 43.800 (1 msg/min) 5 kB No
5 20.000 43.800 (1 msg/min) 10 kB
6 20.000 43.800 (1 msg/min) 15 kB

La seguente tabella riporta la configurazione dell'archiviazione dati in ciascuno degli scenari, introducendo due nuovi termini. Disponibilità dei dati rappresenta per quanto tempo i dati raccolti sono disponibili per essere consumati tramite un'API (cioè da client web, app mobile, ...). Dopo questo periodo, i dati sono ancora presenti - ma non sono facilmente accessibili.

💡 Se questa descrizione ti sembra troppo complicata, ragiona semplicemente in termini di grafici. Se vuoi creare nelle applicazioni dei grafici a partire da questi dati, a quando dovrebbe risalire il dato più vecchio? Questo rappresenta il periodo di disponibilità dei dati.

La conservazione dei dati, invece, è il periodo dopo il quale i dati raccolti vengono eliminati.

Scenario Hot storage [giorni] Warm storage [giorni] Cold storage [giorni] Disponibilità dei dati [giorni] Conservazione dei dati [giorni]
1 30 30 365 60 425
2 30 30 365 60 425
3 30 30 365 60 425
4 180 180 365 360 725
5 180 180 365 360 725
6 180 180 365 360 725

Alcuni parametri, infine, sono stati mantenuti costanti in tutti gli scenari. Questi sono:

Parametro Valore
Protocollo di connessione MQTT
Durata della connessione Sempre attiva (tutto il giorno)
Posizione us-east-2
Elaborazione Lambda Se presente: applicata a tutti i dispositivi, con una minima allocazione di memoria, nessuna concorrenza e 10 ms di tempo CPU per l'elaborazione.
Amazon SNS 10 notifiche HTTP, 10 email per dispositivo al mese
Amazon API Gateway 2M REST API, con cache da 0.5 GB. 200k messaggi WebSocket al giorno (10 comandi per dispositivo al giorno)
Tipo di capacità DynamoDB Provisioned
Assunzioni chiave

I numeri che seguono si riferiscono ad un'infrastruttura rilasciata in una singola regione: nello specifico, la regione AWS più economica disponibile (us-east-2). Come regola generale, la regione scelta dovrebbe trovarsi il più vicino possibile ai tuoi clienti. Se questi sono distribuiti in continenti diversi, o se è necessario garantire una disponibilità maggiore, considera anche una strategia multi-regione.

Tutte le simulazioni sono state eseguite nelle sei varianti riportate nella sezione "Scenari". I costi sono stati arrotondati e, qualora possibile, aggregati per praticità: consulta la sezione "Risorse aggiuntive" per le stime puntuali ottenute tramite il Calcolatore dei prezzi AWS.

Analisi

Iniziamo suddividendo i costi per categoria:

Costi variabili: suddivisione per categoria.
Costi variabili: suddivisione per categoria.

Come si può notare, l'archiviazione è il contributo principale al costo variabile dell'infrastruttura. Se suddividiamo ulteriormente i costi di archiviazione, otteniamo:

Suddivisione dei costi di archiviazione.
Suddivisione dei costi di archiviazione.

L'archiviazione "hot" è la componente più rilevante in tutti gli scenari.

💡 Oltre a ridurre la finestra di disponibilità, una strategia efficiente per minimizzare i costi è archiviare metriche aggregate o elaborate, invece di dati grezzi.

Contributi aggiuntivi, seppur limitati, al costo totale di un'infrastruttura IoT su AWS sono i costi iniziali.

Costi iniziali
Costi iniziali

Mettendo insieme costi iniziali e variabili, possiamo ottenere una stima del costo totale per il primo anno di gestione:

Costo totale per il primo anno di operazioni
Costo totale per il primo anno di operazioni.

Come si può vedere dal grafico precedente, il costo per un'infrastruttura IoT su AWS è estremamente variabile, anche se il numero di dispositivi è costante: c'è una differenza di 10 volte tra la stima più alta e più bassa (da $50.000 a $500.000), solo per servizi e risorse di calcolo.

E adesso?

Congratulazioni per aver letto fino alla fine! Speriamo che ora tu abbia una comprensione maggiore sui componenti necessari per costruire una piattaforma IoT e quanto questa potrebbe costare.

Ora, la brutta notizia: hai risolto solo metà del puzzle. Per ottenere una soluzione IoT utilizzabile, ti mancano almeno:

  • un modo per far dialogare tutti i servizi menzionati
  • applicazioni dedicate agli utenti finali (app web, app mobili, ...)
  • gestione utenti e autorizzazioni (non sottovalutare questo punto!)
  • supporto
  • servizi aggiuntivi (a seconda delle tue esigenze: report, esecuzione di regole, integrazione con sistemi di pagamento, ...)

Ecco perché abbiamo creato Connhex: se vuoi dare saperne di più, visita connhex.com.


Questa anteprima web non include risorse aggiuntive come una descrizione dei prezzi per servizio e riferimenti al calcolatore ufficiale AWS per ogni scenario. Il Whitepaper completo contiene anche le condizioni legali di utilizzo, che si applicano a tutti i contenuti di questa pagina.

Se desideri approfondire, puoi scaricare il PDF completo qui sotto. Non chiediamo nulla, nemmeno il tuo indirizzo email👇