Centric connect.engage.succeed

Hoe bespaar je op virtuele machines?

Geschreven door René Vlieger - 15 november 2017

René Vlieger
Veel organisaties die over willen naar de cloud, haken af zodra zij de kostenanalyse onder ogen krijgen. Maar wat deze bedrijven vaak niet weten, is dat ze flink op kosten kunnen besparen, bijvoorbeeld waar het gaat om de virtuele machines (VM’s) in de Microsoft Azure Cloud. Via deze blog geef ik je een aantal tips om die kostenbesparing mogelijk te maken.

Gebruik Azure Marketplace VM images

De Azure Marketplace bevat redelijk veel VM images voor diverse operating systems, waaronder die van Microsoft. Door VM images te gebruiken die in de Azure Marketplace worden aangeboden, kun je besparen op licentiekosten. Dergelijke VM images bevatten vaak al een licentie voor het operating system en hoeven dus niet los aangeschaft te worden.

Azure Marketplace VM images

Onderzoek prijzen Azure-regio’s

Niet alle Azure-regio’s hanteren dezelfde prijzen voor dezelfde resources. Dit is voor VM’s niet anders. Hoewel het wordt aangeraden om resources aan te maken in de regio die het dichtstbij is, kan het kostentechnisch interessant zijn om bepaalde resources aan te maken in (een) andere regio(s). Onderstaand heb ik een prijsvergelijking gedaan met het aanmaken van een VM in diverse regio’s. Overigens zijn bepaalde VM-types niet overal beschikbaar.

West Europa

prijs VM West Europa

West-US

Prijs West US

UK-West

Prijs VM West US

Deallocate VM’s die niet meer in gebruik zijn

Vaak zijn VM’s workloads maar een paar keer per maand nodig voor een bepaald doel. Denk hierbij aan een terugkerend maandelijks proces, zoals batch-verwerking dat altijd het einde van de maand plaatsvindt. Dit betekent dat deze VM’s het merendeel van de tijd voor niks aanstaan en dus geld kosten. Het stoppen of dealloceren van VM’s als ze niet in gebruik zijn, kan dan ook een aardige kostenbesparing opleveren.

De reden dat dit werkt, is simpel. CPU, Memory en andere hardware die gereserveerd zijn voor de betreffende VM’s, worden vrijgegeven. Hierdoor hoef je er niet langer voor te betalen en als je de VM’s nodig hebt, zet je ze gewoon weer aan.

Er zijn twee manieren om VM’s te deallocaten als ze niet in gebruik zijn:

Handmatig stoppen van de VM (Deallocate)

Voor deze optie ga je naar de Azure Portal. Navigeer vervolgens naar de betreffende VM en klik op de stop-button. Je VM gaat uit en de resources worden vrijgegeven.

Handmatig stoppen van de VM (Deallocate)

VM’s kunnen ook gestopt worden om resources te dealloceren met PowerShell of Azure CLI. In het volgende voorbeeld laat ik zien hoe je de VM stopt via PowerShell.

  1. Als eerste maak ik connectie met Azure:
    Login-AzureRmAccount
  2. Met het volgende commando vraag ik de status van de VM op:
    Get-AzureRmVM -ResourceGroupName RV_RG_001 -Name RV-TESTVM001 -Status | Select @{n="Status"; e={$_.Statuses[1].Code}}
  3. De VM zal een PowerState/running geven.
  4. Via het volgende commando stop ik de VM:
  5. Stop-AzureRmVM -ResourceGroupName RV_RG_001 -Name "RV-TESTVM001" -Force
  6. In het screenshot zie je dat de VM is gestopt:
  7. Als we nu de status opvragen (zie 2) van de VM, wordt de status PowerState/deallocated weergegeven.

Status PowerState/deallocated

Configureer Auto-shutdown

De tweede mogelijkheid is om de optie Auto-shutdown voor de VM(‘s) in te schakelen waarvan je wilt dat ze automatisch stoppen. Met de Auto-shutdown-optie heb je de mogelijkheid om een specifieke tijd aan te geven wanneer de VM uitgeschakeld moet worden en resources moeten worden vrijgegeven. Om deze optie in te schakelen, ga je in de Azure Portal naar de betreffende VM. Bij OPERATIONS vind je vervolgens de optie Auto-shutdown. Mijn VM schakelt elke dag om 19.00 uur automatisch uit.

Auto-shutdown-optie

Verwijder onnodige Azure Resources

Ongebruikte resources, zoals Web Apps, Storage Accounts en VM’s blijven geld kosten als je ze niet opruimt. Verwijder deze resources daarom ook uit je Azure Subscription. Resources kun je gemakkelijk verwijderen met de Azure Portal, Azure CLI of Azure PowerShell. Ik heb in een eerder stadium een test Azure Deze gaan we nu met Azure PowerShell verwijderen:

  1. Eerst maak ik connectie met Azure:
    Login-AzureRmAccount
  2. Met het volgende commando vraag ik informatie over de ResourceGroup op:
  3. Get-AzureRmResourceGroup -Name RV-RG-TEST-1 ResourceGroup aangemaakt met de naam RV-RG-TEST-1.
    Voorbeeld van verwijderen Azure Resources
  4. Met het volgende commando verwijder ik de ResourceGroup:
  5. Remove-AzureRmResourceGroup -Name RV-RG-TEST-1 -Force

Over René

René is werkzaam bij Centric Infrastructure Professionals. René is hier actief als consultant en is voornamelijk te vinden in de regio Noord-Oost Nederland.

Tags:Cloud

     
Schrijf een reactie
  • Captcha image
  • Verzenden