Hvad er DynamoDB fra Amazon? Alt, hvad du behøver at vide
DynamoDB er en fuldt administreret, serverløs NoSQL-database udviklet af Amazon. Dens sømløse skalering, responstider på millisekunder, minimale driftsomkostninger og nem AWS-integration er vigtige fordele. Anvendelsesmulighederne spænder fra softwareudvikling til skalering af spilplatforme og streaming af video i realtid.
Hvad er DynamoDB?
Amazon DynamoDB er en serverløs NoSQL-databasetjeneste til moderne applikationer i alle størrelser og har været leveret af AWS (Amazon Web Services) siden 2012. I modsætning til mange konkurrenter er DynamoDB en fuldt administreret løsning. Derfor er der ikke behov for at håndtere opgaver som opgraderinger, opdateringer eller skalering. Databasestyringssystemet tilbyder også en bred vifte af sikkerhedsfunktioner og overholdelsesstandarder. Desuden integreres DynamoDB problemfrit med andre AWS-tjenester som Lambda eller Amazon OpenSearch Service.
Strukturen i DynamoDB
Databasestrukturen har en klar hierarki med tabeller som de øverste enheder, uden strenge relationer mellem dem, i modsætning til relationelle databaser. Amazon DynamoDB gemmer data i partitioner, som automatisk replikeres. Hver partition består af tre noder, der hver indeholder en kopi af dataene, hvilket muliggør nem skalering og giver redundans i tilfælde af en nodefejl. Udviklere gemmer poster som attributter og tildeler dem en unik primær nøgle. Databasen understøtter både nøgle-værdi-datamodeller og dokumentorienterede modeller.
Tabelklasser i AWS DynamoDB
Ved at bruge tabelklasser kan DynamoDB-tablers ydeevne og omkostningsstruktur optimeres. Brugere kan vælge mellem to klasser og skifte mellem dem to gange inden for 30 dage uden nedetid for at tilpasse omkostningerne til brugsmønstre.
- DynamoDB Standard er designet som standardtabellklasse til højtydende arbejdsbelastninger og tabeller med uforudsigelige arbejdsbelastninger. Til sammenligning er standardtabeller kendetegnet ved lavere omkostninger til læse- og skriveoperationer.
- DynamoDB Standard Infrequent Access er optimeret til tabeller, hvor lagerplads er den største omkostningsfaktor. IA-standardtabeller tilbyder lavere lageromkostninger. Klassen er også ideel til tabeller med data, der sjældent tilgås.
Hvilke funktioner tilbyder DynamoDB?
DynamoDB tilbyder en række kraftfulde funktioner, der muliggør skalerbare, højt tilgængelige og responsive applikationer. Følgende oversigt opsummerer de vigtigste funktioner:
- Nøgle-værdi- og dokumentdatamodeller: Databasen har et fleksibelt skema, der gør det muligt at tildele mange forskellige attributter til individuelle elementer.
- ACID-transaktioner: NoSQL-databasen leverer transaktioner med atomicitet, konsistens, isolation og holdbarhed – kendt som ACID – til en bred vifte af applikationer. Dette gør det muligt at udvide skalerbarheden og ydeevnen af DynamoDB til en bredere vifte af forretningskritiske processer.
- Globale tabeller med aktiv-aktiv replikering: DynamoDB globale tabeller er multiaktive, hvilket giver brugerne mulighed for at skrive til og læse fra enhver replika. Kapaciteten tilpasses automatisk til regionale arbejdsbelastninger.
- DynamoDB Streams: Denne funktion registrerer ændringsdata. Når et element oprettes, opdateres eller slettes i en tabel, registrerer DynamoDB Streams begivenheden og gemmer den i 24 timer.
- Sekundære indekser: DynamoDB tillader både lokale og globale sekundære indekser for at muliggøre forespørgsler ved hjælp af alternative nøgler. De kan eventuelt implementeres som sparsomme indekser for specifikt kun at indeksere delmængder af dataene.
- Automatisk partitionering: Data distribueres automatisk på tværs af flere partitioner og skaleres efter behov.
- Sikkerhedsfunktioner: Databasen tilbyder omfattende funktioner, der sikrer sikkerheden af dine data. Disse omfatter detaljerede adgangskontrolfunktioner, kryptering i hvile, punktgenopretning, on-demand-backups og privat netværksforbindelse.
- Kapacitetsmodeller: Brugere har mulighed for at vælge mellem en on-demand kapacitetsmodus og en forudbestemt kapacitetsmodus.
- DynamoDB Accelerator (DAX): Dette er en valgfri tjeneste til forbedret caching, der øger ydeevnen op til ti gange.
Fordele og ulemper ved Amazon DynamoDB
Amazons NoSQL-tjeneste DynamoDB imponerer især med følgende:
- Automatisk skalering: AWS DynamoDB justerer dynamisk kapacitet og partitionering, så den passer til gennemstrømningen, hvilket muliggør ubegrænset horisontal vækst.
- Serverløs arkitektur: Databasestyringssystemet er fuldt administreret. Dette giver brugerne mulighed for at fokusere udelukkende på applikationsudvikling i stedet for at skulle koncentrere sig om den underliggende infrastruktur.
- Høj tilgængelighed: Databaser i flere regioner og automatisk replikering sikrer en tilgængelighed på op til 99,999 %.
- Lav latenstid: NoSQL-databasen giver som standard læse- og skriveadgang med en latenstid på under 10 millisekunder. Med DynamoDB Accelerator kan responstiderne endda reduceres til mikrosekunder, hvis det er nødvendigt.
- Enkel AWS-integration: Den sømløse integration af AWS-tjenester som CloudWatch eller Kinesis udvider DynamoDB’s funktionalitet og muliggør yderligere dataanalyser.
Selvom fordelene klart opvejer ulemperne, og DynamoDB helt klart er blandt de bedste SQL-alternativer, har platformen også nogle svagheder. På den ene side tilbyder databasen kun begrænsede søgemuligheder, som er mindre omfattende end mange konkurrerende tilbud. På den anden side gør den tætte integration med AWS-tjenester migration til andre platforme vanskeligere. Med on-demand-modeller er der også en risiko for, at spidsbelastninger i efterspørgslen kan føre til uforudsigeligt høje gebyrer.
Hvilke anvendelsesområder er DynamoDB velegnet til?
DynamoDB er specielt designet til arbejdsbelastninger, hvor enorme mængder data skal behandles, skaleres og leveres med meget lav latenstid og høj tilgængelighed. Typiske anvendelsestilfælde omfatter:
- Serverløse webapplikationer og mobile backends, hvor kontodata, sessioner og konfigurationer hentes med minimal ventetid
- Spilplatforme, hvor hundredtusinder eller millioner af brugere får adgang til spilservere samtidigt
- Streaming af indhold til et globalt publikum med ujævn eller pludselig stigende trafik
- Banker og finansielle servicevirksomheder, der skal behandle mange transaktioner samtidigt og i realtid, samtidig med at de står over for udfordringen med at sikre rettidighed og sikkerhed i finansielle transaktioner
- IoT-applikationer (IoT = Internet of Things), der behandler og lagrer sensordata i stor skala
De vigtigste alternativer til DynamoDB
Ud over DynamoDB findes der andre databasesystemer, der kan fungere som alternativer afhængigt af krav, datamodel, skalering og infrastruktur. Disse omfatter primært:
- MongoDB: Høj fleksibilitet og ubegrænset skalerbarhed
- MySQL: Relationssystem med førsteklasses tilgængelighed
- MariaDB: Open source-alternativ til DynamoDB
- PostgreSQL: Relationsdatabaseløsning med understøttelse af ikke-relationsdatatyper
- Firebase fra Google: Et fremragende alternativ, især til mobil- og webapplikationer
- Apache Cassandra: Særligt ideel til store datamængder
De enkelte DynamoDB-alternativers fordele er beskrevet i detaljer i den linkede vejledning.