Mikä on Amazonin DynamoDB? Kaikki mitä sinun tarvitsee tietää
DynamoDB on Amazonin kehittämä täysin hallinnoitu, palvelimeton NoSQL-tietokanta. Sen saumaton skaalautuvuus, millisekunnin vasteajat, minimaalinen ylläpitotyö ja helppo AWS-integraatio ovat sen tärkeimpiä etuja. Käyttötapauksia ovat esimerkiksi ohjelmistokehitys, pelialustojen skaalaus ja reaaliaikainen videostriimaus.
Mikä on DynamoDB?
Amazon DynamoDB on palvelimettoman NoSQL-tietokantapalvelu nykyaikaisille sovelluksille kaikenkokoisille, ja sitä on tarjonnut AWS (Amazon Web Services) vuodesta 2012 lähtien. Toisin kuin monet kilpailijat, DynamoDB on täysin hallinnoitu ratkaisu. Sen ansiosta päivityksiä, uudistuksia tai skaalausta ei tarvitse hoitaa itse. Tietokannan hallintajärjestelmä tarjoaa myös laajan valikoiman turvallisuusominaisuuksia ja vaatimustenmukaisuusstandardeja. Lisäksi DynamoDB integroituu saumattomasti muihin AWS-palveluihin, kuten Lambdaan tai Amazon OpenSearch Serviceen.
DynamoDB:n rakenne
Tietokannan rakenne on selkeästi hierarkkinen, ja taulukot ovat sen ylimpänä tasona. Toisin kuin relaatiotietokannoissa, taulukoiden välillä ei ole tiukkoja suhteita. Amazon DynamoDB tallentaa tiedot osioihin, jotka replikoidaan automaattisesti. Jokainen osio koostuu kolmesta solmusta, joista jokainen sisältää kopion tiedoista. Tämä mahdollistaa helpon skaalautuvuuden ja tarjoaa redundanssin solmun vikaantuessa. Kehittäjät tallentavat tietueet attribuutteina ja määrittävät niille yksilöllisen ensisijaisen avaimen. Tietokanta tukee sekä avain-arvo-tietomalleja että dokumenttipohjaisia malleja.
Taulukkoluokat AWS DynamoDB:ssä
Taulukkoluokkien avulla DynamoDB-taulukoiden suorituskykyä ja kustannusrakennetta voidaan optimoida. Käyttäjät voivat valita kahden luokan välillä ja vaihtaa niiden välillä kahdesti 30 päivän aikana ilman käyttökatkoksia, jotta kustannukset voidaan mukauttaa käyttötapoihin.
- DynamoDB Standard on suunniteltu oletusarvoiseksi taulukkoluokaksi korkean suorituskyvyn työkuormille ja taulukoille, joiden työkuormitus on arvaamaton. Vertailun vuoksi standarditaulukoille on ominaista alhaisemmat lukemisen ja kirjoittamisen kustannukset.
- DynamoDB Standard Infrequent Access on optimoitu taulukoille, joissa tallennustila on suurin kustannustekijä. IA-vakiotaulukot tarjoavat alhaisemmat tallennuskustannukset. Luokka on myös ihanteellinen taulukoille, joiden tietoja käytetään harvoin.
Mitä ominaisuuksia DynamoDB tarjoaa?
DynamoDB tarjoaa monia tehokkaita ominaisuuksia, jotka mahdollistavat skaalautuvat, erittäin käytettävissä olevat ja reagoivat sovellukset. Seuraava yleiskatsaus esittelee tärkeimmät ominaisuudet:
- Avain-arvo- ja dokumenttitietomallit: Tietokanta sisältää joustavan skeeman, joka mahdollistaa monien eri attribuuttien määrittämisen yksittäisille kohteille.
- ACID-transaktiot: NoSQL-tietokanta tarjoaa transaktioille atomisuuden, konsistenssin, eristyneisyyden ja kestävyyden (tunnetaan nimellä ACID) monenlaisiin sovelluksiin. Tämä mahdollistaa DynamoDB:n skaalautuvuuden ja suorituskyvyn laajentamisen kattamaan laajemman valikoiman liiketoiminnalle kriittisiä prosesseja.
- Globaalit taulukot aktiivisen-aktiivisen replikoinnin kanssa: DynamoDB:n globaalit taulukot ovat moniaktiivisia, joten käyttäjät voivat kirjoittaa ja lukea mistä tahansa replikasta. Kapasiteetti säätyy automaattisesti alueellisten työmäärien mukaan.
- DynamoDB Streams: Tämä ominaisuus tallentaa muutostiedot. Kun taulukkoon luodaan, päivitetään tai poistetaan kohde, DynamoDB Streams tallentaa tapahtuman ja säilyttää sen 24 tuntia.
- Toissijaiset indeksit: DynamoDB sallii sekä paikalliset että globaalit toissijaiset indeksit, jotta kyselyt voidaan suorittaa vaihtoehtoisilla avaimilla. Ne voidaan valinnaisesti toteuttaa harvoina indekseinä, jotta vain tietojen osajoukot indeksoidaan.
- Automaattinen osiointi: Tiedot jaetaan automaattisesti useisiin osioihin ja skaalataan tarpeen mukaan.
- Turvallisuusominaisuudet: Tietokanta tarjoaa laajat ominaisuudet tietojen turvallisuuden varmistamiseksi. Näitä ovat tarkat käyttöoikeuksien hallinta, salaus levossa, pistekohtainen palautus, tilausperusteiset varmuuskopiot ja yksityinen verkkoyhteys.
- Kapasiteettimallit: Käyttäjät voivat valita tilauspohjaisen kapasiteettitilan ja varatun kapasiteettitilan välillä.
- DynamoDB Accelerator (DAX): Tämä on valinnainen palvelu, joka parantaa välimuistia ja nostaa suorituskykyä jopa kymmenkertaiseksi.
Amazon DynamoDB:n edut ja haitat
Amazonin NoSQL-palvelu DynamoDB tekee vaikutuksen pääasiassa seuraavilla ominaisuuksilla:
- Automaattinen skaalaus: AWS DynamoDB säätää kapasiteettia ja osiointia dynaamisesti läpimenon mukaan, mikä mahdollistaa rajattoman vaakasuuntaisen kasvun.
- Palvelimeton arkkitehtuuri: Tietokannan hallintajärjestelmä on täysin hallinnoitu. Tämän ansiosta käyttäjät voivat keskittyä täysin sovelluskehitykseen sen sijaan, että heidän pitäisi keskittyä taustalla olevaan infrastruktuuriin.
- Korkea käytettävyys: Monialueiset tietokannat ja automaattinen replikointi takaavat jopa 99,999 %:n käytettävyyden.
- Pieni viive: NoSQL-tietokanta tarjoaa lukemisen ja kirjoittamisen oletusarvoisesti yhden millisekunnin viiveellä. DynamoDB Acceleratorin avulla vasteaikoja voidaan tarvittaessa lyhentää jopa mikrosekunnin luokkaan.
- Yksinkertainen AWS-integraatio: AWS-palveluiden, kuten CloudWatchin tai Kinesisin, saumaton integraatio laajentaa DynamoDB:n toiminnallisuutta ja mahdollistaa lisätietojen analysoinnin.
Vaikka edut ovat selvästi suuremmat ja DynamoDB on ehdottomasti yksi parhaista SQL-vaihtoehdoista, alustalla on myös joitakin heikkouksia. Toisaalta tietokanta tarjoaa vain rajoitettuja kyselyvaihtoehtoja, jotka ovat vähemmän kattavia kuin monet kilpailevat tuotteet. Toisaalta tiivis integrointi AWS-palveluihin vaikeuttaa siirtymistä muihin alustoihin. On-demand-malleissa on myös riski, että kysynnän piikit voivat johtaa arvaamattoman korkeisiin maksuihin.
Mihin sovellusalueisiin DynamoDB sopii?
DynamoDB on suunniteltu erityisesti työkuormille, joissa on käsiteltävä ja skaalattava valtavia määriä dataa erittäin pienellä viiveellä ja korkealla käytettävyydellä. Tyypillisiä käyttötapauksia ovat:
- Palvelimettomat verkkosovellukset ja mobiililaitteiden taustapalvelut, joissa tilitiedot, istunnot ja asetukset haetaan minimaalisella viiveellä
- Pelialustat, joissa sadat tuhannet tai miljoonat käyttäjät käyttävät pelipalvelimia samanaikaisesti
- Sisällön suoratoisto globaalille yleisölle, jossa liikenne on epätasaista tai ruuhkautuu
- Pankit ja rahoituspalveluyritykset, joiden on käsiteltävä useita tapahtumia samanaikaisesti ja reaaliajassa, samalla kun niiden on varmistettava rahoitustapahtumien oikea-aikaisuus ja turvallisuus
- IoT-sovellukset (IoT = esineiden internet), jotka käsittelevät ja tallentavat anturitietoja suuressa mittakaavassa
DynamoDB:n tärkeimmät vaihtoehdot
DynamoDB:n lisäksi on olemassa muita tietokantajärjestelmiä, jotka voivat toimia vaihtoehtoina riippuen vaatimuksista, tietomallista, skaalautuvuudesta ja infrastruktuurista. Näitä ovat pääasiassa:
- MongoDB: Suuri joustavuus ja rajaton skaalautuvuus
- MySQL: Suhteellinen järjestelmä, jonka käytettävyys on huippuluokkaa
- MariaDB: Avoimen lähdekoodin vaihtoehto DynamoDB:lle
- PostgreSQL: Suhteellinen tietokantaratkaisu, joka tukee ei-suhteellisia tietotyyppejä
- Firebase by Google: Erinomainen vaihtoehto erityisesti mobiili- ja verkkosovelluksiin
- Apache Cassandra: Erityisen sopiva suurille tietomäärille
Yksittäisten DynamoDB-vaihtoehtojen tarjoamat edut käsitellään yksityiskohtaisesti linkitetyssä oppaassa.