Azure

WindowsVirtualDesktopがGAされているので(その3)

その2からかなり時間が空いていますが今回はオートスケールについてとなります。

オートスケールを使用する意味

そもそもWVDを使用する要件のうちの一つに使用コストを下げたい、というものがあります。
ただしWVDはAzure上の仮想マシンとなりますのでマシン起動している限り費用が発生、
起動したままだと地味に物理構成より費用がかかる場合もあります。

なのでユーザ接続が少ない時間には仮想マシンの起動台数を抑え、
使用していない端末の起動を減らして費用を抑えるということを実現するため
オートスケールを使用します。
※WVDのオートスケールはWVD用の仮想マシン自体は作成しておく必要があります。
 そのため、WVD用仮想マシンのランニング費用は抑えられますが、ディスクの費用についてはWVD用仮想マシン作成台数に比例します。

オートスケールを利用する条件

オートスケールを使用する方式はスクリプト、またはAutomationアカウントを使用する方法の2種類が
あります。
ですがどちらの方式を取る場合に関しましても、

「WVDのホストプールとWVDの仮想マシンが同じテナントにある」

ことが条件となります。
サービスプリンシパルを使用して認証を行う関係上、テナントを跨ぐと権限がつけられないということが
原因となりますので構築時はお気をつけください。

それ以外の条件は以下となります。
●Automation使用時
 ・AzureADへアクセスできる権限があること(アカウント作成時のみ)
 ・動作させるアカウントにsubscription管理者の権限があること

●スクリプト使用時
 ・動作させるAzureADへアクセスできる権限があること
 ・動作させるアカウントにsubscription管理者の権限があること
 ・スクリプトを実行するためのマシン(物理 or AzureVM)があること

オートスケールの設定方法

こちらにつきましては記事が長くなりますので一旦割愛させていただきます。
スクリプトに関しましてはGitHubに、Automationに関しましては
マイクロソフトに記載がありますのでそちらを参考に設定することをお勧めします。

GitHub(スクリプト):
https://github.com/Azure/RDS-Templates
Microsoft(Automation):
https://docs.microsoft.com/ja-jp/azure/virtual-desktop/set-up-scaling-script

オートスケールの動作について

オートスケールの動作は基本的に。

・オフピーク時にはx台起動
・ユーザセッションが増えた場合は端末を追加で起動

この動作が基本となっています。
ただしこの情報だけでは

・何をトリガーにして追加起動するのか
・コアタイムとオフピークでの違いは何があるのか
・そもそもスクリプトとAutomationの違いはなにがあるのか

ここらへんがわからなかったので調べてみた結果、以下のようです。

Automationでの動作
 使用機能
   Automationアカウント
   Logic Apps
 セッション分散条件
   Set-RdsHostPoolで設定した値をそのまま踏襲
 ジョブの動作

  制限
1CPU当たりxセッション 1マシン当たりxセッション
オフピーク 拡張条件 拡張なし(*1) セッション空き-1
縮退条件 特になし(*1)(*2) 全ユーザセッション切断(*3)(*4)
コアタイム 拡張条件 セッション制限値(*5) 拡張なし
縮退条件 縮退なし 縮退なし

スクリプトでの動作
 使用機能
   AzurePowerShell(要実行用マシン)
 セッション分散条件
   Config.jsonに記載した動作
     ※オフピーク/コアタイムで分散方式(BreadthFirst/DepthFirst)の変更が可能
 ジョブの動作

  制限
1CPU当たりxセッション 1マシン当たりxセッション
オフピーク 拡張条件 拡張なし 拡張なし
縮退条件 特になし(*2) 特になし(*2)
コアタイム 拡張条件 セッション制限値(*5) 拡張なし
縮退条件 縮退なし 縮退なし

*1.マシン当たりの設定が優先される
*2.ジョブ実行で縮退
*3.2回めのジョブ実行時
*4.ジョブ実行時、変数に異常値が代入され、以後の処理停止
*5.CPU当たりの設定が優先される

出来ることと出来ないことのまとめ

結果Automationとスクリプトにて、それぞれでしか行えない処理としては以下となります。

Automationでの動作
 ・オフピーク時にセッション制限での拡張処理が可能
  ただし縮退処理時に変数に異常値が入り、その後の処理が動作しなくなる。
  ※スクリプト書き換えで対応できるかもしれませんが当方はそこまで調べていません。

スクリプトでの動作
 ・オフピーク/コアタイムでのマシン接続分散方式(BreadthFirst/DepthFirst)の変更が可能
 ・両方で同じ分散方式は取れない

 上記結果により、ユーザ数でのセッション制限を行う場合はスクリプト
 行わない場合はAutomationの方式がいいと考えます。

なおセッション制限を行う場合、オフピーク時には接続ユーザ数が固定、
コアタイム時にもCPU当たりのセッション数とユーザ数の制限値を同じにした場合は
追加接続ができるようになるまで時間がかかるため、その制限値については
要件やユーザの接続傾向などを確認しながら設定を行う必要があるでしょう。

費用面としてはFSLogix用のファイルサーバ or ADConnect用のサーバを
Azure上に立てる場合を除き、Automationのほうが安くなります。
(1ヶ月のアクション実行回数が約3000回のため)

Azure 資格試験の更新(2020年版の更新)前のページ

テレワーク導入応援キャンペーン次のページ

関連記事

  1. Azure

    strongSwanを使ってP2S接続をする記事~CentOS編~

    皆様こんにちは。朝一で白シャツにコーヒーをこぼした日のモチベーション…

  2. Azure

    Azure Key Vaultでみんなしあわせ

    私の知っているシステム開発これまでかかわってきたC/SやAS…

  3. Azure

    Azure VMの自動起動停止を行う

    こんにちは、三醍醐です。今回は、Azure VMの自動起動停…

  4. Azure

    WindowsVirtualDesktopがGAされているので(その1)

    GAされてもう2か月たってますが…WindowsVirt…

  5. Azure

    Azure 資格試験の更新(2020年版)

    2020年になり、早くも Azure 資格試験の更新がありま…

  6. ID管理とセキュリティ

    Azure AD Connectで オンプレADをAzureADへ同期

    ■初めに初めまして。JMTの北島と申します。今回はAzure AD …

関連記事

  1. Azure

    祝日判定を使った自動起動について:Azure Automation
  2. 未分類

    「Azure Functions」をC#で触ってみました。#5
  3. 最新情報

    テレワーク導入応援キャンペーン
  4. Azure

    Azure VPNについてあれこれ
  5. Azure

    ARMテンプレートでインフラ構築する。
PAGE TOP