az cli i oszczędzanie na dyskach w testach

Chmura jest cudownym wynalazkiem, szczególnie do testów. W moim przypadku bardzo często potrzebuję trzymać maszynę w subskrypcji, która wymaga wydajnych dysków, a jest uruchomiana parę godzin na dzień. Takim scenariuszem u mnie jest odpalanie Azure Stack na maszynie w Azure (tak, tak, incepcja…).

Pisane i publikowane na szybko. Za gramatykę i język nie odpowiadam, do czasu korekty ;-)

Potrzbna mi maszyna kosztuje 1,47€ za 1 godzinę pracy, czyli w miesiącu jakieś 70,59€, ale za to 5 dysków P15 to już koszt 160,28€. Oj więcej niż maszyna… co zrobić?

Co, jeśli można ściąć cenę za dyski o około 60-65%?

Rozwiązanie jest bardzo proste. Kiedy wirtualka nie jest potrzebna wystarczy zmienić dyski na Standard SSD. Tylko warto to zautomatyzować, żeby nie klikać jak szympans po portalu.

Opisany sposób działa z Azure CLI w bashu, czyli możesz tego użyć na Linux, macOS, Azure Cloud Shell, a jeśli masz Windows to użyj WSL :-)

Pierwszy krok wyłączamy maszynę. Ważne! Żeby nie płacić za maszynę trzeba zmienić jej status na deallocate. W portalu jest to domyślna akcja przycisku Stop. W przypadku CLI mamy komendy stop i deallocate!

az vm deallocate -g azurestack -n AzS-HOST1

Kolejnym krokiem jest zmiana dysków (do tego vm musi być wyłączona). Tutaj korzystamy z mocy query w Azure CLI oraz xargs, żeby nie bawić się w wielolinijkowe skrypty.

az disk list -g azurestack --query '[].[resourceGroup,name]' -o tsv | xargs -n 2 bash -c 'az disk update -g $0 -n $1 --sku Standard_LRS'

Jeśli mamy zamiar wrócić do pracy z maszyną to pierw zmieniamy dyski…

az disk list -g azurestack --query '[].[resourceGroup,name]' -o tsv | xargs -n 2 bash -c 'az disk update -g $0 -n $1 --sku Premium_LRS'

..i następnie ją uruchamiamy.

az vm start -g azurestack -n AzS-HOST1

Miłego oszczędzania!



Jeśli interesuję Cię Kubernetes to zapisz się do nas!