IoT-anturidatan pilvitallennus- ja kustannusstrategioiden optimointi

06.09.2024

IoT-laitteiden ja pilven välisen kommunikoinnin eri ratkaisujen tulee ottaa huomioon useita tärkeitä tekijöitä, kuten datan tallennusviive, pilvikustannukset ja pilvi-infrastruktuurin skaalautuvuus. Lopputuote ja sen prioriteetit määrittävät viestinnässä käytettävät palvelut ja menetelmät. Ohjelmistoarkkitehtuuriset periaatteet pysyvät kuitenkin samoina riippumatta käytetyistä pilvipalveluista ja -palveluntarjoajista. Opinnäytetyön tavoitteena oli parantaa Sade Innovationsin luomaa SADE Booster IoT Asset -alustaa kehittämällä telemetrialle kustannustehokkaampi dataputki.

SADE Booster IoT Asset on kokoelma erilaisia ohjelmisto- ja laitteistojärjestelmiä. Se perustuu vahvasti Amazon Web Service (AWS) -konsepteihin ja laajentaa sekä kehittää niitä mahdollistamaan erilaiset käyttötapaukset. Booster koostuu useista IoT-alustoista, AWS-pilvijärjestelmästä sekä web- ja mobiilisovelluksesta. Boosterin taustalla oleva ajatus on mahdollistaa nopea tutkimus- ja kehitysvaihe valmiiden rakennuspalikoidensa avulla, jotka yhdistävät laitteet pilveen.

Nykyinen dataputki toimii seuraavasti: IoT-laite lähettää viestin AWS IoT Coreen käyttäen MQTT (Message Queuing Telemetry Transport) -protokollaa, mikä laukaisee Lambda-funktion. Lambda-funktio hoitaa saapuvan anturidatan käsittelyn ja tallentaa käsitellyn datan tietokantoihin. Kuitenkin tilanteissa, joissa yksittäisten laitteiden pilvikustannusten vähentäminen on tärkeää, tämä menetelmä voi olla liian kallis johtuen jokaisen MQTT-viestin, Lambda-kutsun ja tietokantoihin kohdistuvien yksittäisten kirjoitusoperaation aiheuttamista kustannuksista. Siksi on tarpeen kehittää vaihtoehtoinen tapa käsitellä ja tallentaa saapuva anturidata.

Amazon Data Firehose uuden dataputken pohjana

Pilvikustannuksia on mahdollista vähentää siirtymällä pois anturidatan yksitellen käsittelystä ja sen sijaan syöttämällä datan pilveen erissä. Koska Booster on rakennettu Serverless-arkkitehtuurin päälle, ratkaisu on erittäin skaalautuva, ja koska dataa käsitellään yksittäin, pilvipalvelujen komponenttien aiheuttamat kustannukset kasvavat lineaarisesti. Siksi on toivottavaa, että uusi ratkaisu säilyttää skaalautuvuuden ja samalla alentaa pilvikustannuksia. Saapuvan anturidatan erissä käsittelyn mahdollistamiseksi IoT Coren tilalle valittiin Amazon Data Firehose.

Firehose voi vastaanottaa anturidataa suoraan laitteilta ja puskuroida saapuvaa dataa, kunnes se saavuttaa asetetun koon tai aikarajan. Firehose aiheuttaa kustannuksia vain syötetyn datan määrän perusteella, mikä tekee kustannuksista ennakoitavia ja laitekohtaisesti alhaisia, koska yhden anturidatan koko on suhteellisen pieni. Anturidatan puskurointi mahdollistaa datan käsittelyn erissä, mikä johtaa alhaisempiin kustannuksiin verrattuna yksittäisiin operaatioihin. Firehose pystyy käsittelemään useita gigatavuja dataa tunnissa, mikä tarkoittaa, että jopa suuren laitemäärän kanssa Firehose ei aiheuta skaalausongelmia.

Testitulokset osoittavat pilvikustannuksissa huomattavia säästöjä

Testeissä vertailtiin käytettyjen AWS-palveluiden kerryttämiä pilvikustannuksia molemmilla toteutuksilla, lähettämällä miljoona anturidataviestiä 3 600 simuloidulta laitteelta. Anturidataviestit lähetettiin IoT Coreen, sekä Firehoseen, jotta uudesta ja nykyisestä toteutuksesta saatiin vertailtavaa dataa (kuva 1).

Kuva 1. Testitulosten kerryttämät pilvikustannukset AWS-palveluista.

Tulosten perusteella uuden toteutuksen kokonaiskustannukset olivat noin 70 % nykyistä toteutusta alhaisemmat. Pääasialliset tekijät, jotka vaikuttivat pilvikustannusten alentumiseen, olivat seuraavat:

  • Anturidataviestien vastaanottamisessa Firehose oli huomattavasti IoT Corea kustannustehokkaampi.
  • Viestien puskurointi vähensi tarvittavia Lambda -funktiokutsujen määrää.
  • Puskurointi mahdollisti käsitellyn anturidatan tallentamista erissä tietokantoihin.

Firehose-pohjainen telemetriaputki on ollut onnistunut lisäys Boosteriin. Kahden eri dataputken olemassaolo lisää joustavuutta, sillä molempia toteutuksia voidaan käyttää rinnakkain. Sovellus voi hyödyntää molempia ratkaisuja eri alueilla tarpeen mukaan, hyötyen nykyisen ratkaisun reaaliaikaisuudesta ja uuden ratkaisun kustannustehokkuudesta.

Lähde:

Kuoppala, H. 2024. Optimizing cloud storage and cost strategies for IoT sensor data using Amazon Web Services – Theseus, Turun ammattikorkeakoulun opinnäytetyö.