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!