DynamoDB är en helt hanterad, serverlös NoSQL-databas som ut­veck­lats av Amazon. Dess sömlösa skal­bar­het, svars­ti­der på mil­li­se­kun­der, minimala drifts­in­sat­ser och enkla AWS-in­teg­ra­tion är viktiga fördelar. An­vänd­nings­om­rå­de­na sträcker sig från mjuk­va­ru­ut­veck­ling till skalbara spel­platt­for­mar och vi­de­ostrea­ming i realtid.

Vad är DynamoDB?

Amazon DynamoDB är en serverlös NoSQL-da­ta­bas­tjänst för moderna ap­pli­ka­tio­ner i alla storlekar och har till­han­da­hål­lits av AWS (Amazon Web Services) sedan 2012. Till skillnad från många kon­kur­ren­ter är DynamoDB en helt hanterad lösning. Det innebär att du inte behöver hantera uppgifter som upp­gra­de­ring­ar, upp­da­te­ring­ar eller skalning. Da­ta­bashan­te­rings­sy­ste­met erbjuder också ett brett utbud av sä­ker­hets­funk­tio­ner och ef­ter­lev­nads­stan­dar­der. Dessutom in­te­gre­ras DynamoDB sömlöst med andra AWS-tjänster som Lambda eller Amazon Open­Se­arch Service.

Struk­tu­ren hos DynamoDB

Da­ta­bas­struk­tu­ren har en tydlig hierarki med tabeller som över­ord­na­de enheter, utan strikta re­la­tio­ner mellan dem, till skillnad från re­la­tions­da­ta­ba­ser. Amazon DynamoDB lagrar data i par­ti­tio­ner som re­pli­ke­ras au­to­ma­tiskt. Varje partition består av tre noder, som var och en in­ne­hål­ler en kopia av data, vilket möjliggör enkel skalning och ger redundans i händelse av ett nodfel. Ut­veck­la­re lagrar poster som attribut och tilldelar dem en unik pri­mär­nyc­kel. Databasen stöder både nyckel-värde-da­ta­mo­del­ler och do­ku­men­t­o­ri­en­te­ra­de modeller.

Ta­bell­klas­ser i AWS DynamoDB

Genom att använda ta­bell­klas­ser kan prestanda och kost­nads­struk­tur för DynamoDB-tabeller optimeras. Användare kan välja mellan två klasser och växla mellan dem två gånger inom 30 dagar utan drift­stopp för att anpassa kost­na­der­na efter an­vänd­nings­mönst­ren.

  • DynamoDB Standard är utformad som stan­dard­ta­bell­klass för hög­pre­ste­ran­de ar­bets­be­last­ning­ar och tabeller med oför­ut­säg­ba­ra ar­bets­be­last­ning­ar. Jämfört med detta kän­ne­teck­nas stan­dard­ta­bel­ler av lägre kostnader för läs- och skri­vo­pe­ra­tio­ner.
  • DynamoDB Standard In­fre­quent Access är optimerad för tabeller där lagring är den största kost­nads­fak­torn. IA-stan­dard­ta­bel­ler erbjuder lägre lag­rings­kost­na­der. Klassen är också idealisk för tabeller med data som sällan används.

Vilka funk­tio­ner erbjuder DynamoDB?

DynamoDB erbjuder en rad kraft­ful­la funk­tio­ner som möjliggör skalbara, hög­till­gäng­li­ga och re­spon­si­va ap­pli­ka­tio­ner. Följande översikt sam­man­fat­tar de vik­ti­gas­te funk­tio­ner­na:

  • Nyc­kel­vär­de- och do­ku­ment­da­ta­mo­del­ler: Databasen har ett flexibelt schema som gör det möjligt att tilldela många olika attribut till enskilda objekt.
  • ACID-trans­ak­tio­ner: NoSQL-databasen till­han­da­hål­ler trans­ak­tio­ner med ato­mi­ci­tet, kon­si­stens, isolering och håll­bar­het – känt som ACID – för ett brett spektrum av ap­pli­ka­tio­ner. Detta gör det möjligt att utöka skal­bar­he­ten och pre­stan­dan hos DynamoDB till ett bredare spektrum av af­fär­skri­tis­ka processer.
  • Globala tabeller med aktiv-aktiv re­pli­ke­ring: DynamoDB:s globala tabeller är mul­ti­ak­ti­va, vilket gör det möjligt för användare att skriva till och läsa från valfri replik. Ka­pa­ci­te­ten justeras au­to­ma­tiskt efter regionala ar­bets­be­last­ning­ar.
  • DynamoDB Streams: Denna funktion re­gi­stre­rar änd­rings­da­ta. När ett objekt skapas, upp­da­te­ras eller raderas i en tabell re­gi­stre­rar DynamoDB Streams händelsen och lagrar den i 24 timmar.
  • Sekundära index: DynamoDB tillåter både lokala och globala sekundära index för att möj­lig­gö­ra sökningar med al­ter­na­ti­va nycklar. De kan valfritt im­ple­men­te­ras som glesa index för att specifikt indexera endast del­mäng­der av data.
  • Au­to­ma­tisk par­ti­tio­ne­ring: Data dis­tri­bue­ras au­to­ma­tiskt över flera par­ti­tio­ner och skalas efter behov.
  • Sä­ker­hets­funk­tio­ner: Databasen erbjuder om­fat­tan­de funk­tio­ner för att sä­ker­stäl­la sä­ker­he­ten för dina data. Dessa in­klu­de­rar de­tal­je­ra­de åt­komst­kon­trol­ler, kryp­te­ring vid lagring, åter­ställ­ning till en viss tidpunkt, sä­ker­hetsko­pi­e­ring på begäran och privat nät­verk­san­slut­ning.
  • Ka­pa­ci­tets­mo­del­ler: Användare kan välja mellan ett ka­pa­ci­tets­lä­ge på begäran och ett ka­pa­ci­tets­lä­ge med för­ut­be­stämd kapacitet.
  • DynamoDB Ac­ce­le­ra­tor (DAX): Detta är en valfri tjänst för för­bätt­rad caching som ökar pre­stan­dan upp till tio gånger.

Fördelar och nackdelar med Amazon DynamoDB

Amazons NoSQL-tjänst DynamoDB imponerar främst med följande:

  • Au­to­ma­tisk skalning: AWS DynamoDB justerar dynamiskt kapacitet och par­ti­tio­ne­ring för att matcha ge­nom­ström­ning­en, vilket möjliggör obe­grän­sad ho­ri­son­tell tillväxt.
  • Serverlös ar­ki­tek­tur: Da­ta­bashan­te­rings­sy­ste­met är helt hanterat. Detta gör att an­vän­dar­na kan fokusera helt på ap­pli­ka­tions­ut­veck­ling istället för att behöva kon­cen­tre­ra sig på den un­der­lig­gan­de in­fra­struk­tu­ren.
  • Hög till­gäng­lig­het: Databaser i flera regioner och au­to­ma­tisk re­pli­ke­ring sä­ker­stäl­ler en till­gäng­lig­het på upp till 99,999 %.
  • Låg latens: NoSQL-databasen ger läs- och skri­våt­komst med en latens på en siffra i mil­li­se­kun­der som standard. Med DynamoDB Ac­ce­le­ra­tor kan svars­ti­der­na till och med reduceras till mik­ro­se­kun­der om det behövs.
  • Enkel AWS-in­teg­ra­tion: Den sömlösa in­teg­ra­tio­nen av AWS-tjänster som Cloud­Watch eller Kinesis utökar funk­tio­na­li­te­ten hos DynamoDB och möjliggör yt­ter­li­ga­re da­taa­na­ly­ser.

Även om för­de­lar­na klart överväger och DynamoDB de­fi­ni­tivt är ett av de bästa al­ter­na­ti­ven till SQL, har platt­for­men också vissa svagheter. Å ena sidan erbjuder databasen endast be­grän­sa­de sö­kal­ter­na­tiv, som är mindre om­fat­tan­de än många kon­kur­re­ran­de er­bju­dan­den. Å andra sidan gör den täta in­teg­ra­tio­nen med AWS-tjänster det svårare att migrera till andra platt­for­mar. Med on-demand-modeller finns också risken att ef­ter­frå­getop­par kan leda till oför­ut­säg­bart höga avgifter.

Vilka an­vänd­nings­om­rå­den är DynamoDB lämpligt för?

DynamoDB har utformats speciellt för ar­bets­be­last­ning­ar där enorma da­ta­mäng­der måste bearbetas, skalas och till­han­da­hål­las med mycket låg latens och hög till­gäng­lig­het. Typiska an­vänd­nings­fall är:

  • Ser­ver­lö­sa web­bap­pli­ka­tio­ner och mobila backends, där kontodata, sessioner och kon­fi­gu­ra­tio­ner hämtas med minimal för­dröj­ning
  • Spel­platt­for­mar, där hund­ra­tu­sen­tals eller miljoner användare samtidigt har åtkomst till spel­ser­ve­rar
  • In­ne­hålls­ström­ning för en global publik med ojämn eller plötslig trafik
  • Banker och fi­nan­si­el­la tjäns­te­fö­re­tag, som behöver bearbeta många trans­ak­tio­ner samtidigt och i realtid, samtidigt som de står inför ut­ma­ning­en att sä­ker­stäl­la att fi­nan­si­el­la trans­ak­tio­ner sker i rätt tid och på ett säkert sätt
  • IoT-ap­pli­ka­tio­ner (IoT = Internet of Things), som bearbetar och lagrar sensor­da­ta i stor skala

De vik­ti­gas­te al­ter­na­ti­ven till DynamoDB

Förutom DynamoDB finns det andra da­ta­bas­sy­stem som kan fungera som al­ter­na­tiv beroende på krav, da­ta­mo­dell, skal­bar­het och in­fra­struk­tur. Dessa in­klu­de­rar främst:

  • MongoDB: Hög flex­i­bi­li­tet och obe­grän­sad skal­bar­het
  • MySQL: Re­la­tions­sy­stem med först­klas­sig till­gäng­lig­het
  • MariaDB: Öppen käll­kod­sal­ter­na­tiv till DynamoDB
  • Post­greSQL: Re­la­tions­da­ta­bas­lös­ning med stöd för icke-re­la­tions­da­ta­ty­per
  • Firebase by Google: Ett utmärkt al­ter­na­tiv, särskilt för mobil- och web­bap­pli­ka­tio­ner
  • Apache Cassandra: Särskilt lämpligt för stora da­ta­mäng­der

Vilka fördelar de enskilda DynamoDB-al­ter­na­ti­ven erbjuder i detalj dis­ku­te­ras i den länkade guiden.

Gå till huvudmeny