Skip to content

Blog

Hoe wij ontzorgen en kosten besparen in AWS

  • Home
  • Blog
  • Hoe wij ontzorgen en kosten besparen in AWS

 

Wanneer  je steeds meer workload op een public cloud zoals AWS gaat draaien, zal je zien dat de maandelijkse kosten flink kunnen oplopen. Zelfs met platformen zoals Kubernetes of OpenShift, waarbij je heel efficiënt om kunt gaan met processor en memory resources. Je kunt ervoor kiezen om zoveel mogelijk functionaliteiten om te schrijven naar Lambda functies, maar ook dat kost (veel) tijd en geld. En afhankelijk van het applicatielandschap is dat in sommige gevallen niet eens mogelijk of wenselijk en kun je beter gebruik blijven maken van een microservice architectuur.

 

In omgevingen met veel EC2 instances kiest men er vaak voor om om dev, test en acceptatie omgevingen buiten kantoortijd uit te zetten. Dit is echter vaak niet mogelijk in omgevingen die gebruik maken van Kubernetes of OpenShift omdat daar de dev, test en acceptatie omgevingen vaak al worden opgeruimd na een succesvolle automatische uitrol en test.

Gelukkig biedt AWS een aantal opties om maandelijkse kosten te besparen. In deze blog gaan we kijken naar de verschillen tussen Reserved Instances, AWS Savings Plans en Spot instances. 

 

Reserved Instances

Door gebruik te maken van Reserved Instances (RI’s) in plaats van de normale EC2 On-Demand instances kun je tot wel 75% besparen op de maandelijkse EC2 kosten. Bij een On-Demand EC2 instance betaal je per uur of per seconde (minimaal 60 seconden) en alleen als die aanstaat. Bij een Reserved Instance maak je met AWS de afspraak dat je voor alle uren betaalt, voor een periode van 1 of 3 jaar. Je krijgt vervolgens korting van AWS door deze afspraak te maken. Daarbij kun je nog kiezen of je het bedrag volledig, gedeeltelijk of niet vooraf wilt betalen. Waarbij je bij de eerste optie de meeste korting krijgt.

Het enige nadeel van een RI is dat je die uren moet betalen, ook als je ze niet gebruikt! Het is daarom belangrijk om na te denken voor hoe lang je de RI’s gaat afnemen. Ook is het belangrijk om na te denken over de instance types en regio waar je ze gaat gebruiken. Een RI voor de eu-central-1 (Frankfurt) regio kun je bijvoorbeeld niet gebruiken in eu-west-2 (London).

Tijdens het selecteren van een RI kan er gekozen worden tussen een Standaard en Convertible RI, zie hieronder een overzicht van de verschillen:

 

Standaard Reserved Instance

Convertible Reserved Instance

Je kan achteraf het instance type aanpassen, zolang die in dezelfde instance family zit. Bijvoorbeeld van t3.large naar t3.xlarge.
Hiermee kan je achteraf het instance type aanpassen, zelfs naar andere instance families. Zo is het mogelijk om een T3 RI aan te passen naar een M4 RI.
Als je de RI’s niet meer nodig hebt kan je ze verkopen aan andere AWS klanten via de RI Marketplace van AWS.
Kunnen niet verkocht worden aan andere AWS klanten.
Kan je afnemen voor 1 of 3 jaar.
Kan je afnemen voor 1 of 3 jaar.
Minder flexibiliteit, maar meer korting.
Meer flexibiliteit, maar minder korting

 

In de AWS Cost Explorer is een aantal standaard rapportages aanwezig waarmee eenvoudig gecontroleerd kan worden hoeveel RI’s er wel/niet in gebruik zijn (Utilization report). Het Coverage report laat zien hoeveel EC2 instances gebruik maken van een RI.

Voorbeeld:

Binnen Trivento gebruiken we Reserved Instances om onze OpenShift master nodes op te laten draaien. We kiezen voor RI’s omdat de master nodes in OpenShift stabiel moeten draaien, Spot Instances zijn daardoor geen optie. We hebben 3 m4.xlarge EC2 instances, waarvoor we normaal gesproken maandelijks $717 voor betalen. Hiervoor hebben we 6 m4.large Standard RI’s aangeschaft voor 1 jaar zonder deze vooraf te betalen. De maandelijkse kosten daarvan zijn $489, waardoor we op ons OpenShift platform elke maand $228 besparen.

AWS Savings Plans

AWS Saving Plans zijn vergelijkbaar met Reserved Instances, je kan ze namelijk voor 1 of 3 jaar afnemen. RI’s zijn alleen van toepassing op EC2 instances, Saving Plans kunnen ook gebruikt worden voor andere AWS diensten. Er zijn 3 verschillende Saving Plan types:

 

  1. Compute Savings Plans: zijn van toepassing op EC2, Lambda en Fargate
  2. EC2 Instance Savings Plans: kunnen alleen gebruikt worden voor EC2 instances
  3. SageMaker Savings Plans: zijn van toepassing op SageMaker.

 

Vergeleken met Reserved Instances hebben de Compute Saving Plans als grote voordeel dat je ze ook kan gebruiken voor andere AWS diensten. Door gebruik te maken van Compute Saving Plans kunnen de Saving Plans verdeeld worden over meerdere compute diensten zoals EC2, Fargate en Lambda. Handig als je van plan bent om in de toekomst te migreren van EC2 naar bijvoorbeeld Fargate.

Met Compute Saving Plans krijg je minder korting (tot 66%) maar heb je wel de flexibiliteit om instance types aan te passen van bijvoorbeeld C4 naar M5. Ook is het mogelijk om de workload te verplaatsen naar andere regio’s omdat een Saving Plan niet is gebonden aan een regio.

EC2 instance type Savings Plans zijn vergelijkbaar met Reserved Instances. Ze geven dezelfde korting en flexibiliteit. 

SageMaker Saving Plans kunnen, zoals de naam al suggereert, alleen gebruikt worden voor de SageMaker machine learning dienst van AWS.

Voorbeeld:

Een van onze klanten maakt gebruik van EKS Fargate clusters, maar gebruikt daarnaast ook nog een aantal traditionele EC2 instanties. Voor deze situatie is een Compute Savings Plan de beste methode om kosten te besparen in AWS. Voor deze klant hebben we een Savings Plan die we verdelen over 2 verschillende diensten van AWS, namelijk EC2 en EKS Fargate. We hebben in totaal 3 t3.micro instances die normaal gesproken $26,28 per maand kosten. Daarnaast zijn er 3 EKS Fargate clusters actief die normaal gesproken $219 per maand kosten. Door een Compute Savings Plan aan te schaffen met een commitment van $0,516 per uur voor 1 jaar, waarbij we het bedrag in één keer vooraf betalen, bespaart de klant per maand $69,97.

 

Spot instances

Met Spot Instances kun je het meeste besparen, namelijk tot wel zo’n 90% vergeleken met de normale EC2 kosten. Spot Instances zijn EC2 instances die niet in gebruik zijn en zijn daardoor over. Op basis van de vraag en aanbod van EC2 instances binnen AWS worden de kosten van de Spot Instances bepaald. Spot Instances kunnen ook gebruikt worden in combinatie met andere AWS diensten zoals bijvoorbeeld ECS of EKS. Waarbij Spot Instances ingezet kunnen worden als worker nodes.

Het grote nadeel van een Spot Instance is dat deze op elke moment van de dag gestopt en verwijderd kan worden door AWS als er te weinig beschikbare EC2 instances zijn. Op zo’n moment krijgt de EC2 instance twee minuten voordat dit gebeurt een notificatie via de EC metadata service. Het is daarom belangrijk dat de applicatie die op de Spot Instance draait hiermee overweg kan gaan. Het is daarom niet slim om een database in een Spot Instance te draaien. Bij stateless applicaties is het niet erg als ze opeens worden gestopt. Omdat dit soort applicaties hun state opslaan op een externe locatie, bijvoorbeeld een RDS database. Daardoor zijn stateless applicaties wel geschikt om op Spot instances te draaien.

In combinatie met AWS EKS (Kubernetes) of OpenShift kunnen Spot Instances helemaal efficiënt gebruikt worden. Zowel Kubernetes als OpenShift zijn beide in staat om workload (containers) te verplaatsen als er een node wegvalt uit het cluster. Via third-party software is het zelfs mogelijk om de EC2 metadata service uit te lezen. Zo kan Kubernetes of OpenShift de containers die op een Spot Instance draaien alvast verplaatsen, voordat de Instance wordt gestopt en verwijderd door AWS.

Voorbeeld:

Voor een van onze klanten gebruiken we Spot Instances in AWS om test en acceptatie omgevingen op te laten draaien. Het maakt voor deze omgevingen namelijk niet uit als ze opeens herstart worden. Voor deze klant hebben we 5 EC2 instances van het type r4.xlarge. Daar betaal je normaal gesproken per uur $0,3201 voor, wat per maand $1.168,36 is. Afhankelijk van de vraag en aanbod kan je hier flink op besparen met Spot Instances. In Frankfurt krijg je de afgelopen 3 maanden gemiddeld zo’n 65% korting op deze instances. Hierdoor betaal je maar $408.93 per maand voor 5 Spot Instances. Daardoor besparen we nu voor een van onze klanten per maand $759,43.


Benieuwd of jij ook kosten kan besparen in AWS? Neem gerust contact met ons op!