Savings Plans (AWS en Microsoft Azure) en Flexible CUDs (GCP) stellen klanten in staat om korting te krijgen op het gebruik van compute resources, over cloud regio's heen en over compute services heen. De compute services die onder savings plans vallen, verschillen per provider. Hieronder leggen we dit uit.
Een savings plan bestaat uit een financiële commitment voor compute resources per uur, voor een periode van 1 of 3 jaar. De overkoepelende term die Google gebruikt voor deze kortingsconstructie is spend-based kortingen. De klant committeert zich aan een minimale hoeveelheid geld die hij zal spenderen.
In ruil voor deze financiële commitment krijgt de klant korting op het on-demand tarief voor de compute resources die kwalificeren voor het savings plan. De commitment houdt in dat voor elk uur tijdens de termijn van het savings plan gebruik in rekening wordt gebracht, ongeacht het daadwerkelijke gebruik van compute resources. Wanneer het gebruik van de klant hoger is dan de commitment, dan wordt voor het verschil het on-demand tarief in rekening gebracht.
Savings plans geven geen garantie dat capaciteit beschikbaar is voor de klant. Hoewel cloud providers veel compute capaciteit beschikbaar hebben in hun cloud regio's, is het mogelijk dat op enig moment een VM van een door de klant gekozen type in een door de klant gekozen regio niet beschikbaar is, ook al heeft de klant een savings plan gekocht en dat nog niet volledig uitgenut. AWS en GCP hebben, naast Savings Plans en Flexible CUDS, de mogelijkheid om compute capaciteit te reserveren. Microsoft heeft inmiddels ook zo'n mogelijkheid, maar die is beperkt tot een deel van de Azure VM families.
Savings Plans en Flexible CUDs geven korting op compute infrastructuur. Ze geven geen korting op betaalde software die wordt meegeïnstalleerd, zoals bv. Microsoft Windows Server, Red Hat Enterprise LInux of SUSE Linux. Daardoor zijn de effective kortingen op VMs met een betaalde OS licentie erin lager dan die op VMs met een gratis OS.
In de volgende paragrafen bespreken we de details van de savings plans van AWS, GCP en Microsoft Azure.
AWS Savings Plans
AWS heeft 3 soorten savings plans.
- SageMaker Savings Plans (voor Machine Learning services in het SageMaker portfolio)
- EC2 Instance Saving Plans (voor EC2 VMs)
- Compute Savings Plans (voor EC2, Fargate en Lambda)
SageMaker Savings Plans zijn voor generiek AWS gebruik minder belangrijk dan de andere twee typen savings plans. In dit artikel gaan we er verder niet op in.
EC2 instance Savings Plans lijken op Reservations omdat ze korting geven op het gebruik van EC2 instances van een gekozen instance familie in een gekozen regio. De korting wordt automatisch toegepast op alle instances in de gekozen regio en binnen de gekozen familie, ongeacht het OS van de instance, de Availability Zone of tenancy (shared, dedicated instance en dedicated host).
EC2 instance savings plans verschillen van reservations in de hoeveelheid korting die de klant krijgt. Een ander verschil is dat bij sommige Reservations een capaciteitsreservering hoort en bij Savings Plans niet.
Compute savings plans zijn flexibeler dan EC2 instance savings plans. De korting is niet alleen van toepassing op EC2 instances (shared en dedicated) en dedicated hosts, maar ook op AWS Fargate (managed container hosting) en AWS Lambda (Function as a Service). Bovendien hoeft de klant geen cloud regio of EC2 instance familie te kiezen bij een compute savings plan.
Bij het kopen van een Savings Plan moet een aantal keuzes worden gemaakt.
- Als eerste natuurlijk het type Savings Plan, EC2 Instance of Compute.
- Daarnaast de termijn, 1 of 3 jaar.
- Als een EC2 Instance Savings Plan wordt gekozen, dan moet ook een cloud regio worden gekozen. Voor een Compute Savings Plan is dit niet nodig.
- En ten slotte de commitment in dollars per uur gedurende de gekozen termijn.
Korting
Savings Plan kortingen zijn bij AWS verschillend voor verschillende cloud regio's en voor verschillende typen VMs
Een Savings Plan met een termijn van 1 jaar met een commitment van $100/uur betekent een commitment om gedurende een jaar compute resources af te nemen met een totale prijs van $100 per uur op basis van het kortingstarief .
Neem even als voorbeeld een klant die 100 EC2 instances gebruikt met een on-demand tarief van $2.00 per uur en een EC2 Instance Savings Plan tarief van $1.50. Om het totale gebruik van de 100 instances tegen het kortingstarief te krijgen, moet de klant een Savings Plan aanschaffen met een commitment van $150/uur.
AWS Savings Plans kennen drie betaalopties:
- Maandelijkse betaling (No Upfront)
- Gedeeltelijke betaling vooraf, de rest maandelijks (Partial Upfront)
- Geheel vooraf (All Upfront)
In ruil voor (gedeeltelijke) betaling vooraf krijgt de klant een hogere korting. De korting is niet alleen afhankelijk van de gekozen betaaloptie, maar ook van de cloud regio, de compute service en de gekozen termijn (1 of 3 jaar). De actuele listprijzen voor on-demand gebruik en savings plans zijn terug te vinden op de compute savings plans prijspagina. In deze publieke prijzen zit niet de OCRE korting verwerkt.
Instellingen die via SURFcumulus AWS cloud inkopen onder de OCRE raamwerkovereenkomst krijgen een OCRE korting op de listprijzen van AWS. Deze korting wordt ook op Savings Plans toegepast.
Toepasbaarheid
De klant kan bij AWS kiezen voor het toepassen van Savings Plan korting op een enkel AWS account of op meerdere AWS accounts binnen een consolidated billing family, net als bij Reservations. De korting wordt eerst toegepast voor het gebruik in het AWS account waarin het Savings plan is aangekocht. Als dat verbruik niet de volledige commitment afdekt, dan wordt de resterende korting toegepast op de andere accounts binnen de consolidated billing family als het delen van korting aangezet is.
Een Savings Plan heeft verschillende kortingspercentages voor verschillende typen EC2 instances en klanten kunnen meerdere Savings Plans hebben, met verschillende kortingen (bv. een 3-jaars Savings Plan met gedeeltelijke betaling vooraf geeft hogere kortingen dan een 1-jaars Savings Plan zonder betaling vooraf). Daardoor is het moeilijk om de effectieve korting te berekenen. We laten een paar voorbeelden zien, gebaseerd op de voorbeelden die AWS geeft in de Savings Plan documentatie.
Voor de voorbeelden nemen het het volgende verbruik aan van compute diensten:
- 4x R5.xlarge Linux EC2 instance
- 400 vCPU plus 1600 GB Fargate container capaciteit (aantal containers maakt niet het, het gaat om de totale hoeveelheden CPU en RAM die worden gebruikt)
- 1x M5.24xlarge Windows instance
- 1 miljoen Lambda requests voor 512 MB (0.5 GiB) RAM, elk met een uitvoeringstijd van 3 seconden. Dit zijn in totaal 0.5 x 1 000 000 x 3 = 1 500 000 GiB-seconden
We nemen aan dat dit het verbruik is in 1 uur. Verder nemen we kortingspercentages voor een Compute Savings Plan aan per service (dit zijn niet de echte kortingspercentages van CSPs). In tabelvorm ziet het er als volgt uit:
Resource type | Gebruik in uur | On-demand tarief | On-demand prijs | CSP tarief | CSP korting (%) |
R5.4xlarge Linux | 4 | $ 1.00 | $ 4.00 | $ 0.70 | 30% |
Fargate vCPU | 400 | $ 0.04 | $ 16.00 | $ 0.03 | 25% |
Fargate memory | 1600 | $ 0.004 | $ 6.40 | $ 0.003 | 25% |
M5.24xlarge Windows | 1 | $ 10.00 | $ 10.00 | $ 8.20 | 18% |
Lambda duur (GB-sec) | 1500000 | $ 0.0000150 | $ 22.50 | $ 0.00001275 | 15% |
Lambda requests (miljoenen) | 1 | $ 0.20 | $ 0.20 | $ 0.20 | 0% |
TOTAAL |
|
| $ 59.10 |
|
|
Voorbeeld 1: CSP met een commitment van $50/uur
De totale prijs voor dit gebruik met toepassing van de CSP korting is $47.13. Omdat lager is dan het commitmentniveau van $50, betaalt de klant in dit geval $50 voor het gebruik in dit uur.
Voorbeeld 2: CSP met een commitment van $2/uur
In dit geval is de commitment lager dan het totale verbruik. De CSP korting wordt als eerste toegepast op het gebruik met het hoogste kortingspercentage. In dit geval is dat op de R5.4xlarge instances waarvoor de korting 30% is. De commitment van $2 dekt $2/$0.70 = 2.85 van de 4 gebruiksuren. De klant betaalt voor het R5.4xlarge gebruik in een uur dus $2.00 + (4-2.85) * $ 1.00 = $3.14.
Het overige gebruik (Fargate, Lambda en M5.24xlarge Windows) wordt tegen het on-demand tarief in rekening gebracht. Het totaal in rekening gebrachte bedrag is $55.10 + $3.14 = $58.24.
Voorbeeld 3: CSP met een commitment van $19.60/uur
In dit voorbeeld wordt de CSP commitment niet afgedekt door één service. De korting wordt toegepast op de verschillende services in volgorde van aflopende kortingspercentage. Dus eerst wordt de korting toegepast op het R5.4xlarge gebruik, daarna op het Fargate gebruik, etc. Het Fargate gebruik heeft twee onderdelen: vCPU en geheugen. Het kortingspercentage is voor beide hetzelfde. Wanneer er twee of meer services of service componenten met hetzelfde kortingspercentage in aanmerking komen voor CSP korting, dan wordt de korting als eerste toegepast op de service(component) met het laagste tarief. In dit geval is dat Fargate geheugen.
Om uit te rekenen wat bij de klant in rekening wordt gebracht, zetten we de service(componenten) in de volgorde waarin de korting wordt toegepast. In de kolom CSP burndown houden we bij hoeveel van de Savings Plan commitment wordt opgesoupeerd (cumulatief). Voor alle verbruik boven de commitment van $19.60 wordt het on-demand tarief in rekening gebracht. In de tabel zijn in de kolom Gefactureerd de bedragen cursief gezet voor de servicecomponenten waarvoor on-demand tarief is toegepast.
Resource type | Gebruik in uur | On-demand tarief | On-demand prijs | CSP tarief | CSP korting (%) | CSP prijs | CSP burndown | Gefactureerd |
R5.4xlarge Linux | 4 | $ 1.00 | $ 4.00 | $ 0.70 | 30% | $ 2.80 | $ 2.80 | $ 2.80 |
Fargate memory | 1600 | $ 0.004 | $ 6.40 | $ 0.003 | 25% | $ 4.80 | $ 7.60 | $ 4.80 |
Fargate vCPU | 400 | $ 0.040 | $ 16.00 | $ 0.030 | 25% | $ 12.00 | $ 19.60 | $ 12.00 |
M5.24xlarge Windows | 1 | $ 10.00 | $ 10.00 | $ 8.20 | 18% | $ 8.20 | $ 19.60 | $ 10.00 |
Lambda duur (GB-sec) | 1500000 | $ 0.0000150 | $ 22.50 | $ 0.00001275 | 15% | $ 19.13 | $ 19.60 | $ 22.50 |
Lambda request (miljoenen) | 1 | $ 0.20 | $ 0.20 | $ 0.20 | 0% | $ 0.20 | $ 19.60 | $ 0.20 |
TOTAAL |
|
| $ 59.10 |
|
| $ 47.13 |
| $ 52.30 |
In totaal wordt $52.30 in rekening gebracht bij de klant, waarvan $19.60 voor het CSP en $32.70 voor on-demand gebruik.
Voorbeeld 4: CSP + EC2 Instance Savings Plan
Als een klant zowel een Compute Savings Plan als een EC2 Instance Savings Plan heeft, dan wordt eerst het EC2SP toegepast op EC2 verbruik omdat EC2SPs enkel op EC2 verbruik van toepassing zijn. Wanneer eerst CSP zou worden toegepast op EC2 instances, dan kan mogelijk het EC2SP niet worden uitgenut.
Voorbeeld 5: Savings Plan + Reserved Instance Plan
Reserved Instances zijn specifieker dan Savings Plans en ze hebben in het algemeen hogere kortingspercentages. Daarom worden RI kortingen toegepast vóór Savings Plan kortingen.
Savings Plan opzeggen
Het is niet mogelijk om een Savings Plan op te zeggen voordat de termijn is verstreken. Het is dus belangrijk om goed te plannen hoeveel compute capaciteit nodig is vóór de aankoop van een Savings Plan.
GCP Flexible CUDs
Google gebruikt niet de term savings plans, maar Flexible Committed Use Discounts. Flexible CUDs zijn een vorm van spend-based korting. Dit zijn kortingen die GCP klanten kunnen krijgen als zij een financiële commitment doen. Dit type kortingen is bij GCP beschikbaar voor Google Compute Engine (GCE) VMs onder de naam Flexible Committed Use Discounts. Spend-based kortingen zijn daarnaast beschikbaar voor Cloud SQL, Cloud Spanner, Google Cloud VMware Engine, Cloud Run en Google Kubernetes Engine (GKE). In dit artikel richten we ons op de spend-based kortingen voor GCE VMs. Als een GCP klant spend-based korting wil krijgen op, bijvoorbeeld, GKE en GCE, dan moeten twee kortingsplannen worden aangekocht: een GKE CUD en een GCE Flexible CUD.
Korting
Het mechanisme zoals GCP het aanbiedt, is simpeler dan dat van AWS en Microsoft. De klant kiest voor een termijn van 1 of 3 jaar en een financieel commitment niveau; het is niet nodig om een cloud regio te kiezen. De klant kiest bijvoorbeeld voor een 1-jaars commitment om elk uur in dat jaar $100 per uur aan Google Compute Engine te spenderen. Op de commitment krijgt de klant een vaste korting. Op het moment van schrijven van dit artikel is de korting op het on-demand tarief 28% voor 1-jaars commitments en 46% voor 3-jaars commitments, voor alle typen machines die onder de regeling vallen en in alle cloud regio's. De actuele kortingen zijn te vinden in Flexible CUDs in de Google prijsinformatie.
Teruggrijpend op het voorbeeld, een 1-jaars Flexible CUD commitment van $100 per uur leidt ertoe dat er elk uur minimaal $72 in rekening wordt gebracht aan de klant, of de klant VMs aan heeft staan of niet. Als de klant op enig moment meer VM capaciteit gebruikt dan voor $100 (on-demand tarief), dan wordt het bedrag boven de $100 tegen het on-demand tarief in rekening gebracht. Op het on-demand tarief worden Sustained Use Discounts toegepast zoals beschreven in Sustained use discounts.
Bij GCP doet de klant dus een commitment op basis van het on-demand tarief (in tegenstelling tot AWS).
Instellingen die via SURFcumulus GCP inkopen onder de OCRE raamwerkovereenkomst krijgen een OCRE korting op de listprijzen van GCP. Deze korting is van toepassing op zowel on-demand gebruik als Flexible CUDs.
GCP heeft ook een Reservations mechanisme. Dit noemen zij Resource-based CUDs. Resource-based CUDs geven in het algemeen een hogere korting dan Flexible CUDs. Als een klant zowel Resource-based als Flexible CUDs heeft, dan worden de Resource-based CUDs als eerste toegepast. De Flexible CUDs worden toegepast op VMs waar geen Resource-based CUD op is toegepast.
Toepasbaarheid
Flexible CUDs kunnen worden gekocht voor vCPUs en RAM, voor een beperkt VM families, nl.
- General purpose VMs uit de N1, N2, E2, C3 en N2D families
- Compute optimized VMs uit de C2 en C2d families.
De actuele lijst van machine typen waarvoor Flexible CUDs van toepassing zijn, is terug te vinden onder het kopje Flexible CUDs in de GCP documentatie over committed use discounts voor Google Compute Engine. Flexible CUDs zijn van toepassing op vCPU en op RAM capaciteit.
Scope
De aankoop van Flexible CUDs gebeurt in de GCP Console op Billing Account niveau. De kortingstarieven worden toegepast op alle Projects waarvan de betalingen via het betreffende Billing Account lopen.
Opzeggen van Flexible CUDs
Flexible CUDs kunnen niet opgezegd worden voordat de gekozen termijn is verstreken. Het daarom van belang vóór aankoop van een Flexible CUD te plannen hoeveel er minimaal uitgegeven zal worden aan GCE VMs.
Azure savings plans
Azure savings plan kortingen zijn van toepassing op 6 verschillende Azure diensten:
- Azure VMs
- App Service (Premium v3 en Isolated v2 Service Plans)
- Azure Functions (Premium Plan)
- Container instances (GPU container groups are not eligible)
- Dedicated hosts
- On-demand capacity reservations
Resources van deze 5 typen in alle Azure cloud regio's komen in aanmerking voor savings plan korting; savings plans zijn - in tegenstelling tot Reservations - niet gebonden aan een regio of een VM familie en de klant kiest niet vooraf een van de vijf compute diensten. Bij aankoop van een Savings Plan kwalificeert het gebruik van alle vijf genoemde diensten voor het bijbehorende kortingtarief.
Dit maakt Azure savings plans in zekere mate toekomstvast. Als je als Azure klant moderniseringsplannen hebt, bv. een deel van je applicaties omzetten van VMs naar containers, app service of Azure Functions, dan blijven savings plan kortingen van toepassing. Bij het plannen van de per-uur commitment is het wel van belang rekening te houden met de -- hopelijk lagere -- kosten als de modernisering is afgerond.
Korting
Voor VMs variëren de savings plan kortingen t.o.v. on-demand prijzen over instance families & types en over cloud regio's. Het is voor savings plans bij Microsoft dus van belang dat de klant goed kijkt naar de typen VMs die worden gebruikt, in welke cloud regio ze worden gebruikt en wat het kortingspercentage is. Bij het toepassen van Savings Plan kortingen, wordt - net als bij AWS - de korting als eerste toegepast op de compute resources met het hoogste kortingspercentage zodat de effectieve korting voor de klant wordt gemaximaliseerd.
Het is bij Microsoft Azure mogelijk dat een Savings Plan korting negatief is. Dit is het geval voor Av2-series VMs met Windows Server als OS en zonder Azure Hybrid Benefit:
Hier is te zien dat de kosten voor Av2 VMs bij toepassing van een Savings Plan hoger zijn dan de kosten voor pay as you go gebruik. Het is niet duidelijk hoe Microsoft negatieve Savings Plan kortingen toepast op het verbruik.
De commitment die de klant doet, is een commitment op basis van het kortingstarief. Bij het toepassen van de korting wordt elk uur door Microsoft bekeken welke compute resources in aanmerking komen voor Savings Plan korting. De kosten van de resources met het hoogste kortingspercentage worden in mindering gebracht op de commitment, totdat de "commitment pot" leeg is.
Azure savings plans moeten in de Azure portal worden aangekocht. Klanten kunnen voor de hele termijn vooraf betalen, of per maand gedurende de looptijd. Betaling vooraf leidt niet tot een hogere korting.
Onder het OCRE raamwerkcontract krijgen instellingen een OCRE korting op on-demand gebruik die niet van toepassing is op Savings Plans. Doordat instellingen voor Savings Plans de listprijs van Microsoft Azure betalen en voor on-demand gebruik een OCRE korting van toepassing is, kan het voorkomen dat een Savings Plan duurder is dan on-demand gebruik. De Azure pricing calculator laat de daadwerkelijke korting zien op basis van de tarieven die gelden voor SURFcumulus gebruikers. Om de juiste tarieven en kortingen te zien in de pricing calculator moet je ingelogd zijn met een instellingsaccount, bv. met het department administrator account.
Toepasbaarheid
Klanten bepalen de scope van savings plans die ze aankopen. Er zijn bij Microsof Azure 4 mogelijkheden voor de scope van savings plans:
- Shared scope - de savings plan kortingen worden toegepast op resources in alle subscriptions in de billing scope (enrollment). Instellingen die via SURFcumulus Azure afnemen en die geen eigen enrollment hebben, moeten niet shared scope kiezen.
- Single subscription scope - de savings plan korting wordt toegepast op compute resources binnen de gekozen subscription.
- Management group scope - de savings plan korting wordt toegepast op compute resources in de subscriptions binnen de gekozen management group en billing scope.
- Single resource group scope - de savings plan korting wordt toegepast op compute resources binnen een enkele resource group.
De single resource group scope zou alleen gebruikt moeten worden als er op resource group niveau kosten worden doorbelast binnen de klantorganisatie. Single subscription en management group liggen het meest voor de hand om te kiezen.
Azure savings plans moeten in de Azure portal worden aangekocht. Klanten kunnen voor de hele termijn vooraf betalen, of per maand gedurende de looptijd. Betaling vooraf leidt niet tot extra korting.
Wanneer een Azure gebruiker meerdere savings plans heeft aangekocht, dan wordt bij de toepassing van kortingen eerst het savings plan met de hoogste korting toegepast. In de praktijk zal dat betekenen dat een savings plan met een looptijd van 3 jaar wordt toegepast voordat een savings plan met een looptijd van 1 jaar wordt toegepast.
Wanneer een Azure gebruiker zowel savings plans als Azure reservations heeft aangekocht, dan wordt eerst de korting van reservations toegepast omdat reservations specifieker zijn en gewoonlijk hogere korting geven voor de gebruiker. Meer informatie over het toepassen van kortingen voor reservations en savings plans is beschikbaar in het artikel How savings plan discount is applied in de Azure documentatie.
Savings Plan opzeggen
Waar reservations bij Microsoft - onder voorwaarden - voortijdig beëindigd kunnen worden, is dat bij savings plans niet het geval, zie Azure saving plan cancellation policies. De klant committeert zich daadwerkelijk voor 1 of 3 jaar.