
Tänk dig att du vill köra företagets databaser ”i molnet”. Om du vill ta det säkra före det osäkra är det troligt att du synar Amazons utbud av databastjänster i sömmarna. Då lär du upptäcka att det finns en del att välja mellan.
Tjänsten SimpleDB som i grund och botten är en nosql-databas av key-value-typ låter kanske som en bra startpunkt? Eller?
– Nja. SimpleDB var en av de första nosql-tjänsterna och vi har lärt oss mycket av den, men den gav inte riktigt den effekt vi ville, säger Martin Elwin, ansvarig för lösningsarkitektur på Amazon Web Services i Norden.
Den som har behov av en nosql-databas av typen key-value bör i stället ta en titt på tjänsten DynamoDB, som jämfört med SimpleDB kan skala till mycket högre prestanda- och lagringsnivåer. Den omnämns till exempel ofta som en komponent i sammansatta lösningar med flera Amazontjänster, som lagringstjänsten S3.
Men om man är intresserad av dokumentdatabaser, som MongoDB, hur blir det då?
– Det går att köra MongoDB på vår molnplattform och vi har dokumentation som visar hur man gör det. Men DynamoDB har fått en del funktioner som gör att den närmar sig dokumentdatabaser, förklarar Martin Elwin.
Ett exempel på en sådan funktion är att hantera Json-objekt som värden i DynamoDB.
Men om man behöver en relationsdatabas, då är det väl ändå kört med DynamoDB? Inte helt, faktiskt. Strukturen för ”tabeller” i DynamoDB liknar i grund och botten tabeller i en relationsdatabas. Sedan finns det olika konstruktioner med vilka data kan organiseras. En relationsdatabas är det inte, men en del funktionalitet som hanteras med en sådan kan hanteras med DynamoDB.
Vad är de generella argumenten för att välja DynamoDB?
– Om man behöver hög skrivhastighet, till exempel för att hantera händelser, och bra skalbarhet passar DynamoDB.
För den som verkligen behöver en relationsdatabas heter tjänsten RDS, Relational Database Service. På den kan man köra relationsdatabaser som Oracle, SQL Server, MySQL och Postgres, antingen som rena tjänster eller genom att använda licenser man redan har. Dessutom jobbar Amazon med att skapa Aurora som är baserad på MySQL.
– Vi anpassar hur lagringen sker med Aurora, så att den blir mer skalbar i molntillämpningar. Precis som med DynamoDB så slipper man i förväg tänka på hur mycket data man vill lagra i databasen.
Förutom de nämnda tjänsterna finns Elasticache för cachehantering, Redshift för datalager och Kinesis för hantering av strömmande data. Lägg till det Data Pipeline som är en tjänst för att överföra data snabbt mellan olika Amazontjänster.
För extrema tillämpningar är det vanligt att kunderna syr ihop egna lösningar. Ett sådant exempel är att lagra data i S3 och sedan indexera dessa data med hjälp av DynamoDB.
Här är exempel på databastjänster och relaterade molntjänster från Amazon:
- RDS. För att köra relationsdatabaser som Oracle, SQL Server, MySQL, Postgres och Amazons egna Aurora som tjänst.
- DynamoDB. En nosql-databas av key-value-typen.
- SimpleDB. En nosql-databas av key-value-typen för mindre datamängder. Det verkar inte som Amazon satsar så mycket på SimpleDB.
- Elasticache. En tjänst för att cacha data i Memcached och Redis.
- Redshift. En datalagertjänst för upp till 2 petabyte data.
- Kinesis. Hantering av strömmande data.
- Data Pipeline. Överföring av data mellan Amazontjänster.
- S3. En renodlad lagringstjänst.