Hybrid Use Benefit – Obniż koszt maszyn wirtualnych w Azure o nawet 40%

Jedną z powszechnych metod obniżania kosztów podczas migracji do chmury jest korzystanie z tak zwanego BYOL (Bring Your Own License). W dużym uproszeniu, po zainstalowaniu pożądanego przez nas oprogramowania nie musimy korzystać z licencji, którą daje nam dostawca chmury. Korzystamy z naszych, wcześniej zakupionych licencji (np. importowanych z rozwiązań on-premises). Tego typu model uchroni nas przed ponownymi opłatami licencyjnymi, nie był on jednak przez długi czas możliwy do zastosowania w przypadku systemu operacyjnego maszyny wirtualnej. Dla Windows Server nie da się tego zrobić ani w AWS, ani też w GCP, w Azure jest to natomiast możliwe dzięki Hybrid Use Benefit.

Czym jest Hybrid Use Benefit i kto może z niego skorzystać?

Jeżeli posiadasz zakupione wcześniej licencje Windows Server z aktywnym pakietem Software Assurance przysługuje Ci wiele dodatkowych korzyści. Jedną z nich jest Hybrid Use Benefit, umożliwiające użycie posiadanych licencji z serwerów on-premises na serwerach w chmurze. W efekcie cena maszyny wirtualnej uwzględnia jedynie infrastrukturę z pominięciem dodatkowych kosztów na system operacyjny.

Poza powyższą korzyścią Software Assurance umożliwia również:

  • Redukcję kosztu licencjonowania i usług poprzez dostęp do nowego oprogramowania i aktualizacji.
  • Dostęp do bezpłatnych konsultacji przy wdrożeniach.
  • Poprawienie efektywności licencjonowania poprzez dostęp do wielu benefitów (jak powyższy HUB).
  • Dostęp do dodatkowych szkoleń online oraz szkoleń prowadzonych przez instruktorów.
  • Wsparcie 24/365 związane z usługami.

Jak korzystać z Hybrid Use Benefit dla nowych i istniejących maszyn wirtualnych?

W przypadku wdrażania nowych maszyn wirtualnych z Windows Server możemy skorzystać z dedykowanych obrazów w Azure. Możemy je znaleźć poprzez wpisanie frazy “HUB Windows”. Maszyny wdrożone z tych obrazów mają automatycznie wyłączone naliczanie kosztów systemu operacyjnego po stronie Azure.

Podobny efekt możemy uzyskać poprzez użycie klasycznych obrazów dla maszyn wirtualnych i zaznaczenie opcji “Already have a Windows Server license?” podczas podawania właściwości maszyny.

Jeżeli posiadamy już maszyny wirtualne, które nie wykorzystują Hybrid Use Benefit nie mamy prostego sposobu na jego włączenie. Jedyną możliwością jest usunięcie maszyny wirtualnej i stworzenie jej od nowa z odpowiednimi ustawieniami. Jeżeli nie mamy wdrożonego configuration management może stanowić to pewien problem, ponieważ w większości przypadków nie chcemy “ręcznie” migrować konfiguracji na nową maszynę. W celu poradzenia sobie z problemem przygotowałem bardzo wstępną wersję skryptu migracyjnego. W pierwszym kroku wyłączamy i kasujemy maszynę wirtualną pozostawiając jej interfejsy sieciowe, dyski z systemem operacyjnym i z danymi. Następnie w powershell po zalogowaniu i wybrania naszych subskrypcji uruchamiamy następujący skrypt:

# !!! Zanim przejdziesz do poniższych kroków upewnij się, że usunąłeś poprzednią maszynę wirtualną z zachowaniem dysków.

$location = "<Lokalizacja_Serwera>"
$resourceGroupName = "<Nazwa_Grupy_Zasobów>"
$newVmName = "<Nazwa_Nowej_Maszyny_Wirtualnej>"
$nicName = "<Nazwa_interfejsu_Sieciowego_Starej_Maszyny>"
$oldOsDiskUri = "<Pełny_Storage_URL_Dysku_Starej_Maszyny>"

#Wyszukujemy istniejącą kartę sieciową
$nic = Get-AzureRmNetworkInterface -Name $nicName -ResourceGroupName $resourceGroupName

#Deklarujemy nową maszynę (tutaj rozmiar Standard_D2_v2)
$vm = New-AzureRmVMConfig -VMName $newVmName -VMSize "Standard_D2_v2"
#Wpinami interfejs seciowy do nowej maszyny
$vm = Add-AzureRmVMNetworkInterface -VM $vm -Id $nic.Id

#Przygotowujemy kopię dysku z systemem operacyjnym
$osDiskName = $vmName + "osDisk"
$vm = Set-AzureRmVMOSDisk -VM $vm -Name $osDiskName -VhdUri $oldOsDiskUri -CreateOption Attach -Windows

#Tworzymy maszynę wirtualną z HUB dzięki przełącznikowi -LicenseType
New-AzureRmVM -ResourceGroupName $resourceGroupName -Location $location -VM $vm -LicenseType "Windows_Server"

Powyższy skrypt jest czysto poglądowy i powinien być dokładnie przetestowany przed zastosowaniem go na produkcyjnych rozwiązaniach – nie zawiera na przykład dołączania dysków danych, włączania diagnostyki i rozszerzeń…

Po przeprowadzonej migracji zachowujemy zawartość naszych maszyn wirtualnych, również adresy IP czy reguły firewall (NSG) pozostają niezmienione. Pozostaje nam jedynie sprawdzenie, że maszyna działa w nowym modelu licencyjnym. Uruchamiamy Get-AzureRmVM -ResourceGroupName $resourceGroupName -Name $newVmName  i sprawdzamy czy pole LicenseType wynosi Windows_Server.

Podsumowanie

Powyżej przedstawiona migracja, mająca na celu wdrożenie własnych licencji do maszyn wirtualnych działających z Windows Server w Azure pozwala mocno obniżyć koszty jakie ponosimy w chmurze w modelu IaaS. Przykładowo dla wspomnianej wielkości maszyny wirtualnej (Standard D2 V2), według cennika na dzień dzisiejszy (22.04.2017) w Europe North koszty przedstawiają się następująco:

Koszt maszyny z HUB: ~€82.82/mo

Koszt maszyny z licencją Azure: ~€153.09/mo

Oszczędność, bez uwzględnienia Software Assurance (który pewie już posiadasz) wynosi prawie 46%!

Jeżeli masz jakieś uwagi, gorąco zachęcam do dodawania komentarzy pod wpisem!

1 thought on “Hybrid Use Benefit – Obniż koszt maszyn wirtualnych w Azure o nawet 40%

  1. Marek, pięknie dziękuję, działa. Jedyne co bym dodał w skrypcie to szybki komentarz… w tym miejscu skasuj swoją uprzednią maszynę bo skrypt nie zadziała. Poza tym great!

Dodaj komentarz

Twój adres email nie zostanie opublikowany. Pola, których wypełnienie jest wymagane, są oznaczone symbolem *