0Pricing
Cloud & IT Cert Prep · レッスン

Virtual Machine Scale Sets

需要に応じて同一のVMを自動的にスケールインまたはスケールアウトし、高可用性アプリケーション向けにヘルスプローブと負荷分散ルールを設定します。

「Virtual Machine Scale Sets」はCoddyKit上の無料Cloud & IT Cert Prepレッスンです。 これはレッスン2/4です。 下記で完全なレッスンを無料で読むことができます。その後、ブラウザ内の組み込みコードエディタと24時間対応のAIチューターでハンズオン演習できます。 これはCloud & IT Cert Prep学習パスの一部であり、ウェブとCoddyKitアプリ全体で進捗が同期されます。 Cloud & IT Cert Prepコースには全4レッスンが含まれています。

スケール セットが解決する課題

同一構成の VM 群を手動で管理し、需要のピーク時にサーバーを追加し、需要が下がったときに削除する作業は、手間がかかり、エラーが発生しやすく、時間も要します。Virtual Machine Scale Sets(VMSS) は、負荷分散された同一構成の VM 群を単一のリソースとして管理することで、このプロセスを自動化します。需要が増えると、VMSS は新しい VM インスタンスを自動的に追加します。需要が減ると、インスタンスを削除します。これにより手動操作が不要になり、その時点で必要な容量に対してのみ料金を支払えるようになります。

スケール セットの作成

スケール セットは、セット内のすべてのインスタンスで共有する VM プロファイル(イメージ、サイズ、ディスク構成、拡張機能)によって定義されます。スケール セットを作成するときは、インスタンス数の最小値と最大値、および初期容量を指定します。すべてのインスタンスは同じイメージから作成されるため、VM 群全体で一貫性が保たれます。スケール セットは複数の Availability Zones にデプロイでき、高可用性を実現するために、Azure がインスタンスをゾーン間で自動的に均等配置します。

# Create a VM Scale Set across Zones 1, 2, and 3
az vmss create \
  --resource-group myRG \
  --name myScaleSet \
  --image Ubuntu2204 \
  --instance-count 2 \
  --zones 1 2 3 \
  --admin-username azureuser \
  --generate-ssh-keys

自動スケール ルール

VMSS の自動スケール ルールは、メトリックに基づいてインスタンスを追加または削除するタイミングを定義します。一般的なルールは次のようになります。「平均 CPU 使用率が 5 分間 70% を超えたら、インスタンスを 2 台追加する。平均 CPU 使用率が 10 分間 30% を下回ったら、インスタンスを 1 台削除する。」Azure Monitor のカスタム メトリック(キューの深さや HTTP リクエスト レートなど)や、スケジュール(平日の朝は 20 インスタンスに増やし、夜間は 5 インスタンスに戻すなど)に基づくルールも作成できます。メトリックベースのルールとスケジュールベースのルールを組み合わせることで、容量をきめ細かく制御できます。

# Add autoscale rule: scale out when CPU > 70%
az monitor autoscale rule create \
  --resource-group myRG \
  --autoscale-name myScaleSetAutoscale \
  --condition 'Percentage CPU > 70 avg 5m' \
  --scale out 2

スケール セットによる負荷分散

スケール セットは、正常なすべてのインスタンスに受信リクエストを分散するため、ほとんどの場合ロード バランサーと組み合わせて使用します。Azure には 2 つの選択肢があります。Azure Load Balancer はレイヤー 4(TCP/UDP)で、低レイテンシかつ高スループットが求められるシナリオに適しています。Azure Application Gateway はレイヤー 7(HTTP/HTTPS)で、URL ベースのルーティング、SSL 終端、WAF 保護が必要な Web アプリケーションに適しています。ロード バランサーは正常性プローブを使用して異常なインスタンスを検出し、復旧するまでそのインスタンスへのトラフィックのルーティングを自動的に停止します。

正常性プローブとインスタンス修復

VMSS ではインスタンスの自動修復を構成できます。正常性プローブによってインスタンスが異常と判定された場合(アプリケーションがポート 80 で応答しない場合など)、スケール セットはそのインスタンスを自動的に削除して置き換え、新しく正常なインスタンスを作成できます。これは automaticRepairsPolicy 設定で構成します。猶予期間(起動後 10 分など)を設けることで、アプリケーションの起動と最初の正常性チェックが完了する前にインスタンスが置き換えられるのを防げます。

Uniform と Flexible のオーケストレーション

Azure VMSS は 2 つのオーケストレーション モードをサポートしています。Uniform モードでは、すべてのインスタンスが同一で、グループとして管理されます。Web サーバーやワーカー キューなどのステートレス ワークロードに適しています。Flexible モードでは、インスタンスごとにサイズや構成を変えられ、個々の VM を独立して管理しながら、スケール セットによるゾーン分散と正常性モデルの利点も利用できます。異種のワークロードや、他のインスタンスに影響を与えずに特定のインスタンスを置き換える必要がある場合は、Flexible オーケストレーションが適しています。

ゼロ ダウンタイムのローリング アップグレード

スケール セットの VM イメージまたは構成を更新すると、その変更をすべてのインスタンスに反映する必要があります。VMSS はローリング アップグレードをサポートしており、すべてのインスタンスを一度に更新するのではなく、小さなバッチ(例:一度に 20%)に分けて更新します。これにより、更新中も大部分のインスタンスを稼働させ続けることができます。ローリング アップグレード ポリシーでは、バッチ サイズの上限とバッチ間の待機時間を構成できるため、更新速度を細かく制御し、ユーザーへの影響を最小限に抑えられます。

スケール セットでの Spot Instances

VMSS では、未使用の Azure 容量上で実行するSpot Instances(Azure Spot VM とも呼ばれます)を利用して、大幅なコスト削減(従量課金制の料金から最大 90% 割引)を実現できます。ただし、Azure が容量を再び必要とした場合、Spot インスタンスは 30 秒前の通知だけで退避される可能性があります。そのため、VMSS の Spot インスタンスは、中断に耐え、チェックポイントから再開できる、バッチ処理ジョブ、メディア エンコード、CI/CD ビルド エージェントなどの障害許容型ステートレス ワークロードに適しています。

スケーリングの上限とクォータ

既定では、Azure Marketplace イメージを使用する VMSS には最大 1,000 台の VM インスタンスを含めることができ、カスタム イメージを使用する場合は最大 600 台です。Azure サブスクリプションには、すべてのリソースで使用できる vCPU 数を制限する、リージョンごとの vCPU クォータも設定されています。既定の上限を超えてスケーリングする必要がある場合は、Azure portal からクォータの引き上げを申請できます。ピーク時に数千台のインスタンスまでスケーリングする可能性がある大規模な本番環境では、これらの上限を事前に計画しておくことが重要です。

ステートフル ワークロード向け VMSS

VMSS は主にステートレス ワークロード向けに設計されていますが、永続 OS ディスクを使用してステートフル アプリケーションを管理することもできます。この構成では、スケールイン時に割り当てが解除されても各インスタンスの OS ディスクが保持されるため、インスタンス固有の状態(固有の構成やセッション データなど)が維持されます。これは、各インスタンスが固有の ID を持つゲーム サーバーなどのアプリケーションで使用されます。ただし、データベースやキャッシュなど、ほとんどのステートフル シナリオでは、スケール セット内の VM よりも Azure SQL や Azure Cache for Redis などの専用 Azure マネージド サービスのほうが適しています。

スケール セットの監視と診断

VMSS を監視するには、スケール セット レベル(時間経過に伴うインスタンス数、自動スケール イベント)と個々のインスタンス レベル(CPU、メモリ、ディスク、アプリケーション ログ)の両方を把握する必要があります。Azure Monitor は、スケール セットのプラットフォーム メトリックを自動的に収集します。アプリケーション レベルのメトリックやログを収集するには、スケール セットの VM プロファイルを使用して、インスタンスに Azure Monitor Agent 拡張機能をインストールします。これにより、新しいインスタンスもすべて自動的に Log Analytics ワークスペースへのレポートを開始します。単一のダッシュボードから VM 群全体を統合的に可視化できます。

クイック チェック

このレッスンで学習した Microsoft Azure Fundamentals(AZ-900)の概念について、理解度を確認しましょう。

レッスンのまとめ

このレッスンでは、次のことを学びました。VM Scale Sets は、同一構成で負荷分散された VM 群を管理し、メトリックまたはスケジュールに基づいて自動スケーリングします。また、正常性プローブとインスタンスの自動修復により、手動操作なしで VM 群の正常性を維持できます。さらに、ローリング アップグレードでは、インスタンスを小さなバッチに分けて置き換えることで、ダウンタイムなしに更新できます。次は、クラウドでホストされるデスクトップ ソリューションである Azure Virtual Desktop について学びます。

よくある質問

「Virtual Machine Scale Sets」レッスンは無料ですか?

はい。「Virtual Machine Scale Sets」の完全なテキストはこのウェブで無料で読めます。インタラクティブに演習し(組み込みコードエディタと24時間対応のAIチューター)、Cloud & IT Cert Prepコースの残りをアンロックするには、CoddyKit PROにアップグレードしてください。 Cloud & IT Cert Prepコースには全4レッスンが含まれています。

「Virtual Machine Scale Sets」で何を学びますか?

需要に応じて同一のVMを自動的にスケールインまたはスケールアウトし、高可用性アプリケーション向けにヘルスプローブと負荷分散ルールを設定します。 ブラウザで直接実行するハンズオンコードでCloud & IT Cert Prepを演習し、24時間対応のAIチューターがレッスンを進める中での質問に答えます。

Cloud & IT Cert Prepを始めるのに経験は必要ですか?

事前経験は必要ありません。CoddyKitのCloud & IT Cert Prepは初級者から上級者向けに構成されているため、ここから始めるか最初から始めて、自分のペースで進むことができます。 これはレッスン2/4です。

「Virtual Machine Scale Sets」レッスンにはどのくらい時間がかかりますか?

ほとんどのCoddyKitレッスンは約5~10分かかります。各レッスンはコンパクトでインタラクティブなので、着実に進歩し、ウェブとアプリ全体で正確に前回の場所から再開できます。

このCloud & IT Cert Prepレッスンでコードを書いて実行できますか?

はい。すべてのCloud & IT Cert Prepレッスンに組み込みコードエディタが含まれているため、ブラウザでリアルコードを書いて実行し、即座のAIフィードバックを取得できます。ローカル設定は不要です。

このコースのすべてのレッスン

  1. Azure Virtual Machines
  2. Virtual Machine Scale Sets
  3. Azure Virtual Desktop
  4. 適切なコンピューティングサービスの選択
← Cloud & IT Cert Prepに戻る