次の方法で共有


Azure Virtual Desktop の監視コストを見積もる

Azure Virtual Desktop では、Azure Monitor ログ サービスを使用して、環境によって生成されたデータを収集、インデックス作成、格納します。 このため、Azure Monitor の価格モデルは、Log Analytics ワークスペースによって 1 日あたりギガバイト単位で取り込まれ、処理 (または "取り込まれた") データの量に基づいています。 Log Analytics ワークスペースのコストは、収集されたデータの量だけでなく、選択した Azure 支払いプランと、環境で生成されるデータを保存する期間にも基づいています。

この記事では、Azure Monitor の価格のしくみを理解するのに役立つ次の事項について説明します。

  • この機能を有効にする前に、データ インジェストとストレージ コストを事前に見積もる方法
  • この機能を使用する場合のコストを削減するために、インジェストとストレージを測定および制御する方法

注:

この記事に記載されているすべてのサイズと価格は、推定のしくみを示す単なる例です。 Azure Monitor Log Analytics の価格モデルと Azure リージョンに基づくより正確な評価については、「 Azure Monitor の価格」を参照してください。

データ インジェストとストレージ コストを見積もる

Log Analytics ワークスペースでログとして書き込まれた定義済みのデータ セットを使用することをお勧めします。 次の見積もりの例では、既定の構成で課金対象データを確認します

Azure Virtual Desktop Insights の定義済みデータセットには、次のものが含まれます。

  • セッション ホストからのパフォーマンス カウンター
  • セッション ホストからの Windows イベント ログ
  • サービス インフラストラクチャからの Azure Virtual Desktop 診断

データ インジェストとストレージのコストは、環境のサイズ、正常性、使用状況によって異なります。 この記事で使用する推定例は、予想されるデータ インジェストとストレージ コストの範囲を計算するために、 仮想マシンのサイズ設定ガイドラインに基づいて、電力使用量に対して光を実行する正常な仮想マシンに基づいて予想されるコスト範囲を計算するために使用します。

この例で使用する軽い使用量の VM には、次のコンポーネントが含まれています。

  • 4 つの vCPU、1 つのディスク
  • 1 日あたり 16 セッション
  • 平均セッション時間 2 時間 (120 分)
  • セッションあたり 100 プロセス

この例で使用する電力使用量 VM には、次のコンポーネントが含まれています。

  • 6 個の vCPU、1 台のディスク
  • 1 日あたり 6 セッション
  • 平均セッション時間 4 時間 (240 分)
  • セッションあたり 200 プロセス

パフォーマンス カウンター インジェストの見積もり

パフォーマンス カウンターは、システム リソースのパフォーマンスを示します。 パフォーマンス カウンター のデータ インジェストは、環境のサイズと使用状況によって異なります。 ほとんどの場合、パフォーマンス カウンターは、Azure Virtual Desktop Insights のデータ インジェストの 80 ~ 99% を占める必要があります。

見積もりを開始する前に、各パフォーマンス カウンターが特定の頻度でデータを送信することを理解しておくことが重要です。 既定の 1 分あたりのサンプル レートを設定します (設定でこのレートを編集することもできます)、そのレートはカウンターに応じて異なる乗算係数で適用されます。 レートには次の要因が影響します。

  • 仮想マシンごとの (VM) 係数の場合、各カウンターは、VM の実行中に、環境内の VM ごとに 1 分あたりの既定のサンプル レートでデータを送信します。 これらのカウンターが 1 日あたりに送信するレコード数を見積もるには、1 分あたりの既定のサンプル レートに環境内の VM の数を乗算し、その数に 1 日あたりの平均 VM の実行時間を乗算します。

    要約すると、次のとおりです。

    VM SKU 内の CPU コア数× 1 分あたりの既定のサンプル レート× VM の数× 1 日あたりの平均 VM の実行時間 = 1 日あたりの送信レコード数

  • CPU ごとの係数の場合、各カウンターは、VM の実行中に環境内の各 VM の vCPU あたり 1 分あたりの既定のサンプル レートで送信します。 カウンターが 1 日あたりに送信するレコード数を見積もるには、1 分あたりの既定のサンプル レートに VM SKU 内の CPU コアの数を乗算し、その数に VM が実行される分数と環境内の VM の数を乗算します。

    要約すると、次のとおりです。

    VM SKU 内の CPU コア数× 1 分あたりの既定のサンプル レート× VM の実行時間 (分数) × VM の数 = 1 日あたりの送信レコード数

  • ディスクごとの係数の場合、各カウンターは、環境内の各 VM 内の各ディスクの既定のサンプル レートでデータを送信します。 これらのカウンターが 1 日あたりに送信するレコードの数は、1 分あたりの既定のサンプル レートに VM SKU 内のディスクの数を乗算し、1 時間あたり 60 分を乗算し、最後に VM の平均アクティブ時間を乗算します。

    要約すると、次のとおりです。

    VM SKU のディスク数× 1 分あたりの既定のサンプル レート× 1 時間あたり 60 分× VM の数× 1 日あたりの平均 VM の実行時間 = 1 日あたりの送信レコード数

  • セッションごとの係数の場合、各カウンターは、セッションが接続されている間、環境内の各セッションの既定のサンプル レートでデータを送信します。 これらのカウンターが 1 日あたりに送信するレコードの数を見積もるには、1 分あたりの既定のサンプル レートに 1 日あたりのセッションの平均数と平均セッション期間を乗算します。

    要約すると、次のとおりです。

    1 日あたりのセッション数× 1 分あたりの既定のサンプル レート×平均セッション期間 = 1 日あたりの送信レコード数

  • プロセスごとの係数の場合、各カウンターは、環境内の各セッションの各プロセスの既定のレートでデータを送信します。 これらのカウンターが 1 日あたりに送信するレコード数を見積もるには、1 分あたりの既定のサンプル レートに 1 日あたりの平均セッション数を乗算し、それを平均セッション期間とセッションあたりの平均プロセス数で乗算します。

    要約すると、次のとおりです。

    1 日あたりのセッション数× 1 分あたりの既定のサンプル レート×平均セッション期間×セッションあたりの平均プロセス数 = 1 日あたりの送信レコード数

次の表に、Azure Virtual Desktop Insights が収集する 20 個のパフォーマンス カウンターとその既定のレートを示します。

カウンター名 既定のサンプル レート 周波数係数
論理ディスク (C:)\% の空き領域 60 秒 ディスクごと
論理ディスク (C:)\Avg. Disk Queue Length 30 秒 ディスクごと
論理ディスク(C:)\Avg. Disk sec/Transfer 60 秒 ディスクごと
論理ディスク (C:)\現在のディスク キューの長さ 30 秒 ディスクごと
Memory(*)\Available Mbytes 30 秒 VM ごと
Memory(*)\Page Faults/sec 30 秒 VM ごと
Memory(*)\Pages/sec 30 秒 VM ごと
使用中のメモリ(*)\% コミット済みバイト数 30 秒 VM ごと
PhysicalDisk(*)\Avg. Disk Queue Length 30 秒 ディスクごと
PhysicalDisk(*)\Avg. Disk sec/Read 30 秒 ディスクごと
PhysicalDisk(*)\Avg. Disk sec/Transfer 30 秒 ディスクごと
PhysicalDisk(*)\Avg. Disk sec/Write 30 秒 ディスクごと
プロセッサ情報(_Total)\% プロセッサ時間 30 秒 コア/CPU ごと
ターミナル サービス(*)\アクティブ セッション 60 秒 VM ごと
ターミナル サービス(*)\非アクティブセッション 60 秒 VM ごと
ターミナル サービス(*)\合計セッション数 60 秒 VM ごと
プロセスごとのユーザー入力遅延(*)\最大入力遅延 30 秒 プロセスごと
セッションごとのユーザー入力遅延(*)\最大入力遅延 30 秒 セッションごと
RemoteFX Network(*)\Current TCP RTT 30 秒 VM ごと
RemoteFX ネットワーク(*)\現在の UDP 帯域幅 30 秒 VM ごと

各レコード サイズを 200 バイトと見積もると、既定のサンプル レートで軽いワークロードを実行している VM の例では、VM あたり 1 日あたり約 90 MB のパフォーマンス カウンター データが送信されます。 一方、電源ワークロードを実行している VM の例では、VM あたり 1 日あたり約 130 MB のパフォーマンス カウンター データが送信されます。 ただし、レコードのサイズと環境の使用状況は異なる場合があるため、デプロイで使用される 1 日あたりのメガバイト数が異なる場合があります。

入力遅延パフォーマンス カウンターの詳細については、「 ユーザー入力遅延パフォーマンス カウンター」を参照してください。

Windows イベント ログインジェストの見積もり

Windows イベント ログは、Windows 仮想マシン上の Azure Monitor エージェントまたは Log Analytics エージェントによって収集されるデータ ソースです。 システムやアプリケーションなどの標準ログや、監視する必要があるアプリケーションによって作成されたカスタム ログからイベントを収集できます。

Azure Virtual Desktop Insights の既定の Windows イベントは次のとおりです。

  • アプリケーション
  • Microsoft-Windows-TerminalServices-RemoteConnectionManager/管理
  • Microsoft-Windows-TerminalServices-LocalSessionManager/Operational
  • System
  • Microsoft-FSLogix-Apps/Operational
  • Microsoft-FSLogix-Apps/管理

Windows イベントは、環境がイベントの条件を満たすたびにイベントを送信します。 正常な状態のマシンは、異常な状態のマシンよりも少ないイベントを送信します。 イベント数は予測不可能であるため、この見積もりでは正常な環境の例に基づいて、VM あたり 1 日あたり 1,000 から 10,000 イベントの範囲を使用します。 たとえば、この例の各イベント レコード サイズを 1,500 バイトと見積もると、指定した環境で 1 日あたり約 2 ~ 15 MB のイベント データが発生します。

Azure Monitor エージェントを使用して Windows イベント ログ データ収集を構成する方法の詳細については、「Azure Monitor エージェントを使用 して仮想マシンからイベントとパフォーマンス カウンターを収集する方法」を参照してください。

Windows イベントの詳細については、「 Windows イベント レコードのプロパティ」を参照してください。

インジェスト診断見積もり

診断 サービスは、ユーザーアクションと管理アクションの両方のアクティビティ ログを作成します。

診断カウンターが追跡するアクティビティ ログの名前は次のとおりです。

  • WVDCheckpoints
  • WVDConnections
  • WVDErrors
  • WVDFeeds
  • WVDManagement
  • WVDAgentHealthStatus

このサービスは、環境がレコードの作成に必要な条件を満たすたびに診断情報を送信します。 診断レコード数は予測不可能であるため、この見積もりでは正常な環境の例に基づいて、VM あたり 1 日あたり 500 から 1000 イベントの範囲を使用します。

たとえば、この例の各診断レコード サイズを 200 バイトと見積もると、取り込まれたデータの合計は 1 日あたり VM あたり 1 MB 未満になります。

アクティビティ ログ カテゴリの詳細については、「Azure Virtual Desktop 診断」を参照してください。

パフォーマンス カウンター データの測定と管理

実際の監視コストは、環境のサイズ、使用状況、正常性によって異なります。 Log Analytics ワークスペースでデータ インジェストを測定する方法については、「 Log Analytics ワークスペースでの使用状況の分析」を参照してください。

セッション ホストが使用するパフォーマンス カウンターは、Azure Virtual Desktop Insights の取り込まれたデータの最大のソースの 1 つです。 このクエリでは、Azure Virtual Desktop Insights の既定のカウンターだけでなく、環境内で有効にしたすべてのパフォーマンス カウンターが表示されます。 この情報は、コスト削減の対象となる領域を理解するのに役立ちます。

Log Analytics ワークスペースに対して次のカスタム クエリ テンプレートを実行して、過去 1 日のパフォーマンス カウンターごとに取り込まれた頻度とメガバイト数を追跡します。

注:

テンプレートのプレースホルダー値を環境で使用する値に置き換えてください。そうしないと、クエリは機能しません。

let WVDHosts = dynamic(['host1.contoso.com', 'host2.contoso.com']); 
Perf 
| where TimeGenerated > ago(1d) 
| where Computer in (WVDHosts) 
| extend PerfCounter = strcat(ObjectName, ":", CounterName) 
| summarize Records = count(TimeGenerated), InstanceNames = dcount(InstanceName), Bytes=sum(_BilledSize) by PerfCounter 
| extend Billed_MBytes = Bytes / (1024 * 1024), BytesPerRecord = Bytes / Records 
| sort by Records desc 

合計コストの見積もり

最後に、合計コストを見積もりましょう。 この例では、前のセクションの値の例に基づいて次の結果を考え出すとします。

データ ソース 1 日あたりのサイズ見積もり (メガバイト単位)
パフォーマンス カウンター 90-130
イベント 2-15
Azure Virtual Desktop 診断 < 1

この例では、Azure Virtual Desktop Insights の取り込まれたデータの合計は、1 日あたり VM あたり 92 から 145 MB です。 つまり、31 日ごとに、各 VM は約 3 から 5 ギガバイトのデータを取り込みます。

Log Analytics の価格に既定の従量課金制モデルを使用すると、Azure Monitor のデータ収集と 1 か月あたりのストレージ コストを見積もることができます。 データ インジェストによっては、Log Analytics の価格の容量予約モデルも検討できます。

データ インジェストを管理してコストを削減する

このセクションでは、コストを削減するためにデータ インジェストを測定および管理する方法について説明します。

ブックに対する権限とアクセス許可の管理については、「 アクセス制御」を参照してください。

注:

データ ポイントを削除すると、Azure Virtual Desktop Insights の対応するビジュアルに影響します。

Log Analytics の設定

データ インジェストを管理するために Log Analytics 設定を最適化するための推奨事項を次に示します。

  • Azure Virtual Desktop リソースの指定された Log Analytics ワークスペースを使用して、Log Analytics が Azure Virtual Desktop デプロイ内の仮想マシンのパフォーマンス カウンターとイベントのみを収集するようにします。
  • Log Analytics ストレージ設定を調整してコストを管理します。 保持期間を短縮したり、固定ストレージの価格レベルの方がコスト効率が高いかどうかを評価したり、取り込めるデータの量に関する境界を設定して異常なデプロイの影響を制限したりできます。 詳細については、「 Azure Monitor ログの価格の詳細」を参照してください。

余分なデータを削除する

既定の構成は、Azure Virtual Desktop Insights に推奨される唯一のデータ セットです。 常に、追加のデータ ポイントを追加し、[Host Diagnostics: Host browser]\(ホスト ブラウザー\) で表示するか、カスタム グラフを作成することもできますが、追加されたデータによって Log Analytics のコストが増加します。 これらは、コスト削減のために削除できます。

パフォーマンス カウンター データの測定と管理

実際の監視コストは、環境のサイズ、使用状況、正常性によって異なります。 Log Analytics ワークスペースでデータ インジェストを測定する方法については、「 Log Analytics ワークスペースでの使用状況の分析」を参照してください。

セッション ホストが使用するパフォーマンス カウンターは、おそらく、Azure Virtual Desktop Insights の取り込まれたデータの最大のソースになります。 Log Analytics ワークスペースの次のカスタム クエリ テンプレートは、過去 1 日のパフォーマンス カウンターごとに取り込まれた頻度とメガバイトを追跡できます。

let WVDHosts = dynamic(['host1.contoso.com', 'host2.contoso.com']);
Perf
| where TimeGenerated > ago(1d)
| where Computer in (WVDHosts)
| extend PerfCounter = strcat(ObjectName, ":", CounterName)
| summarize Records = count(TimeGenerated), InstanceNames = dcount(InstanceName), Bytes=sum(_BilledSize) by PerfCounter
| extend Billed_MBytes = Bytes / (1024 * 1024), BytesPerRecord = Bytes / Records
| sort by Records desc

注:

テンプレートのプレースホルダー値を環境で使用する値に置き換えてください。そうしないと、クエリは機能しません。

このクエリでは、Azure Virtual Desktop Insights の既定のカウンターだけでなく、環境で有効にしたすべてのパフォーマンス カウンターが表示されます。 この情報は、カウンターの頻度を減らしたり、完全に削除したりするなど、コストを削減するためにターゲットとする領域を理解するのに役立ちます。

パフォーマンス カウンターを削除することで、コストを削減することもできます。 パフォーマンス カウンターを削除する方法、または既存のカウンターを編集して頻度を減らす方法については、「 パフォーマンス カウンターの構成」を参照してください。

Windows イベント ログの管理

すべてのホストが正常な場合、Windows イベントによってデータ インジェストが急増する可能性は低いです。 異常なホストでは、ログに送信されるイベントの数が増える可能性がありますが、ホストの問題を解決するには情報が重要な場合があります。 保持することをお勧めします。 Windows イベント ログを管理する方法の詳細については、「Windows イベント ログの構成」を参照してください。

診断の管理

Azure Virtual Desktop 診断は、データ ストレージ コストの 1% 未満を占める必要があるため、削除することはお勧めしません。 Azure Virtual Desktop 診断を管理するには、診断機能に Log Analytics を使用します。

次の手順

Azure Virtual Desktop Insights の詳細については、次の記事を参照してください。