In 2017 gaf ShareGate $ 250.000 uit aan Azure. Zelfs met een Azure MVP in ons team die ons hielp de kosten zo laag mogelijk te houden, steeg onze rekening nog steeds met 45% in minder dan 12 maanden. De grootste boosdoener was natuurlijk cloud sprawl.
We wisten dat enorme besparingen mogelijk waren, dus vroegen we onze experts om een lijst met praktische en effectieve cloudkostenbeheersingsmethoden op te stellen om onze Azure-uitgaven te verlagen.
We hebben onze bevindingen gebundeld in deze gids, zodat ook u meteen kunt beginnen met het identificeren van potentiële Azure-besparingen in de omgevingen van uw organisatie.
We hebben elke tip kort, actiegericht en eenvoudig te begrijpen gehouden:
- Overweeg virtuele machines uit de B-Series virtuele machines
- Identificeer en speel in op ongebruikte resources
- Vind de juiste grootte van resources
- Lokaliseer en verwijder ongebruikte schijven
- Gebruik elastische databases
- Ensure external users have access to the right things in Teams.
- Consider B-Series virtual machines
- Dus ik moet al mijn bestaande VM’s converteren naar B-Series en flink besparen?
- Identificeer en speel in op ongebruikte resources
- Ensure external users have access to the right things in Teams.
- Ik heb geen cost governance plan. Wat nu?
- Vind de juiste resourcegrootte
- Wanneer downscalen
- Waarom kan ik het geheugengebruik voor mijn VM niet zien?
- Locate and delete unused disks
- Managed disks
- Classic disks
- Vergeten VHD’s
- Elektrolysepooldatabases gebruiken
- Beter: Managed instances
- Beste: SQL elastic pools
- Time to take action and start saving on Azure
- Ensure external users have access to the right things in Teams.
Ensure external users have access to the right things in Teams.
Consider B-Series virtual machines
While platform-as-a-service (PaaS) offerings have been gaining significant ground over the past few years, virtual machines—be it for legacy reasons or due to specific software requirements—still represent a large portion of cloud usage.
VM’s in de cloud vormen een uitdaging op het gebied van kostenbeheersing: ze vereisen meestal minimale specs om te draaien en zijn vaak inactief met periodieke gebruikspieken, maar toch blijven ze de volledige kosten maken zolang ze aan staan.
In september 2017 kondigde Microsoft de B-serie familie van virtuele machines aan, ook wel burstable virtual machines genoemd. Deze machines zijn speciaal ontworpen voor workloads die altijd beschikbaar moeten zijn, maar doorgaans inactief zijn met incidentele pieken in gebruik. VM’s uit de B-serie bieden een aanzienlijk kostenbesparingspotentieel: tussen 15 en 55% korting op de prijs van een equivalente D-serie machine, afhankelijk van het OS dat u gebruikt.
Aanbevolen leesvoer: Azure kostenbesparende tips: dos and don’ts from industry insiders, door Leigh Ryan
Dus ik moet al mijn bestaande VM’s converteren naar B-Series en flink besparen?
Voorzichtig nu! Niet alle workloads kunnen blindelings worden geconverteerd naar B-Series. U moet een balans vinden tussen kosten en CPU-verbruik. Aan B-Series wordt een baseline hoeveelheid CPU-kracht toegewezen. Zolang het gebruik onder de basislijn blijft, verzamelt de VM credits, die vervolgens kunnen worden gebruikt om CPU’s te verbruiken die de basislijn overschrijden. Als de virtuele machine echter te veel CPU’s gebruikt, wordt deze teruggebracht tot de basisprestaties totdat er voldoende credits beschikbaar zijn.
De basislijnen en kredietlimieten variëren afhankelijk van de grootte van elke VM uit de B-serie. Bovendien gaan alle geaccumuleerde credits verloren wanneer de VM wordt uitgeschakeld. Als zodanig zijn B-Series VM’s echt ontworpen voor low-use of voorspelbare workloads die te allen tijde beschikbaar moeten zijn.
Om te helpen bepalen of uw virtuele machine veilig kan worden geconverteerd naar een B-Series, kunt u aangepaste scripts uitvoeren, zoals Dave Hall’s Azure-Burst-Check script.
Identificeer en speel in op ongebruikte resources
Dankzij Azure is het nog nooit zo eenvoudig geweest om in een oogwenk een nieuwe omgeving in gebruik te nemen wanneer het tijd is om in een nieuwe behoefte van uw organisatie te voorzien. Fast-forward a few years, however, and you’ll start noticing a buildup of resources in your Azure subscription that are likely racking up a hefty bill. It isn’t always easy to tell which workloads are still being used and which ones can safely be decommissioned.
Ensure external users have access to the right things in Teams.
The best solution would be to go back in time and implement a basic cloud asset governance plan. Bekijk onze inleiding over het opstellen van een cloud-kostenbeheerplan voor een overzicht van de kernelementen waarmee rekening moet worden gehouden: zichtbaarheid, eigendom en machtigingen, levenscyclus en optimalisatie – of, zoals wij ze graag noemen, VOLO.
In een notendop: voor elke bron die u aanmaakt, wilt u:
- Tags en andere strategieën gebruiken om te categoriseren hoe de bron zal worden gebruikt (dev, test, prod, enz.).
- Specificeer één eigenaar voor de resource (meestal de persoon die de resource heeft aangevraagd)
- Stel een vervaldatum of controledatum vast voor de resource (en zorg ervoor dat u het schema volgt en overbodige resources direct elimineert)
Als u deze informatie eenmaal hebt, is het een stuk eenvoudiger om te bepalen of een bepaalde resource nog nodig is of niet, en dienovereenkomstig te handelen.
Aanbevolen lectuur: How to start and stop your VMs with Azure Automation, door Antoine Jagueneau
Ik heb geen cost governance plan. Wat nu?
Azure geeft je toegang tot een set gebruiksstatistieken die meten hoeveel activiteit je resources zien. Deze waarden kunnen worden onderzocht vanuit de Azure Portal, door toegang te krijgen tot de Azure API en aangepaste code te gebruiken, of via een speciale oplossing voor kostenbeheer. Door deze gebruikscijfers te onderzoeken, kunt u vaststellen welke middelen niet langer in gebruik zijn (of aanzienlijk onderbenut worden) en passende maatregelen nemen. Houd er ook rekening mee dat cloudkostenbeheer een iteratief proces is, dus het is nooit te laat om aan een plan te beginnen.
Vind de juiste resourcegrootte
Een veelvoorkomend probleem bij het creëren van nieuwe cloudresources is het bepalen van de juiste grootte om te gebruiken. Azure biedt een groot aantal opties om aan verschillende eisen te voldoen (meer RAM, meer CPU-kracht, SSD-schijven, GPU’s, enz.), maar zelfs binnen dezelfde familie van machines is het kiezen van de juiste grootte van belang.
Aanbevolen te lezen: Hoe werkt Azure VM pricing, door Leigh Ryan
Als je het verkeerd doet, betaal je meer dan je nodig hebt terwijl je machine niets doet, of je zit met een machine die 100% CPU gebruikt (of nog erger, naar virtueel geheugen swapt omdat de fysieke RAM op is).
Het is niet altijd eenvoudig om van tevoren de systeemeisen te achterhalen, dus het kan verleidelijk zijn om voor de zekerheid iets meer te kiezen dan nodig is. Het is ook heel gebruikelijk om het vervolgens te vergeten en het te groot te laten, wat maand na maand tot onnodige kosten leidt.
Hoe kunt u dit voorkomen? In dit artikel bekijken we enkele strategieën.
De eenvoudigste manier om geldverspilling door onnodig resourcegebruik te voorkomen, is door een speciale cloud-optimalisatietool uw tenant te laten monitoren en u te waarschuwen wanneer er een kans is om een bepaalde resource te rightsizen, downscalen of anderszins te verminderen.
Wanneer downscalen
Als u denkt dat dit voor uw omgeving het geval kan zijn, geen paniek! Er zijn een paar eenvoudige manieren om te bepalen of u een bepaalde VM moet downsizen. De eenvoudigste methode is om te kijken naar de CPU Percentage en Memory Percentage grafieken voor elke resource in de Azure Portal.
Typisch, instance maten in Azure verdubbelen met elke tier: een S1 zal 1 CPU core hebben samen met 1,75 GB RAM, terwijl een S2 2 cores zal hebben en 3,5 GB RAM. Hetzelfde patroon geldt ook voor databasegroottes en DTU’s.
In alle gevallen, als je over een lange periode ziet dat beide gebruiksstatistieken onder de 50% liggen, kun je met een gerust hart je instance downscalen zonder je zorgen te maken over het belemmeren van de prestaties.
Waarom kan ik het geheugengebruik voor mijn VM niet zien?
urpose, you will not be getting the Memory Percentage graphs for virtual machines, classic or managed, out of the box. Om toegang tot deze informatie te krijgen, moet u monitoring op gastniveau inschakelen en de juiste prestatiecounters aanvinken. Degene die u specifiek moet controleren is MemoryCommitted Bytes. Met deze informatie kunt u bepalen of een service veilig kan worden gedownscaled of niet.
Locate and delete unused disks
Als u Azure al een tijdje gebruikt, hebt u waarschijnlijk al heel wat virtuele machines gemaakt en verwijderd. Maar uw rekening blijft maar stijgen, en u weet niet precies waarom. Een waarschijnlijke boosdoener zijn opslagschijven, met name de schijven voor verwijderde virtuele machines die nog steeds in je account staan en je maand na maand geld kosten. Dit is nog waarschijnlijker als u klassieke virtuele machines hebt gebruikt in plaats van de nieuwe ARM-variant. De reden hiervoor is heel eenvoudig: Azure verwijdert niet systematisch uw schijven wanneer u een virtuele machine verwijdert. Dit is om je te beschermen tegen onbedoeld gegevensverlies, maar het betekent ook dat als je niet oppast, je blijft betalen voor schijven die je niet langer nodig hebt.
Je kunt dit probleem oplossen vanuit de Azure portal. The procedure will be a bit different depending on whether you’re dealing with managed disks or classic disks.
Managed disks
For managed disks, go to the Azure portal, search for Disks in the search bar, and select “Disks”.
This will display all your managed disks. If the Owner column is empty, it means that the disk is not currently attached to anything and you can probably delete it.
To delete the disk, select the row, go to Overview and click Delete in the top bar.
Classic disks
For classic disks, go to the Azure portal, click in the Search bar up top and search for Disks. Select “Disks (classic)”.
You’ll see all of your disks and a column indicating which VM each disk is currently attached to. If you see a disk that isn’t attached to a VM, you can probably delete it safely.
Deleting classic disks is a bit of a process, as the underlying file (the VHD), which is stored in a storage account, will still be there until you manually remove it. Here are the steps:
1. Click on the classic disk and take note of its Storage account and Media link information
2. Click Delete and confirm
3. Gebruik de Azure-zoekbalk om het opslagaccount te vinden dat u in stap 1 hebt genoteerd en open vervolgens het deelvenster Eigenschappen
4. Klik op Blobs en selecteer vervolgens de rij met de juiste opslagcontainer
5. Vink het vakje met de juiste bestandsnaam aan en klik vervolgens op Verwijderen in het bovenste menu
Vergeten VHD’s
Zelfs als u al deze stappen volgt om niet-gekoppelde schijven te identificeren, kan het zijn dat je vergeten VHD’s over het hoofd ziet die in de klassieke opslag staan. Meestal maakt de Azure Portal een “vhds” container en zet ze daar in een opslag account. Om ze te lokaliseren, controleer elke klassieke opslag account voor een vhds container onder Blobs. In de container, kijk naar de Lease status kolom voor elk bestand. Als er Available staat, betekent dit dat er momenteel geen VM gebruik maakt van die VHD en dat u deze veilig kunt verwijderen (maar u moet altijd de inhoud controleren om er zeker van te zijn!).
Elektrolysepooldatabases gebruiken
De kans is groot dat u uw cloudmigratieproject bent begonnen met het verplaatsen van workloads die voorheen on-prem of in een privédatacenter werden gehost, naar Azure. Een groot aantal van deze workloads gebruikte waarschijnlijk SQL Server-databases, die de ruggengraat vormden van de meeste softwareprojecten vóór de opkomst van de cloud en de NoSQL-beweging. U heeft waarschijnlijk ook gemerkt dat de prijzen voor SQL-databases in Azure vrij hoog kunnen oplopen, vrij snel.
Terwijl u voorheen misschien een enkele databaseserver gebruikte om tientallen, zo niet honderden, databases te hosten voor uw verschillende projecten of klanten, kunnen de kosten van het opsplitsen van deze databases in afzonderlijke Azure SQL-databases ordes van grootte hoger zijn dan wat u verwachtte. Dit is te wijten aan de manier waarop databases werken in Azure. On-prem, was u gewend dat meerdere databases de beperkte middelen van een enkele server deelden. Met Azure SQL, heeft elke database een gereserveerde hoeveelheid middelen, die u nog steeds in rekening worden gebracht, zelfs als de database niet wordt gebruikt. Het model is geweldig als u meerdere databases heeft met consistent, voorspelbaar gebruik. Als u echter een groot aantal databases met een grillig gebruikspatroon hebt, vindt u het prijskaartje mogelijk aanzienlijk minder aantrekkelijk. Dit laat u twee opties:
- Gebruik een grotere, duurdere database tier om piek database gebruik op te vangen
- Gebruik een lagere tier om kosten te besparen, ten koste van de prestaties tijdens de piekuren
Om resources te delen tussen databases, waren vroege gebruikers van Azure gedwongen om hun eigen virtuele machines te maken en te onderhouden met SQL Server geïnstalleerd en in wezen de omstandigheden te repliceren waaronder ze werden uitgevoerd terwijl ze on-prem waren of in een prive datacenter. Hoewel deze methode prima werkte, gaf het geen toegang tot alle geweldige functies die Azure SQL te bieden heeft, zoals:
- Built-in hoge beschikbaarheid (geen noodzaak om replicatie te configureren)
- Actieve geo-replicatie
- Point-in-time restore
Deze functies zijn niet triviaal om zelf te implementeren en kunnen een uitdaging zijn om te onderhouden.
Beter: Managed instances
Azure biedt een nieuwer niveau van SQL-databaseservices genaamd Managed instances, die in wezen beheerde virtuele machines zijn die een SQL Server hosten. Managed instances zullen u niet voorzien van alle functies die zijn ingebouwd in Azure SQL single-database services, maar u hoeft ook niet het besturingssysteem of SQL Server installatie te beheren. In principe krijgt u een virtuele machine waarvan de configuratie en het onderhoud grotendeels voor u wordt geregeld.
Beste: SQL elastic pools
Maar er is nog een andere optie in Azure om dit veel voorkomende scenario aan te pakken: SQL elastic pools. In plaats van een bepaalde hoeveelheid resources te reserveren voor een enkele database, kunt u met SQL elastic pools een aantal resources reserveren en deze delen over honderden databases. Dit model heeft alle voordelen van Azure SQL en stelt u in staat om goed om te gaan met piekende gebruikspatronen over meerdere databases. Elastic pools hebben bewezen ongelooflijk populair te zijn en zijn een ideale optie voor multi-tenanted applicaties.
Hoewel, moet u voorzichtig zijn in uw gebruik van elastische pools. Als een of meer databases aanzienlijk meer worden gebruikt dan de andere databases in een pool, kan het zijn dat u een duurdere elastic pool tier moet aanschaffen om de pieken in het gebruik op te vangen. In sommige gevallen kan het zelfs kosteneffectiever zijn om deze databases met een hoog gebruik op te splitsen in enkelvoudige database-aanbiedingen (door ze uit de pool te halen) en te betalen voor een kleinere tier van de elastische pool voor de resterende databases met een lager gebruik. Een goede vuistregel is om te kijken naar het DTU-gebruik van databases: als een enkele database op een bepaald moment 40% of meer van de DTU’s van de elastische pool gebruikt, kunt u mogelijk kosten besparen door de database af te splitsen van de pool en vervolgens de pool af te schalen naar een minder dure tier.
Zoals altijd kunt u via de Azure-portal patronen in databasegebruik vaststellen.
Time to take action and start saving on Azure
By acting on the five areas outlined in this guide, our team managed to shrink our Azure spend by 30%.
Can you do better?
Ensure external users have access to the right things in Teams.
Get full visibility into who’s shared what with whom, and automate external sharing reviews so they’re performed on an ongoing basis.