Hur jämförs AWS relationsdatabaser

By rik

Översikt över relationsdatabaser i AWS-molnet

Under en lång tid utgjorde relationsdatabaser en standardlösning för en stor mängd användningsområden för programvara, både inom små och stora företag. Nu ser vi ett mycket bredare spektrum av alternativ, med ökad tillgänglighet av NoSQL-databaser, databaser i minnet och datasjöar. Trots detta utgör relationsdatabaser fortfarande det enklaste målet för migrering av befintliga lokala databaser till molnet. Låt oss ta en närmare titt på några av de databaser som kan vara en del av ett sådant initiativ:

  • Oracle
  • Aurora
  • Microsoft SQL Server
  • MySQL & PostgreSQL
  • MariaDB

Jag kommer tydligt att beskriva hur dessa skiljer sig åt, inklusive deras nackdelar. Jag kommer att illustrera deras användning med ett typiskt exempel från verkligheten och avsluta med mina synpunkter på hur du väljer rätt databas för just ditt behov.

AWS Oracle DB

Källa: aws.amazon.com

Oracle DB har under flera decennier varit den mest utbredda kommersiella databasen. När företag behövde en robust och högpresterande databaslösning var Oracle DB ofta det första valet, vilket berodde på flera fördelaktiga faktorer.

Hur den skiljer sig

Oracle är en robust och funktionsrik plattform som lämpar sig väl för en rad olika behov och krav. Den har etablerat sig som den optimala lösningen när det behövs hög tillförlitlighet, skalbarhet och underhållbarhet i en lokal hårdvaruinfrastruktur.

Huvudsakliga fördelar

Här är några av de viktigaste fördelarna med att välja ett så väl beprövat databassystem som Oracle:

✅ Utmärkt stöd och alternativ för effektiva säkerhetskopieringar och återställningar.

✅ Stort utbud av möjligheter för att optimera prestandan i databaslösningen, även långt efter att lösningen har tagits i drift. Support- och underhållsaktiviteter på denna plattform är enkla att konfigurera och mycket effektiva.

✅ Hög anpassningsförmåga hos databaslösningen. Oracle DB stöder ett omfattande antal funktioner vilket ger systemintegratörer gott om möjligheter att bygga ett robust system med exakt de funktioner som deras plattform behöver (såsom triggers, partitioner, underpartitioner, automatiserade sekvenser för primärnycklar, vyer, ögonblicksbilder, databegränsningar, unika nycklar, kombinerade nycklar, främmande nycklar, sammansatta index och mycket mer). Den stöder i princip allt.

✅ Enkel administration av databasaktiviteter och processer. Det finns dedikerade administrationskonsoler och instrumentpaneler, tillsammans med många verktyg skapade av Oracle specifikt för användning av administratörer.

✅ Stöd för fleranvändarmiljöer. Oracle är ett bra alternativ om du behöver stöd för tusentals aktiva användare samtidigt.

Huvudsakliga nackdelar

Oracle DB är mycket flexibel när det gäller vertikal skalning av prestanda, men mindre så när det gäller horisontell skalning. Det är enkelt att uppgradera till en starkare processor, mer minne och lagringsutrymme i en klusterdatabas. Men om din datamängd växer snabbt, vilket är vanligt i molnet, kan prestandaflaskhalsar bli mer påtagliga och svårare att lösa. Att sprida data över flera kluster och förvänta sig dynamisk tillväxt kommer att bli ett centralt krav. I dessa situationer kan Oracle DB bli mer begränsande än hjälpsam.

En annan potentiell nackdel är kostnaden. Oracle DB erbjuder många funktioner, men många av dem kostar extra, särskilt om det finns flera kluster och fysiska prestandauppgraderingar behövs. Mjukvarujustering av datamodellen kanske inte räcker längre. För att få tillgång till fler administrativa verktyg och funktioner kan en företagslicens behövas, vilket ökar de redan höga kostnaderna. Slutligen är Oracle DB inte en inbyggd AWS-tjänst, vilket innebär att du inte bör förvänta dig full support från AWS. Du bör istället fokusera på support från Oracle och hantera både Oracle och AWS problempunkter parallellt, med två olika supportteam.

När ska man välja

Att välja molnmotsvarigheten till Oracle DB är ett naturligt beslut om din nuvarande lokala lösning redan använder Oracle DB. Det förenklar migreringen och övergången till en molnbaserad lösning.

Välj därför AWS Oracle DB om:

  • Du förväntar dig att molndatabasen kommer att stödja samma processer och funktioner som den lokala varianten på överskådlig tid.
  • Du inte planerar att integrera databasen med alltför många inbyggda AWS-tjänster snabbt.
  • Du inte förväntar dig att den nuvarande datamängden kommer att växa märkbart på kort tid.
  • Du behöver stöd för en mängd funktioner, och det vore svårt att avstå från några av dem vid övergången till molnet.
  • Ditt system behöver stödja hundratals eller fler samtidiga aktiva användare.

Exempel på användning

  • Stora telekommunikationssystem för fakturering, CRM och mellanprogram.
  • Anpassade databasimplementationer för fordonssystem, integrerade med flera anpassade verktyg eller verktyg från tredje part.
  • Paketerade systemlösningar för banksektorn, där Oracle redan är en integrerad del av den paketerade lösningen från leverantören, med ytterligare anpassade databaskomponenter som integreras i en komplex implementation.

AWS Aurora DB

Källa: aws.amazon.com

Aurora är på många sätt motsatsen till Oracle, trots att det också är en relationsdatabas.

Hur den skiljer sig

Aurora DB är en inbyggd databastjänst i AWS. AWS ger fullt stöd och kontinuerlig utveckling och integrerar databasen djupt med övriga AWS-tjänster. Aurora DB når inte samma nivå av funktionsdiversifiering som Oracle, men den föddes i molnet, till skillnad från Oracle. AWS vidareutvecklar kontinuerligt Aurora, så funktionsgapet kan minska i framtiden. Aurora ligger redan före Oracle på många sätt, särskilt när det gäller integration med andra AWS molntjänster. Eftersom Amazon skapade Aurora med ett molnekosystem i åtanke, är Aurora redo för stora datainflöden och tillväxt, vilket gör horisontell skalning till en av dess styrkor.

Huvudsakliga fördelar

De viktigaste fördelarna med Aurora DB är:

✅ Mycket flexibel distribution av skrivskyddade databaskopior. Dessa kan skapas på bara några sekunder. Skrivskyddade instanser delar samma databasloggar som huvuddatabasen. Detta innebär att skapandet av en ny skrivskyddad databas inte kräver synkronisering av all data, utan sker automatiskt genom delning av de befintliga loggarna.

✅ Redo för stor datatillväxt – horisontell skalning är en stark egenskap hos Aurora DB. Det är enkelt att lägga till nya kluster och utöka skalbarheten i olika tillgänglighetszoner. Aurora är mycket effektiv när det gäller att snabbt hämta stora mängder data.

✅ Du kan välja mellan serverbaserat eller serverlöst läge för Aurora DB. Vissa funktioner saknas i serverlöst läge, men du får stor flexibilitet och kostnadsoptimeringar när du väljer detta läge.

✅ Automatiserade säkerhetskopieringar och enkel återställning till valfri tidpunkt. Aurora DB kan utföra enkla dagliga säkerhetskopieringar, och det är mycket enkelt att återställa hela databasen till en viss tidpunkt. Du kan kombinera alla fördelar med molnmiljön här, som alltid tillgängligt ledigt utrymme, snabba interna AWS-operationer och en dedikerad Aurora DB-funktion som är avsedd för snabba återställningstider och korta driftstopp.

✅ Stöd för antingen MySQL eller PostgreSQL DB-motor, vilket ger dig valfrihet.

Huvudsakliga nackdelar

  • Även om Aurora utan tvekan är den mest funktionsrika inbyggda relationsdatabasen i AWS, ligger den fortfarande efter Oracle i detta avseende. Det är förståeligt eftersom Oracle har haft mycket mer tid att utveckla dessa funktioner. Faktum kvarstår dock att Aurora DB blir starkare och närmare för varje ny release.
  • Det finns ingen motsvarighet till Aurora DB i den lokala miljön. Man kan hävda att gamla databaser baserade på MySQL eller PostgreSQL är nära likvärdiga, och ur ett kompatibilitetsperspektiv stämmer det. Men de är inte identiska. Det betyder att migreringen inte blir helt okomplicerad. Du behöver anpassa och implementera migreringsprocesser för att säkerställa att data överförs från den lokala databasen och lagras i Aurora DB i rätt format.
  • Olika AWS-gränser, särskilt de striktare, kan ibland göra att man väljer bort denna databas. Du kommer troligtvis att kunna kringgå dem alla, men i vissa fall kan det kräva betydande investeringar i omstrukturering, vilket kan öka de totala kostnaderna för migrering jämfört med ett annat databasmål.

När ska man välja

Att välja Aurora DB som den primära relationsdatabasen i AWS-plattformen är aldrig ett dåligt beslut, men det är särskilt lämpligt om:

  • Du bygger ett molnsystem från grunden kring en relationsdatabas.
  • Du förväntar dig högsta möjliga nivå av kompatibilitet och integration med så många inbyggda AWS-tjänster som möjligt.
  • Du förväntar dig att din datavolym kommer att växa betydligt inom en kort tidsperiod.
  • Du planerar att starta flera spin-off POC-projekt där du kan utnyttja fördelarna med den serverlösa versionen av en relationsdatabas.

Exempel på användning

  • En serverlös plattform för att analysera stora mängder infrastrukturbilddata.
  • Användning av maskininlärningsmodeller för att bearbeta din datasjöinformation och generera affärsprognoser.
  • Netflix använder Aurora DB för snabba parallella frågekörningar över deras katalogdata.

AWS Microsoft SQL DB

Källa: aws.amazon.com

Denna databas är i vissa avseenden jämförbar med Oracle. Den skapades också långt innan molnet blev populärt, och det finns många nuvarande lokala användare som planerar att migrera till molnet med MS SQL DB som källa.

Hur den skiljer sig

Trots dessa likheter har MS SQL DB inte haft lika stor användning som Oracle DB. Åtminstone ur mitt personliga erfarenhetsperspektiv har jag varit involverad i flera Oracle-projekt under de senaste två decennierna men endast ett fåtal där MS SQL DB har använts. Och ärligt talat har jag inte uppskattat att arbeta med MS SQL DB lika mycket som med Oracle DB. Men jag är ändå medveten om att det finns ett stort antal företag som använder MS SQL DB som sin primära databas och enda källa till sanning för all data.

Huvudsakliga fördelar

De främsta fördelarna med MS SQL DB är:

✅ Bra integration med andra Microsoft-tjänster och programvara, om det är en funktion som du anser vara värdefull.

✅ Enkel anpassning med anpassade kodtillägg, oftast i form av Javascript-kodmoduler. Det kan vara användbart vid hantering av mer komplexa affärsprocesser och jobb som ska schemaläggas över databasen.

✅ Relativt enkel administration (åtminstone jämfört med Oracle DB).

✅ Den är troligen mer meningsfull i Azures molnekosystem, eftersom den där anses vara en inbyggd relationsdatabas som är mer kompatibel med andra molntjänster.

Huvudsakliga nackdelar

  • Precis som med Oracle DB, som en icke-inbyggd databas i AWS-molnet, måste all support och problemlösning hanteras via separata dedikerade MS SQL-supportteam.
  • Mindre diversifiering av funktionsstöd i allmänhet, jämfört med Oracle DB eller Aurora DB.
  • Inte lämplig för ett stort antal aktiva användare.
  • Horisontell skalbarhet är ett ännu större problem än med Oracle DB.

När ska man välja

MS SQL DB är mest lämplig om du vill migrera en befintlig MS SQL DB lokalt till molnet med så få störningar som möjligt. Du förväntar dig inte heller någon större integration med andra AWS molntjänster. MS SQL DB kommer då att fungera i AWS-molnet som en fullt hanterad databas med obegränsad lagring och utökade alternativ för horisontell skalbarhet och hög tillgänglighet jämfört med det lokala alternativet.

Exempel på användning

  • Fungerar som en mellanplattform för anpassad integration av olika databassystem (kan även vara av en annan typ, till exempel Oracle DB).
  • Mindre projekt där kostnaden för databaslösningen är en viktig faktor och budgeten är mer begränsad (vilket gör att en fullständig Oracle DB-lösning inte är ett alternativ).

AWS MySQL och PostgreSQL DB

Källa: aws.amazon.com

Dessa databaser är båda ursprungligen öppen källkod, vilket ger dem både fördelar och nackdelar. De är inte heller lika funktionsrika som andra alternativ, särskilt inte i sin ursprungliga form. Även om du fortfarande kan använda dem båda i AWS-infrastruktur i denna form, tvivlar jag på att det är särskilt praktiskt.

Hur den skiljer sig

När du migrerar den lokala databasen (oavsett om det är MySQL eller PostgreSQL) till AWS-molnet, kan du direkt använda Aurora med MySQL- eller PostgreSQL-motorn som mål och få alla extra fördelar som Aurora DB erbjuder. Visst, det kommer att innebära ytterligare ansträngningar i migrationsfasen jämfört med om du väljer en inbyggd lösning, men den extra ansträngningen kommer att vara marginell. Deras främsta fördel ligger i kostnaderna och att de är lämpliga för mindre projekt där robusthet inte är det viktigaste.

Huvudsakliga nackdelar

  • Båda har relativt begränsade funktioner och du måste vara beredd på begränsade alternativ för underhåll och administration.
  • Inte lämpliga för storskaliga projekt med många aktiva användare.
  • Inte optimala för högpresterande lösningar där konstant prestandajustering är ett starkt krav.

När ska man välja

  • Om kostnaden är det viktigaste och budgeten är mycket begränsad.
  • Om projektet är ganska litet.
  • Om datamängden är relativt liten och det inte finns några planer på betydande tillväxt.

Exempel på användning

  • Personliga projekt där kostnaden för infrastrukturen ska vara så minimal som möjligt.
  • Små POC:er som ska bevisa att det föreslagna konceptet kan förverkligas.
  • Små företags projekt med små datamängder.
  • För små SaaS-projekt som inte kräver omfattande databasbelastning, utan där datalagring i en relationsdatamodell är allt som behövs.

AWS MariaDB

Källa: aws.amazon.com

MariaDB är en helt öppen källkodsdatabas skapad av tidigare MySQL-utvecklare (efter att MySQL köptes av Oracle). När det gäller kompatibilitet kommer alla MySQL-databaser att fungera bra i MariaDB.

Hur den skiljer sig

Funktionsmässigt finns det inte många skillnader från MySQL, men öppen källkodsfunktionen är en viktig skillnad. Tekniskt sett finns det en del användbara funktioner som finns i MariaDB men inte i MySQL.

Huvudsakliga nackdelar

Ganska likt MySQL-fallet.

När ska man välja

  • Om du verkligen uppskattar din befintliga MariaDB-implementation lokalt och inte vill migrera till Aurora DB, oavsett anledning.
  • Om du vill ha en verkligt öppen källkodslösning för din databas i AWS molnekosystem.

Exempel på användning

Ganska likt MySQL-fallet.

Slutord

Precis som Oracle DB var den ledande lösningen i den lokala världen, verkar Aurora DB ta den platsen i AWS molnvärld. Detta är den lösning som kommer närmast utifrån funktionalitetsperspektiv. Och även om du inte har de största behoven, är det bra att veta att det finns relativt enkla sätt att migrera din befintliga databas till AWS-molnet. Dessutom får du automatiskt funktioner som du förmodligen saknade tidigare. Bättre lagring, hög tillgänglighet och horisontell skalbarhet är alla inbyggda funktioner i molnmiljön.