仮想マシン スケールセット を試す!!

この機能は仮想マシンをスケールアウトさせる Azureサービスであり、スケールアウトした仮想マシンは、自動的に可用性セットが適用されます。

ですが!!
ポータルからの設定項目が少なく、まだまだ発展途上のような気がします。

ちなみに、
スケールアップ:仮想マシンのリソース(CPU,Mem)をアップして処理性能を上げる。
スケールアウト:仮想マシンを複数展開して処理性能を上げる。
※現時点で利用したい方はPowerShellでの作成をオススメします。

ポータルからの設定が発展途上だと感じるところ
・マスターイメージからの展開ができない。
・一度、設定した仮想マシンのサイズ、負荷率、展開数の変更ができない。
・そもそも、確認すらできない。


やってみよー!

[+新規]ー[Virtual Machines]ー[Virtual Machine scale set]を選択

vmss010

Virtual machine scale set name:ホスト名
OS type:Windows,Linux
User name:ログオンする際のユーザー名
Password:ログオンする際のパスワード
Confirm password:上記同様
Limit to single placement group:スケールセット数。True=1~100/False=1~1000
※Falseを選択すると、[Disk Type]がManagedとなる。
サブスクリプション:Azureサービスの提供範囲
リソースグループ:グループ名 ※新規作成しかできません
場所:デプロイするAzureのリージョン

Public IP address:PIPの作成
Domain name label:ドメイン名を指定
Operating system disk image:[2012 R2][2012][2008 R2 SP1]
Instance count:初期展開時の仮想マシン数
Scale set virtual machine size:仮想マシンのサイズ
Disk Type:
ーManaged=VHDがAzure内で管理されるので、ストレージアカウントが不要
ーUnmanaged=従来通り、ストレージアカウントを利用
Autoscale:有効、無効
Autoscale minimum numer of VMs:最小台数。これ以下の台数にはならない。
Autoscale maxmum numer of VMs:最大台数。これ以上の台数にはならない。
Scale out CPU percentage threshold:この値を上回った場合、仮想マシンが増加します。
Number of VMs to increase by on scale out:指定した台数で増える
Scale in CPU percentage threshold:この値を下回った場合、仮想マシン数が減少します。
Number of VMs to decrease by on scale in:指定した台数で減る


10分ほどで、下記のような構成が完了します。
外部ロードバランサーが作成されています。スケールアウトする仮想マシンは全てLB配下に自動展開されます。
また、LBの設定はカラなので、[プローブ][負荷分散規則]の設定が必要です。
※RDPするには、同一VNeTに仮想マシンを作成する方法が手っ取り早いです。

Unmanagedの場合、オートスケールに備え予めストレージアカウントが作成されています。

vmss015

Managedの場合、ストレージアカウントが存在しません。


CPUに負荷をかけてスケールアウトを試してみました!
自動で仮想マシンが展開されている事が確認できます。
※仮想マシン内にデータの保存はできますが、スケールインされるため、大切なデータは保存しない方が良いです。また、仮想マシン間でデータを共有する事もありません。

vmss017

展開された仮想マシンは、LBのバックエンドプールに自動登録されています。

vmss016

各仮想マシンの起動・停止が可能

vmss019

以上


これで、終わりにしようかと思ったのですが、「発展途上」の状態では、ご紹介した意味がないので解決していきます!

ポータルから、設定を確認するには「JSON」が良さそうです。

vmss022

※「JSON」を参考にして頂ければ、 PowerShell での変更箇所がわかると思います。

仮想マシン情報の取得
$VmssConfig = Get-AzureRmVmss -ResourceGroupName tushigamivmssgroup -VMScaleSetName tushigami

仮想マシンのサイズ変更
$VmssConfig.Sku.Name = “Standard_D1_v2”

マスターイメージから仮想マシンを作成
$VmssConfig.virtualMachineProfile.storageProfile.osDisk.image.uri = https://xxx.vhd

設定を反映 ※上記実行後、必ず実施してください。
Update-AzureRmVmss -ResourceGroupName tushigamivmssgroup -Name tushigami -VirtualMachineScaleSet $VmssConfig

スケールセット情報の取得
$auto = Get-AzureRmAutoscaleSetting -ResourceGroup tushigamivmssgroup

オートスケール機能の停止
$auto.Properties.Enabled = $false

オートスケール最大台数の変更
$auto.Properties.Profiles[0].Capacity.Maximum = 15

CPU負荷の上限値の変更
$auto.Properties.Profiles.Rules.MetricTrigger.Threshold = “90”

設定を反映 ※上記実行後、必ず実施してください。
Add-AzureRmAutoscaleSetting -ResourceGroup tushigamivmssgroup -SettingSpec $auto