https://learn.microsoft.com/ja-jp/azure/virtual-machine-scale-sets/tutorial-create-and-manage-cli
https://learn.microsoft.com/ja-jp/azure/virtual-machine-scale-sets/tutorial-autoscale-cli
オーケストレーション モード
均一
フレキシブル
推奨はフレキシブルであるが今回は
均一オーケストレーションモードを使用
-- 1. 前作業
az login --use-device-code
az account show
az version
az configure --list-defaults
az configure --defaults location=japaneast
az configure --list-defaults
az group create \
--name rg01 \
--location japaneast
az group list
-- 2. スケール セットを作成する
az vmss create \
--resource-group rg01 \
--name ss01 \
--image UbuntuLTS \
--vm-sku Standard_B1ls \
--admin-user azureuser \
--generate-ssh-keys \
--instance-count 1 \
--storage-sku Standard_LRS
※下記リソースも作成される
仮想ネットワーク
ロードバランサー
パブリックIPアドレス
az vmss list \
--resource-group rg01
az vmss show \
--resource-group rg01 \
--name ss01
az vmss list-instances \
--resource-group rg01 \
--name ss01 \
--output table
az vmss get-instance-view \
--resource-group rg01 \
--name ss01 \
--instance-id 1
-- 3. 自動スケール プロファイルの定義
az monitor autoscale create \
--resource-group rg01 \
--resource ss01 \
--resource-type Microsoft.Compute/virtualMachineScaleSets \
--name as01 \
--min-count 1 \
--max-count 2 \
--count 1
az monitor autoscale list \
--resource-group rg01
az monitor autoscale show \
--resource-group rg01 \
--name as01
-- 4. 自動スケールアウト ルールの作成
az monitor autoscale rule create \
--resource-group rg01 \
--autoscale-name as01 \
--condition "Percentage CPU > 50 avg 5m" \
--scale out 1
az monitor autoscale rule list \
--resource-group rg01 \
--autoscale-name as01
-- 5. 自動スケールイン ルールの作成
az monitor autoscale rule create \
--resource-group rg01 \
--autoscale-name as01 \
--condition "Percentage CPU < 25 avg 5m" \
--scale in 1
az monitor autoscale rule list \
--resource-group rg01 \
--autoscale-name as01
-- 6. 接続する
az vmss list-instance-connection-info \
--resource-group rg01 \
--name ss01
ssh azureuser@192.0.2.1 -p 50001
-- 7. スケールアウトとスケールインの確認
yes > /dev/null &
-- 8. クリーンアップ
az group list
az group delete \
--name rg01 \
--yes
az group delete \
--name NetworkWatcherRG \
--yes