Azure Automation を使用して Windows VM を垂直方向にスケーリングするVertically scale Windows VMs with Azure Automation

垂直方向のスケーリングは、ワークロードに応じてコンピューターのリソースを増減するプロセスです。Vertical scaling is the process of increasing or decreasing the resources of a machine in response to the workload. Azure では、仮想マシンのサイズを変更することで実行できます。In Azure this can be accomplished by changing the size of the Virtual Machine. これは、次のようなシナリオで役立ちます。This can help in the following scenarios

  • 仮想マシンが頻繁に使用されていない場合、より小さなサイズに変更して、毎月のコストを削減することができますIf the Virtual Machine is not being used frequently, you can resize it down to a smaller size to reduce your monthly costs
  • 仮想マシンでピーク時の負荷が表れている場合、より大きなサイズに変更して、容量を増やすことができますIf the Virtual Machine is seeing a peak load, it can be resized to a larger size to increase its capacity

これを実現するための手順の概要を、以下に示しますThe outline for the steps to accomplish this is as below

  1. Azure Automation をセットアップして、Virtual Machines にアクセスするSetup Azure Automation to access your Virtual Machines
  2. サブスクリプションに Azure Automation の垂直スケールの Runbook をインポートするImport the Azure Automation Vertical Scale runbooks into your subscription
  3. Webhook を Runbook に追加するAdd a webhook to your runbook
  4. 仮想マシンにアラートを追加するAdd an alert to your Virtual Machine

スケールの制限Scale limitations

最初の仮想マシンのサイズによっては、スケーリングできるサイズが制限される場合があります。これは、その仮想マシンがデプロイされているクラスターの空き容量によるものです。Because of the size of the first Virtual Machine, the sizes it can be scaled to, may be limited due to the availability of the other sizes in the cluster current Virtual Machine is deployed in. この記事で使用される公開済みの Automation Runbook では、このケースのみを扱い、VM のサイズ ペアを超えない範囲でのみスケーリングします。In the published automation runbooks used in this article we take care of this case and only scale within the below VM size pairs. つまり、Standard_D1v2 仮想マシンが急に Standard_G5 にスケールアップしたり、Basic_A0 にスケールダウンしたりすることはありません。This means that a Standard_D1v2 Virtual Machine will not suddenly be scaled up to Standard_G5 or scaled down to Basic_A0. また、制約付きの仮想マシンのサイズのスケールアップ/スケールダウンはサポートされていません。Also constrained Virtual Machine sizes scale up/down is not supported.

次のようなサイズのペアの間でスケールの設定を選択できます。You can choose to scale between the following pairs of sizes:

A シリーズA-Series

初期サイズInitial size サイズのスケールアップScale up size
Basic_A0Basic_A0 Basic_A1Basic_A1
Basic_A1Basic_A1 Basic_A2Basic_A2
Basic_A2Basic_A2 Basic_A3Basic_A3
Basic_A3Basic_A3 Basic_A4Basic_A4
Standard_A0Standard_A0 Standard_A1Standard_A1
Standard_A1Standard_A1 Standard_A2Standard_A2
Standard_A2Standard_A2 Standard_A3Standard_A3
Standard_A3Standard_A3 Standard_A4Standard_A4
Standard_A5Standard_A5 Standard_A6Standard_A6
Standard_A6Standard_A6 Standard_A7Standard_A7
Standard_A8Standard_A8 Standard_A9Standard_A9
Standard_A10Standard_A10 Standard_A11Standard_A11
Standard_A1_v2Standard_A1_v2 Standard_A2_v2Standard_A2_v2
Standard_A2_v2Standard_A2_v2 Standard_A4_v2Standard_A4_v2
Standard_A4_v2Standard_A4_v2 Standard_A8_v2Standard_A8_v2
Standard_A2m_v2Standard_A2m_v2 Standard_A4m_v2Standard_A4m_v2
Standard_A4m_v2Standard_A4m_v2 Standard_A8m_v2Standard_A8m_v2

B シリーズB-Series

初期サイズInitial size サイズのスケールアップScale up size
Standard_B1sStandard_B1s Standard_B2sStandard_B2s
Standard_B1msStandard_B1ms Standard_B2msStandard_B2ms
Standard_B2msStandard_B2ms Standard_B4msStandard_B4ms
Standard_B4msStandard_B4ms Standard_B8msStandard_B8ms

D シリーズD-Series

初期サイズInitial size サイズのスケールアップScale up size
Standard_D1Standard_D1 Standard_D2Standard_D2
Standard_D2Standard_D2 Standard_D3Standard_D3
Standard_D3Standard_D3 Standard_D4Standard_D4
Standard_D11Standard_D11 Standard_D12Standard_D12
Standard_D12Standard_D12 Standard_D13Standard_D13
Standard_D13Standard_D13 Standard_D14Standard_D14
Standard_DS1Standard_DS1 Standard_DS2Standard_DS2
Standard_DS2Standard_DS2 Standard_DS3Standard_DS3
Standard_DS3Standard_DS3 Standard_DS4Standard_DS4
Standard_DS11Standard_DS11 Standard_DS12Standard_DS12
Standard_DS12Standard_DS12 Standard_DS13Standard_DS13
Standard_DS13Standard_DS13 Standard_DS14Standard_DS14
Standard_D1_v2Standard_D1_v2 Standard_D2_v2Standard_D2_v2
Standard_D2_v2Standard_D2_v2 Standard_D3_v2Standard_D3_v2
Standard_D3_v2Standard_D3_v2 Standard_D4_v2Standard_D4_v2
Standard_D4_v2Standard_D4_v2 Standard_D5_v2Standard_D5_v2
Standard_D11_v2Standard_D11_v2 Standard_D12_v2Standard_D12_v2
Standard_D12_v2Standard_D12_v2 Standard_D13_v2Standard_D13_v2
Standard_D13_v2Standard_D13_v2 Standard_D14_v2Standard_D14_v2
Standard_DS1_v2Standard_DS1_v2 Standard_DS2_v2Standard_DS2_v2
Standard_DS2_v2Standard_DS2_v2 Standard_DS3_v2Standard_DS3_v2
Standard_DS3_v2Standard_DS3_v2 Standard_DS4_v2Standard_DS4_v2
Standard_DS4_v2Standard_DS4_v2 Standard_DS5_v2Standard_DS5_v2
Standard_DS11_v2Standard_DS11_v2 Standard_DS12_v2Standard_DS12_v2
Standard_DS12_v2Standard_DS12_v2 Standard_DS13_v2Standard_DS13_v2
Standard_DS13_v2Standard_DS13_v2 Standard_DS14_v2Standard_DS14_v2
Standard_D2_v3Standard_D2_v3 Standard_D4_v3Standard_D4_v3
Standard_D4_v3Standard_D4_v3 Standard_D8_v3Standard_D8_v3
Standard_D8_v3Standard_D8_v3 Standard_D16_v3Standard_D16_v3
Standard_D16_v3Standard_D16_v3 Standard_D32_v3Standard_D32_v3
Standard_D32_v3Standard_D32_v3 Standard_D64_v3Standard_D64_v3
Standard_D2s_v3Standard_D2s_v3 Standard_D4s_v3Standard_D4s_v3
Standard_D4s_v3Standard_D4s_v3 Standard_D8s_v3Standard_D8s_v3
Standard_D8s_v3Standard_D8s_v3 Standard_D16s_v3Standard_D16s_v3
Standard_D16s_v3Standard_D16s_v3 Standard_D32s_v3Standard_D32s_v3
Standard_D32s_v3Standard_D32s_v3 Standard_D64s_v3Standard_D64s_v3
Standard_DC2sStandard_DC2s Standard_DC4sStandard_DC4s

E シリーズE-Series

初期サイズInitial size サイズのスケールアップScale up size
Standard_E2_v3Standard_E2_v3 Standard_E4_v3Standard_E4_v3
Standard_E4_v3Standard_E4_v3 Standard_E8_v3Standard_E8_v3
Standard_E8_v3Standard_E8_v3 Standard_E16_v3Standard_E16_v3
Standard_E16_v3Standard_E16_v3 Standard_E20_v3Standard_E20_v3
Standard_E20_v3Standard_E20_v3 Standard_E32_v3Standard_E32_v3
Standard_E32_v3Standard_E32_v3 Standard_E64_v3Standard_E64_v3
Standard_E2s_v3Standard_E2s_v3 Standard_E4s_v3Standard_E4s_v3
Standard_E4s_v3Standard_E4s_v3 Standard_E8s_v3Standard_E8s_v3
Standard_E8s_v3Standard_E8s_v3 Standard_E16s_v3Standard_E16s_v3
Standard_E16s_v3Standard_E16s_v3 Standard_E20s_v3Standard_E20s_v3
Standard_E20s_v3Standard_E20s_v3 Standard_E32s_v3Standard_E32s_v3
Standard_E32s_v3Standard_E32s_v3 Standard_E64s_v3Standard_E64s_v3

F シリーズF-Series

初期サイズInitial size サイズのスケールアップScale up size
Standard_F1Standard_F1 Standard_F2Standard_F2
Standard_F2Standard_F2 Standard_F4Standard_F4
Standard_F4Standard_F4 Standard_F8Standard_F8
Standard_F8Standard_F8 Standard_F16Standard_F16
Standard_F1sStandard_F1s Standard_F2sStandard_F2s
Standard_F2sStandard_F2s Standard_F4sStandard_F4s
Standard_F4sStandard_F4s Standard_F8sStandard_F8s
Standard_F8sStandard_F8s Standard_F16sStandard_F16s
Standard_F2s_v2Standard_F2s_v2 Standard_F4s_v2Standard_F4s_v2
Standard_F4s_v2Standard_F4s_v2 Standard_F8s_v2Standard_F8s_v2
Standard_F8s_v2Standard_F8s_v2 Standard_F16s_v2Standard_F16s_v2
Standard_F16s_v2Standard_F16s_v2 Standard_F32s_v2Standard_F32s_v2
Standard_F32s_v2Standard_F32s_v2 Standard_F64s_v2Standard_F64s_v2
Standard_F64s_v2Standard_F64s_v2 Standard_F7s_v2Standard_F7s_v2

G シリーズG-Series

初期サイズInitial size サイズのスケールアップScale up size
Standard_G1Standard_G1 Standard_G2Standard_G2
Standard_G2Standard_G2 Standard_G3Standard_G3
Standard_G3Standard_G3 Standard_G4Standard_G4
Standard_G4Standard_G4 Standard_G5Standard_G5
Standard_GS1Standard_GS1 Standard_GS2Standard_GS2
Standard_GS2Standard_GS2 Standard_GS3Standard_GS3
Standard_GS3Standard_GS3 Standard_GS4Standard_GS4
Standard_GS4Standard_GS4 Standard_GS5Standard_GS5

H シリーズH-Series

初期サイズInitial size サイズのスケールアップScale up size
Standard_H8Standard_H8 Standard_H16Standard_H16
Standard_H8mStandard_H8m Standard_H16mStandard_H16m

L シリーズL-Series

初期サイズInitial size サイズのスケールアップScale up size
Standard_L4sStandard_L4s Standard_L8sStandard_L8s
Standard_L8sStandard_L8s Standard_L16sStandard_L16s
Standard_L16sStandard_L16s Standard_L32sStandard_L32s
Standard_L8s_v2Standard_L8s_v2 Standard_L16s_v2Standard_L16s_v2
Standard_L16s_v2Standard_L16s_v2 Standard_L32s_v2Standard_L32s_v2
Standard_L32s_v2Standard_L32s_v2 Standard_L64s_v2Standard_L64s_v2
Standard_L64s_v2Standard_L64s_v2 Standard_L80s_v2Standard_L80s_v2

M シリーズM-Series

初期サイズInitial size サイズのスケールアップScale up size
Standard_M8msStandard_M8ms Standard_M16msStandard_M16ms
Standard_M16msStandard_M16ms Standard_M32msStandard_M32ms
Standard_M32msStandard_M32ms Standard_M64msStandard_M64ms
Standard_M64msStandard_M64ms Standard_M128msStandard_M128ms
Standard_M32lsStandard_M32ls Standard_M64lsStandard_M64ls
Standard_M64sStandard_M64s Standard_M128sStandard_M128s
Standard_M64Standard_M64 Standard_M128Standard_M128
Standard_M64mStandard_M64m Standard_M128mStandard_M128m

N シリーズN-Series

初期サイズInitial size サイズのスケールアップScale up size
Standard_NC6Standard_NC6 Standard_NC12Standard_NC12
Standard_NC12Standard_NC12 Standard_NC24Standard_NC24
Standard_NC6s_v2Standard_NC6s_v2 Standard_NC12s_v2Standard_NC12s_v2
Standard_NC12s_v2Standard_NC12s_v2 Standard_NC24s_v2Standard_NC24s_v2
Standard_NC6s_v3Standard_NC6s_v3 Standard_NC12s_v3Standard_NC12s_v3
Standard_NC12s_v3Standard_NC12s_v3 Standard_NC24s_v3Standard_NC24s_v3
Standard_ND6Standard_ND6 Standard_ND12Standard_ND12
Standard_ND12Standard_ND12 Standard_ND24Standard_ND24
Standard_NV6Standard_NV6 Standard_NV12Standard_NV12
Standard_NV12Standard_NV12 Standard_NV24Standard_NV24
Standard_NV6s_v2Standard_NV6s_v2 Standard_NV12s_v2Standard_NV12s_v2
Standard_NV12s_v2Standard_NV12s_v2 Standard_NV24s_v2Standard_NV24s_v2

Azure Automation をセットアップして、Virtual Machines にアクセスするSetup Azure Automation to access your Virtual Machines

最初に、仮想マシンをスケーリングするために使用する runbook をホストする、Azure Automation アカウントを作成する必要があります。The first thing you need to do is create an Azure Automation account that will host the runbooks used to scale a Virtual Machine. 最近、Automation サービスでは、ユーザーの代わりに非常に簡単に Runbook を自動的に実行するためのサービス プリンシパルをセットアップする "アカウントとして実行" 機能が導入されました。Recently the Automation service introduced the "Run As account" feature which makes setting up the Service Principal for automatically running the runbooks on the user's behalf very easy. 詳しくは、次の記事を参照してください。You can read more about this in the article below:

サブスクリプションに Azure Automation の垂直スケールの Runbook をインポートするImport the Azure Automation Vertical Scale runbooks into your subscription

仮想マシンの垂直方向へのスケーリングに必要な Runbook は、Azure Automation Runbook ギャラリーに既に公開されています。The runbooks that are needed for Vertically Scaling your Virtual Machine are already published in the Azure Automation Runbook Gallery. これを、サブスクリプションにインポートする必要があります。You will need to import them into your subscription. Runbook をインポートする方法は、次の記事を参照してください。You can learn how to import runbooks by reading the following article.

インポートする必要がある Runbook を次の図に示しますThe runbooks that need to be imported are shown in the image below

Runbook のインポート

Webhook を Runbook に追加するAdd a webhook to your runbook

Runbook をインポートしたら、仮想マシンからのアラートによって Webhook がトリガーされるように、Runbook に追加する必要があります。Once you've imported the runbooks you'll need to add a webhook to the runbook so it can be triggered by an alert from a Virtual Machine. Runbook で Webhook を作成する方法の詳細は、次の記事を参照してください。The details of creating a webhook for your Runbook can be read here

Webhook のダイアログを閉じる前に、Webhook をコピーしてください。これは次のセクションで必要になります。Make sure you copy the webhook before closing the webhook dialog as you will need this in the next section.

仮想マシンにアラートを追加するAdd an alert to your Virtual Machine

  1. 仮想マシンの設定を選択するSelect Virtual Machine settings
  2. "アラート ルール" を作成するSelect "Alert rules"
  3. "アラートの追加" を選択するSelect "Add alert"
  4. アラートを発生させるメトリックを選択するSelect a metric to fire the alert on
  5. アラートを発生させるための条件を選択するSelect a condition, which when fulfilled will cause the alert to fire
  6. 手順 5 の条件で満たす必要があるSelect a threshold for the condition in Step 5. しきい値を選択するto be fulfilled
  7. 手順 5 と 6 で選択した条件としきい値を監視サービスが確認する期間を選択するSelect a period over which the monitoring service will check for the condition and threshold in Steps 5 & 6
  8. 前のセクションからコピーした Webhook を貼り付けるPaste in the webhook you copied from the previous section.

アラートを仮想マシン 1 に追加

アラートを仮想マシン 2 に追加