Use Case: Oracle in de cloud

Introductie

Oracle databases en applicaties kunnen zonder problemen op de cloud gebruikt worden met IaaS. Voor DBaaS met Oracle is echter alleen maar AWS geschikt. Oracle heeft een aparte cloud licentie dat de geauthorizeerde cloud providers vermeld (Oracle Cloud Licensing)

  • Amazon AWS EC2
  • Microsoft Windows Azure
  • Andere cloud providers die het hard partitioning model gebruiken (zie Hard paritioning)

DBaaS vs Oracle met IaaS

Dit document zal zich vooral richten op de AWS DBaaS oplossing in combinatie met Oracle, en welke voordelen dit kan opleveren. AWS heeft het DBaaS model RDS genoemd: Relational Database Services. RDS biedt vele voordelen ten op zichte van het gebruik van alleen IaaS (EC2 bij Amazon AWS):

  • Installatie en onderhoud van het besturingssyteem en database gebeurt automatisch door AWS
  • Zeer gemakkelijk opzet van Synchrone replicatie met multi-AZ (verschillende datacenters)
  • Gemakkelijke interface (UI en SDK) voor backups en snapshots
  • Mogelijkheid om licentie te koppelen aan de RDS, zodat de licentie ook stopt als de DB niet meer nodig is

RDS heeft wel beperkingen waar rekening gehouden mee moet worden:

  • RDS geeft de administrator geen volledige controle tot Sys/System user
  • Geen OS toegang
  • Maximum database storage is 6 TB
  • Max IOPS is 30,000
  • RDS ondersteunt ook niet elke Oracle versie

DBaaS Oracle licentiemodel

Er zijn 2 licentiemodellen:
  • BYOL: Bring Your own License
  • License included

In het eerste geval wordt de eigen licentie aangeleverd. Hier moet wel rekening gehouden worden met de licentievoorwaarden. Scaling kan alleen maar gebeuren als het conform de voorwaarden van de licentie gebeurt. De licentie dient ook “Software Update License & Support” te bevatten zodat de versies geupgrade kunnen worden. De ondersteunde licenties in het BYOL model zijn:

  • Standard Edition (SE)
  • Standard Edition One (SE1)
  • Standard Edition Two (SE2)
  • Enterprise Edition (EE)

Anderzijds, het “license included” model laat toe om de licentie bij te betalen bij de uurprijs. Dit is vooral handig voor dev en test servers, aangezien deze waarschijnlijk toch niet 24 uur per dag zullen draaien, maar eerder alleen tijdens de kantooruren (8-10 uur overdag). Het kostenvoordeel voor dit type van servers is enorm.

DBaaS kostenmodel

Het DBaaS pay-as-you-go model is een interessant prijzenmodel om de operationele kosten van Oracle databases in organisaties te verlagen. Hieronder is een indicatie van de AWS prijzen (januari 2017):

Hardware Oracle Licentie Multi-AZ On-demand Prijs Prijs mits 1 jaar reservatie
2 CPU, 8 GB Memory SE1 inbegrepen Nee $335.80 / maand $235.79 / maand
2 CPU, 8 GB Memory SE1 inbegrepen Ja $671.60 / maand $471.58 / maand
4 CPU, 16 GB Memory SE1 inbegrepen Nee $671.60 / maand $471.58 / maand
4 CPU, 16 GB Memory SE1 inbegrepen Ja $1343.20 / maand $942.43 / maand
8 CPU, 32 GB Memory SE1 inbegrepen Nee $1343.20 / maand $942.43 / maand
8 CPU, 32 GB Memory SE1 inbegrepen Ja $2685.67 / maand $1885.59 / maand
16 CPU, 64 GB Memory SE1 inbegrepen Nee $2685.67 / maand $1885.59 / maand
16 CPU, 64 GB Memory SE1 inbegrepen Ja $5371.34 / maand $3771.18 / maand

De prijs van storage wordt apart aangerekend:

Volume Storage Tier Prijs
100 GB General Purpose SSD (3000 IOPS burst) $11 / maand
1000 GB General Purupose SSD (3000 IOPS burst) $110 / maand
100 GB Provisioned SSD (2,000 IOPS) $13.8 + $144 / maand
1000 GB Provisioned SSD (2,000 IOPS) $138 + $144 / maand
100 GB Provisioned SSD (10,000 IOPS) $13.8 + $720 / maand
1000 GB Provisioned SSD (10,000 IOPS) $138 + $720 / maand

Architectuur diagram

Dit architectuurdiagram toont een Oracle database inclusief high availability dat in een private subnet gestart werd. Het is niet mogelijk om de private subnets rechtstreeks te benaderen, dus database admins of gebruikers dienen over een VPN een verbinding te maken met de Oracle database.

_images/use-case-oracle-1.png

In public subnets kan de database natuurlijk wel rechtstreeks benaderd worden, maar dit wordt minder toegepast. Vaak zit de database afgeschermd achter een applicatie.

Migratie strategieën

Er zijn 3 migratie strategieën die gevolgd kunnen worden:

  • Migratie in één enkele stap
  • Migratie in twee stappen
  • Zero-downtime migratie

Migratie in één enkele stap

Deze migratie is het snelst om op te zetten, maar ook het langs om uit te voeren. Dit type migratie kan alleen uitgevoerd worden wanneer de database voor langere tijd onbeschikbaar kan zijn. De database wordt eerst afgesloten, daarna wordt er een backup genomen. De backup wordt dan teruggezet op de nieuwe Oracle database en de nieuwe database kan dan gestart worden.

Migratie in twee stappen

Een migratie in twee stappen zorgt voor een veel kortere tijd waarin de database onbeschikbaar is:
  1. Eerst wordt een backup van de database uitgevoerd en teruggezet op de nieuwe database, zonder de brondatabase offline te halen
  2. Omdat de brondatabase nog steeds online was bij het nemen van de backups, kan er nieuwe data toegevoegd geweest zijn. De brondatabase wordt daarom eerst afgesloten om een tweede backup te maken. Nu wordt er alleen een backup genomen van de data dat verschillend is tussen de bron en bestemmingsdatabase.

Omdat het verschil in data overzetten veel minder tijd in beslag neemt, is deze methode geschikt wanneer de database maar korte tijd onbereikbaar mag zijn.

Zero-downtime migratie

Als er helemaal geen downtime mag zijn, dan dient er replicatie opgezet te worden tussen de brondatabase en de bestemmingsdatabase. Alle data zal eerst overgekopieërd moeten worden en dan zal een mechanisme in werking treden dat alle data zal repliceren van de brondatabase naar de bestemmingsdatabase. Eenmaal de databases in sync zijn, dan kan op elk moment de nieuwe database gebruikt worden en zal er geen downtime zijn. Deze methode zorgt voor de minste downtime, maar vergt wel het meeste werk, omdat de replicatie opgezet moet worden.

_images/contact-in4it.png