Met Spot-instances krijgt u toegang tot ongebruikte cloudcapaciteit tegen aanzienlijk lagere tarieven dan bij standaard on-demand-tarieven; vaak is dit tussen de 70% en 90% goedkoper. De keerzijde is de beschikbaarheid: cloudproviders kunnen die capaciteit op korte termijn terugvorderen wanneer de vraag toeneemt. Spot-instances zijn het meest geschikt voor workloads die onderbrekingen kunnen verdragen, waardoor ze een krachtig hulpmiddel zijn voor teams die zich richten op optimalisatie van cloudkosten. In dit artikel wordt uitgelegd hoe spotprijzen werken, wanneer je ze kunt gebruiken en hoe je jezelf tegen de risico’s kunt beschermen.
Hoe werkt de prijsbepaling voor spot-instances eigenlijk?
De prijzen voor spot-instances zijn een weerspiegeling van de realtime vraag en aanbod van ongebruikte cloudcapaciteit in de datacenters van een provider. Wanneer de vraag naar on-demand-instances laag is, stellen providers die reservecapaciteit tegen een forse korting beschikbaar. De prijs fluctueert op basis van beschikbaarheid, regio en instancetype, en u betaalt de actuele spotprijs voor elk uur dat uw instance actief is.
Op AWS geef je bijvoorbeeld een maximumprijs op die je bereid bent te betalen (of je accepteert de huidige spotprijs als je maximum). Als de huidige spotprijs onder je maximum blijft, blijft je instance draaien. Als de spotprijs daarboven uitkomt, wordt je instance onderbroken. Azure en Google Cloud hanteren vergelijkbare modellen onder andere namen: Azure Spot VM's en Google Cloud Preemptible of Spot VM's.
De korting is de belangrijkste troef. Spotprijzen liggen doorgaans 70% tot 90% lager dan vergelijkbare on-demand-tarieven. Voor rekenintensieve workloads kan dit leiden tot zeer aanzienlijke kostenbesparingen, vooral op grote schaal. Het is belangrijk om te beseffen dat u capaciteit koopt die de provider kan terugnemen, en geen capaciteit waarvan gegarandeerd is dat deze beschikbaar blijft.
Waarom kunnen spot-instances tijdens een workload worden onderbroken?
Spot-instances kunnen worden onderbroken omdat u capaciteit gebruikt die de cloudprovider niet aan u heeft toegewezen. Wanneer andere klanten on-demand- of gereserveerde instances starten, heeft de provider die fysieke capaciteit weer nodig. Bij AWS krijgt u doorgaans twee minuten van tevoren een waarschuwing voordat de onderbreking plaatsvindt. Azure en Google Cloud hanteren vergelijkbare korte waarschuwingstermijnen.
Dit is geen fout; het is inherent aan het ontwerp van het spotmodel. De lage prijs weerspiegelt het risico dat u aanvaardt: de aanbieder kan de hardware op korte termijn terugvorderen. De frequentie waarmee dit gebeurt, varieert per instancetype, beschikbaarheidszone en tijdstip van de dag. Bij sommige instancetypes komt dit zeer zelden voor; bij andere wordt de hardware vaker teruggevorderd, afhankelijk van de regionale vraagpatronen.
Het is belangrijk om inzicht te hebben in de frequentie van onderbrekingen voordat u een workload aan een spot-instance toewijst. Cloudproviders publiceren historische gegevens over het aantal onderbrekingen per instancetype en regio, wat u helpt bij het kiezen van configuraties met een lager risico op terugvordering. Door workloads te spreiden over meerdere instancetypes en beschikbaarheidszones wordt ook de praktische impact van een afzonderlijke onderbreking verminderd.
Voor welke workloads zijn spot-instances het meest geschikt?
De workloads die het meest geschikt zijn voor spot-instances zijn workloads die stateless zijn, fouttolerant zijn of ontworpen zijn om checkpoints te maken en het proces te hervatten. Als een workload kan worden onderbroken en opnieuw gestart zonder dat er wezenlijke voortgang verloren gaat of dat dit storingen verderop in het proces veroorzaakt, zijn spot-instances een uitstekende keuze. Batchverwerking, pijplijnen voor gegevensanalyse en trainingstaken voor machine learning zijn de meest voorkomende voorbeelden.
Dit zijn de soorten workloads die goed samengaan met spot-instances:
- Batch- en gegevensverwerkingstaken dat bestanden of records in delen verwerkt en het proces vanaf een controlepunt kan hervatten
- Training van machine learning-modellen waarmee tussentijdse controlepunten worden opgeslagen op permanente opslag
- Rendering en mediatranscodering waarbij de afzonderlijke taken onafhankelijk van elkaar zijn
- CI/CD-pijplijnen en geautomatiseerd testen waarmee een mislukte taak eenvoudig opnieuw kan worden gestart
- Big data-analyse met behulp van frameworks zoals Apache Spark, die standaard omgaan met storingen in knooppunten
- Webcrawlers en scraping-opdrachten die URL’s afzonderlijk verwerken
- Automatisch geschaalde, stateloze weblaag waarbij het verlies van individuele instanties door de load balancer wordt afgehandeld
De rode draad is dat geen van deze workloads afhankelijk is van het feit dat één enkele instance gedurende de gehele looptijd actief blijft. Als uw workload aan dit patroon voldoet, kunnen spot-instances uw kosten voor cloudcomputing aanzienlijk verlagen.
Wat is het verschil tussen spot-, on-demand- en gereserveerde instances?
Het belangrijkste verschil zit hem in de afweging tussen kosten, verbintenis en beschikbaarheid. On-demand-instances bieden volledige beschikbaarheid zonder verbintenis, tegen de hoogste prijs. Gereserveerde instances bieden aanzienlijke kortingen in ruil voor een verbintenis van één of drie jaar. Spot-instances bieden de grootste kortingen, maar zonder beschikbaarheidsgarantie en met het risico op onderbrekingen.
On-demand-instances
On-demand-tarief is het standaardtarief dat u betaalt voor rekencapaciteit, zonder dat u zich vooraf hoeft vast te leggen. U kunt instances starten en stoppen wanneer u maar wilt, en u betaalt alleen voor wat u daadwerkelijk gebruikt. Dit is de juiste keuze voor onvoorspelbare workloads, kortlopende projecten of situaties waarin onderbrekingen niet acceptabel zijn. Deze flexibiliteit gaat gepaard met de hoogste kosten per uur.
Gereserveerde instances
Bij gereserveerde instances (of ‘savings plans’ op AWS) verbindt u zich tot een bepaald verbruik aan rekenkracht gedurende één of drie jaar. In ruil daarvoor ontvangt u kortingen die doorgaans variëren van 30% tot 60% ten opzichte van de on-demand-tarieven. Gereserveerde capaciteit is zeer geschikt voor stabiele, voorspelbare workloads zoals productiedatabases, kernapplicatieservers of andere systemen die continu draaien. Het risico is dat u uw verbintenis niet volledig benut als uw gebruikspatronen veranderen.
Spot-instances
Spot-instances bevinden zich aan de andere kant van het spectrum wat betreft verbintenissen. Geen verbintenis, de grootste kortingen, maar de beschikbaarheid is niet gegarandeerd. Voor de meeste organisaties is de juiste strategie om alle drie te combineren: reserved instances voor stabiele basisworkloads, on-demand voor voorspelbare maar variabele behoeften, en spot voor flexibele, fouttolerante rekenkracht. Deze gelaagde aanpak is een kernprincipe in de FinOps-praktijk en helpt u uw clouduitgaven te optimaliseren zonder in te boeten aan betrouwbaarheid waar dat ertoe doet.
Hoe kun je het risico op onderbrekingen van spot-instances verminderen?
U kunt het risico op onderbrekingen van spot-instances verminderen door te spreiden over meerdere instancetypen en beschikbaarheidszones, door gebruik te maken van onderbrekingsmeldingen om checkpoints van workloads op te slaan, en door applicaties zo te ontwerpen dat ze op een soepele manier met herstarts omgaan. Geen enkele techniek neemt het risico op onderbrekingen volledig weg, maar door deze benaderingen te combineren worden spot-instances betrouwbaar genoeg voor veel workloads die dicht bij de productie staan.
Praktische maatregelen om de gevolgen van onderbrekingen te beperken:
- Flexibiliteit van instanties benutten: Vraag een pool aan met meerdere instancetypen met vergelijkbare rekenprofielen. Als één type niet meer beschikbaar is, kan uw workload op een ander type worden ondergebracht.
- Verspreid over beschikbaarheidszones: Onderbrekingen zijn zonespecifiek. Doordat de workload over meerdere zones wordt verdeeld, leidt een capaciteitstekort in één zone er niet toe dat je gehele workload uitvalt.
- Checkpoints implementeren: Sla de voortgang met regelmatige tussenpozen op in permanente opslag (S3, Azure Blob, GCS), zodat onderbroken taken kunnen worden hervat in plaats van helemaal opnieuw te moeten beginnen.
- Maak gebruik van beheerde spotdiensten: AWS Spot Fleet, AWS EC2 Auto Scaling met beleidsregels voor gemengde instances en Azure Spot VM-schaalsets zorgen automatisch voor het afhandelen van onderbrekingen en vervangingen.
- Meldingen over onderbrekingen van de monitor: Cloudproviders geven twee minuten van tevoren een waarschuwing voordat ze een spot-instance terugnemen. Gebruik deze tijd om verbindingen te verbreken, de status op te slaan of een vervanging in gang te zetten.
- Kies instancetypen met weinig onderbrekingen: Bekijk de door providers gepubliceerde gegevens over de frequentie van onderbrekingen en geef prioriteit aan instancetypen met historisch lage terugwinningspercentages in uw doelregio.
Wanneer moet je het gebruik van spot-instances vermijden?
Je moet spot-instances vermijden voor elke workload waarbij een onderbreking leidt tot gegevensverlies, uitval van de dienst of een kettingreactie van storingen. Als het opnieuw opstarten van een taak vanaf nul veel kost, als de workload de status in het geheugen bewaart, of als eindgebruikers afhankelijk zijn van continue beschikbaarheid, zijn spot-instances niet de juiste keuze. Betrouwbaarheidseisen moeten altijd voorrang krijgen boven kostenbesparingen.
Specifieke soorten workloads die niet op spot-instances mogen worden uitgevoerd:
- Productiedatabases waarbij het verlies van een instantie kan leiden tot gegevensbeschadiging of onderbrekingen in de beschikbaarheid
- Toestandsafhankelijke applicatieservers die sessiegegevens of de status in het geheugen bevatten
- Langlopende taken zonder controlepunten waarbij onder „onderbreking” wordt verstaan: het hervatten van de gewerkte uren
- Realtime diensten voor gebruikers waarbij zelfs een korte storing al tot een merkbare verslechtering leidt
- Werkbelastingen waarbij naleving van regelgeving van belang is wanneer SLA’s inzake beschikbaarheid contractueel verplicht zijn
Het algemene uitgangspunt is dat kostenoptimalisatie nooit ten koste mag gaan van de betrouwbaarheid bij workloads waarbij betrouwbaarheid het eindproduct is. Spot-instances zijn een hulpmiddel om de uitgaven voor de juiste workloads te verlagen, en geen universele snelkoppeling om kosten te besparen.
Hoe wij u helpen het gebruik van spot-instances te optimaliseren
Om optimaal te profiteren van de tarieven voor spot-instances is meer nodig dan alleen het aanpassen van een instelling in uw cloudconsole. U moet een duidelijk beeld hebben van welke workloads onderbreekbaar zijn, hoe uw kosten over de verschillende instancetypes zijn verdeeld en hoe spot-instances passen in uw bredere financiële cloudstrategie.
Met onze FinOps-diensten helpen wij u precies die capaciteit op te bouwen:
- Indeling van de werkbelasting: Wij helpen u vast te stellen welke van uw workloads daadwerkelijk geschikt zijn voor spot-gebruik en waar het risico op onderbrekingen te groot is om te accepteren.
- Aanpassing van de omvang van de instanties en optimalisatie van de mix: We analyseren uw huidige rekencapaciteitsgebruik binnen AWS, Azure en GCP en adviseren u over de juiste combinatie van spot-, gereserveerde en on-demand-instances om de kosten te verlagen zonder dat dit ten koste gaat van de betrouwbaarheid.
- Kostenverdeling en inzicht: We hebben een volledige kostentoewijzing ingesteld, zodat u precies kunt zien hoeveel u bespaart door het gebruik van spotmarkt-energie en waar verdere optimalisatie mogelijk is.
- FinOps-governance: Wij helpen uw financiële, IT- en technische teams om op één lijn te komen bij beslissingen over clouduitgaven, zodat strategieën voor spot-instances consistent worden toegepast en worden afgestemd op daadwerkelijke bedrijfsresultaten.
- Beoordeling van de FinOps-rijpheid: Als u niet zeker weet hoe uw organisatie ervoor staat op het gebied van financieel beheer in de cloud, bieden wij een beoordeling aan om uw huidige ontwikkelingsniveau in kaart te brengen en te bepalen welke verbeteringen de meeste toegevoegde waarde opleveren.
Als je de besparingen op spot-instances wilt omzetten van een eenmalig voordeel in een herhaalbare, gestructureerde werkwijze, neem contact met ons op om te bespreken hoe we u kunnen helpen.