アプリケーション ゲートウェイ(v1 SKU) + 仮想マシン スケール セット
https://learn.microsoft.com/ja-jp/azure/virtual-machine-scale-sets/tutorial-use-custom-image-cli
https://learn.microsoft.com/ja-jp/azure/application-gateway/scripts/create-vmss-cli
https://learn.microsoft.com/ja-jp/cli/azure/vmss?view=azure-cli-latest#az-vmss-create
-- 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 vm create \
--resource-group rg01 \
--name vm01 \
--image UbuntuLTS \
--size Standard_B1ls \
--storage-sku Standard_LRS \
--admin-username azureuser \
--generate-ssh-keys
ssh azureuser@192.0.2.1
sudo su -
apt update
apt install apache2 -y
apache2 -v
systemctl enable apache2
systemctl restart apache2
systemctl status apache2
apt install elinks -y
elinks http://localhost/
exit
exit
-- 3. イメージ ギャラリーを作成する
az sig create \
--resource-group rg01 \
--gallery-name gal01
az sig list \
--resource-group rg01
-- 4. イメージ定義を作成する
az sig image-definition create \
--resource-group rg01 \
--gallery-name gal01 \
--gallery-image-definition image01 \
--publisher publisher01 \
--offer offer01 \
--sku sku01 \
--os-type Linux \
--os-state specialized
az sig image-definition list \
--gallery-name gal01 \
--resource-group rg01
-- 5. イメージ バージョンの作成
az sig image-version create \
--resource-group rg01 \
--gallery-name gal01 \
--gallery-image-definition image01 \
--gallery-image-version 1.0.0 \
--target-regions "japaneast=1" \
--replica-count 1 \
--managed-image "/subscriptions/11111111-1111-1111-1111-111111111111/resourceGroups/rg01/providers/Microsoft.Compute/virtualMachines/vm01"
az sig image-version list \
--resource-group rg01 \
--gallery-name gal01 \
--gallery-image-definition image01
-- 6. ネットワーク リソースを作成する
az network vnet create \
--name vnet01 \
--resource-group rg01 \
--location japaneast \
--address-prefix 10.0.0.0/16 \
--subnet-name subnet01 \
--subnet-prefix 10.0.1.0/24
az network vnet list
az network vnet subnet create \
--name subnet02 \
--resource-group rg01 \
--vnet-name vnet01 \
--address-prefix 10.0.2.0/24
az network vnet subnet list \
--resource-group rg01 \
--vnet-name vnet01
az network public-ip create \
--resource-group rg01 \
--name pip01 \
--allocation-method Dynamic \
--sku Basic
az network public-ip list
-- 7. アプリケーション ゲートウェイの作成
az network application-gateway create \
--name ag01 \
--location japaneast \
--resource-group rg01 \
--vnet-name vnet01 \
--subnet subnet01 \
--capacity 1 \
--sku Standard_Small \
--http-settings-cookie-based-affinity Disabled \
--frontend-port 80 \
--http-settings-port 80 \
--http-settings-protocol Http \
--public-ip-address pip01
az network application-gateway list \
--resource-group rg01
az network application-gateway http-listener list \
--gateway-name ag01 \
--resource-group rg01
az network application-gateway rule list \
--gateway-name ag01 \
--resource-group rg01
az network application-gateway http-settings list \
--gateway-name ag01 \
--resource-group rg01
az network application-gateway address-pool list \
--gateway-name ag01 \
--resource-group rg01
az network application-gateway frontend-ip list \
--gateway-name ag01 \
--resource-group rg01
az network application-gateway frontend-port list \
--gateway-name ag01 \
--resource-group rg01
-- 8. カスタムイメージからスケール セットを作成する
az vmss create \
--name ss01 \
--resource-group rg01 \
--vm-sku Standard_B1ls \
--image "/subscriptions/11111111-1111-1111-1111-111111111111/resourceGroups/rg01/providers/Microsoft.Compute/galleries/gal01/images/image01" \
--specialized \
--admin-username azureuser \
--admin-password 'passwordpassword' \
--instance-count 1 \
--storage-sku Standard_LRS \
--vnet-name vnet01 \
--subnet subnet02 \
--upgrade-policy-mode Automatic \
--app-gateway ag01 \
--backend-pool-name appGatewayBackendPool
※バックエンドプール名はappGatewayBackendPoolでないとエラー
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 0
-- 9. 自動スケール プロファイルの定義
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
-- 10. 自動スケールアウト ルールの作成
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
-- 11. 自動スケールイン ルールの作成
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
-- 12. IPアドレス確認
az network public-ip show \
--resource-group rg01 \
--name pip01 \
--query [ipAddress] \
--output tsv
-- 13. クリーンアップ
az group list
az group delete \
--name rg01 \
--yes