【初心者向け】Virtual Machine Scale Setsとは?Azure VMを自動で増減する仕組みを解説
Microsoft Azureを使ったシステム構築では、Virtual Machine Scale Setsというサービスを目にすることがあります。
「普通のAzure VMとは何が違うの?」
「仮想マシンを自動で増やせるの?」
「ロードバランサーとはどのように連携するの?」
このような疑問を持つIT業務初心者の方は少なくありません。
Virtual Machine Scale Setsは、複数のAzure仮想マシンをまとめて作成・管理し、アクセス数や負荷に応じてVMの台数を増減できるサービスです。
日本語では「仮想マシン スケール セット」と呼ばれ、略してVMSSと表記されることもあります。
- Virtual Machine Scale Setsとは?
- Virtual Machine Scale Setsを身近な例で考えてみよう
- スケールアウトとスケールインとは?
- スケールアップとの違い
- 自動スケーリングとは?
- 最小・既定・最大インスタンス数
- 実際の業務ではどのように使われる?
- ロードバランサーとの関係
- Azure VMとの違い
- オーケストレーションモードとは?
- 可用性ゾーンとの関係
- VMの構成はどのようにそろえる?
- ステートレスな構成とは?
- Virtual Machine Scale SetsとApp Serviceの違い
- Virtual Machine Scale SetsとAKSの違い
- Virtual Machine Scale Setsを利用するメリット
- 利用時の注意点
- よくある質問
- IT業務初心者が覚えておきたいポイント
- 関連して覚えておきたいAzureサービス
- まとめ
Virtual Machine Scale Setsとは?
Virtual Machine Scale Setsは、同じアプリケーションを実行する複数の仮想マシンを、一つのグループとして管理するためのサービスです。
例えば、Webサイトへのアクセスが増えたときにVMを追加し、アクセスが減ったときに不要なVMを削除できます。
通常時 VM1 VM2 アクセス増加時 VM1 VM2 VM3 VM4 アクセス減少時 VM1 VM2
これにより、アクセス集中による処理遅延を防ぎながら、必要以上のVMを動かし続けるコストも抑えられます。
Virtual Machine Scale Setsを身近な例で考えてみよう
Virtual Machine Scale Setsは、混雑状況に応じてレジの台数を変えるスーパーマーケットのような仕組みです。
来店客が少ない時間帯は、2台のレジで対応します。
夕方になって来店客が増えたら、レジを4台に増やします。
混雑が解消したら、再び2台へ戻します。
Virtual Machine Scale Setsでも同じように、システムの負荷に合わせてVMの台数を調整します。
スケールアウトとスケールインとは?
Virtual Machine Scale Setsでは、VMの台数を増減する操作が重要です。
| 用語 | 意味 |
|---|---|
| スケールアウト | VMの台数を増やす |
| スケールイン | VMの台数を減らす |
例えば、VMが2台から5台へ増えるのがスケールアウトです。
VM1・VM2 ↓ スケールアウト VM1・VM2・VM3・VM4・VM5
VMが5台から2台へ減るのがスケールインです。
VM1・VM2・VM3・VM4・VM5 ↓ スケールイン VM1・VM2
スケールアップとの違い
スケールアウトと混同しやすい言葉に、スケールアップがあります。
| 方法 | 内容 | 例 |
|---|---|---|
| スケールアウト | VMの台数を増やす | 2台から4台へ増やす |
| スケールアップ | 1台のVMを高性能にする | CPUやメモリを増やす |
Virtual Machine Scale Setsは、主にVMの台数を増減するスケールアウト・スケールインに利用されます。
自動スケーリングとは?
自動スケーリングとは、システムの状態に応じてVMの台数を自動で変更する仕組みです。
例えば、次のようなルールを設定できます。
- CPU使用率が70%を超えたらVMを1台増やす
- CPU使用率が30%を下回ったらVMを1台減らす
- 平日の午前9時にVMを5台へ増やす
- 午後10時にVMを2台へ減らす
利用者が毎回手動でVMを追加・削除しなくても、Azureが設定に従って台数を調整します。
最小・既定・最大インスタンス数
自動スケーリングでは、VMの台数に範囲を設定します。
| 設定 | 意味 |
|---|---|
| 最小 | 最低限維持するVM数 |
| 既定 | 通常時に使用するVM数 |
| 最大 | 増やせるVM数の上限 |
例えば、次のように設定します。
- 最小:2台
- 既定:3台
- 最大:10台
この場合、負荷が低くても2台は維持し、負荷が高くても10台を超えて増えることはありません。
実際の業務ではどのように使われる?
例えば、企業のECサイトをAzure VMで運用する場合です。
通常は2台のVMで処理できても、セール期間にはアクセスが急増する可能性があります。
利用者 ↓ Azure Load Balancer ↓ Virtual Machine Scale Sets ├─ VM1 ├─ VM2 ├─ VM3 └─ VM4
アクセスが増えるとVirtual Machine Scale SetsがVMを追加し、ロードバランサーが通信を複数のVMへ振り分けます。
アクセスが減ったあとはVMを減らし、利用料金を抑えます。
ロードバランサーとの関係
Virtual Machine Scale Setsは、Azure Load BalancerやApplication Gatewayなどと組み合わせて利用されます。
ロードバランサーは、利用者から届いた通信を複数のVMへ分散します。
利用者からのアクセス ↓ ロードバランサー ├─→ VM1 ├─→ VM2 └─→ VM3
Virtual Machine Scale SetsがVMの台数を管理し、ロードバランサーが各VMへ通信を振り分けるという役割分担です。
| サービス | 役割 |
|---|---|
| Virtual Machine Scale Sets | VMの作成・削除・台数管理 |
| Azure Load Balancer | ネットワーク通信をVMへ分散 |
| Application Gateway | Web通信をアプリケーション単位で振り分ける |
Azure VMとの違い
| 項目 | Azure VM | Virtual Machine Scale Sets |
|---|---|---|
| 管理単位 | 基本的に1台ずつ管理 | 複数VMをまとめて管理 |
| 自動スケーリング | 単体では行わない | VM数を自動で増減できる |
| 主な用途 | 個別のサーバー | 同じ処理を行うサーバー群 |
| 負荷分散 | 別途構成する | ロードバランサーと連携しやすい |
1台の業務サーバーを構築する場合はAzure VM、アクセス数に応じて複数VMを増減させたい場合はVirtual Machine Scale Setsが候補になります。
オーケストレーションモードとは?
Virtual Machine Scale Setsには、VMをどのように作成・管理するかを決めるオーケストレーションモードがあります。
主なモードは次の2つです。
- フレキシブル オーケストレーション
- ユニフォーム オーケストレーション
フレキシブル オーケストレーション
フレキシブル オーケストレーションでは、VMごとに比較的柔軟な構成や管理ができます。
異なるVMサイズを組み合わせたり、通常のAzure VMに近い方法で個別管理したりできる点が特徴です。
新しいシステムでは、基本的にフレキシブル オーケストレーションが推奨されています。
ユニフォーム オーケストレーション
ユニフォーム オーケストレーションでは、同じ構成のVMを多数作成し、統一的に管理します。
すべてのVMへ同じOSイメージやVMサイズを適用するような構成に向いています。
| 項目 | フレキシブル | ユニフォーム |
|---|---|---|
| VM構成 | 柔軟に管理しやすい | 同一構成が基本 |
| 個別VMの管理 | 行いやすい | スケールセット単位が中心 |
| 新規構築 | 推奨される構成 | 既存要件などに応じて利用 |
オーケストレーションモードは、スケールセット作成後に変更できないため、作成前に要件を確認する必要があります。
可用性ゾーンとの関係
対応リージョンでは、Virtual Machine Scale SetsのVMを複数の可用性ゾーンへ配置できます。
可用性ゾーンとは、同じAzureリージョン内にある、電源やネットワークなどが分離されたデータセンターの区画です。
Azureリージョン ├─ ゾーン1:VM1 ├─ ゾーン2:VM2 └─ ゾーン3:VM3
一つのゾーンで障害が発生しても、別のゾーンにあるVMでサービスを継続しやすくなります。
VMの構成はどのようにそろえる?
複数のVMで同じアプリケーションを動かすには、各VMへ同じ設定を適用する必要があります。
主に次の方法があります。
- 同じOSイメージを利用する
- カスタムイメージを作成する
- VM拡張機能でアプリをインストールする
- 起動時スクリプトで設定する
- Azure Image Galleryを利用する
- 構成管理ツールを利用する
VMを増やしたときに手作業で設定するのではなく、自動的に同じ環境が作られるように設計することが重要です。
ステートレスな構成とは?
Virtual Machine Scale Setsでは、VMが追加・削除されることを前提に、ステートレスな構成が適しています。
ステートレスとは、VM内部に重要な利用者データや処理状態を保存しない設計です。
例えば、次のデータをVMのローカルディスクだけへ保存すると、VMの削除時に失われる可能性があります。
- 利用者がアップロードしたファイル
- ログインセッション
- 注文情報
- 重要なログ
このようなデータは、次の外部サービスへ保存します。
- Azure Storage
- Azure SQL Database
- Azure Cosmos DB
- Azure Cache for Redis
- Log Analytics
Virtual Machine Scale SetsとApp Serviceの違い
| 項目 | Virtual Machine Scale Sets | Azure App Service |
|---|---|---|
| 管理範囲 | OSやVMを管理する | 主にアプリを管理する |
| 自由度 | 高い | 利用できる構成に制約がある |
| サーバー管理 | 必要 | Azure側が多くを管理 |
| 主な用途 | 自由なサーバー構成 | WebアプリやAPI |
OSやミドルウェアを細かく設定したい場合はVirtual Machine Scale Sets、Webアプリを手軽に公開したい場合はApp Serviceが候補になります。
Virtual Machine Scale SetsとAKSの違い
| 項目 | Virtual Machine Scale Sets | Azure Kubernetes Service |
|---|---|---|
| 管理対象 | 仮想マシン | コンテナ |
| 主な用途 | VM上でアプリを実行 | Kubernetesでコンテナを運用 |
| 必要な知識 | VM、OS、ネットワーク | コンテナ、Kubernetes |
なお、Azure Kubernetes Serviceのノードを動かす基盤として、Virtual Machine Scale Setsが利用される場合もあります。
Virtual Machine Scale Setsを利用するメリット
- 複数のVMをまとめて管理できる
- 負荷に応じてVM数を自動調整できる
- アクセス集中に対応しやすい
- 負荷が低いときにVMを減らしてコストを抑えられる
- ロードバランサーと連携しやすい
- 複数の可用性ゾーンへ配置できる
- 同じ構成のVMを効率よく展開できる
利用時の注意点
VM内部へ重要なデータを保存しない
スケールインによってVMが削除される可能性があります。
利用者データや業務データは、Azure Storageやデータベースなどへ保存します。
起動に時間がかかる場合がある
新しいVMの作成、OS起動、アプリケーションの準備には時間がかかります。
アクセスが増えてからVMを追加しても、すぐに処理能力が上がらない場合があります。
スケール条件を適切に設定する
VMを増減する基準が適切でないと、短時間に追加と削除を繰り返す可能性があります。
CPU使用率だけでなく、処理待ち件数やアクセス数など、システムに合った指標を検討します。
最大台数と料金を確認する
自動スケーリングによってVMが大量に追加されると、利用料金も増えます。
最大インスタンス数や予算アラートを適切に設定しましょう。
正常性確認を設定する
起動していてもアプリケーションが正常に動いていないVMへ通信を送らないように、正常性プローブなどを設定します。
よくある質問
Virtual Machine Scale Setsは1台のVMでも使えますか?
構成上は少ない台数から利用できますが、複数VMをまとめて管理・拡張することが主な目的です。
VMの台数は手動でも変更できますか?
はい。自動スケーリングだけでなく、管理者が手動でインスタンス数を変更することもできます。
自動スケーリングにはロードバランサーが必要ですか?
必ずしもすべての用途で必要とは限りません。
ただし、Webサーバーのように複数VMへ同じ通信を振り分ける場合は、Azure Load BalancerやApplication Gatewayなどを組み合わせるのが一般的です。
VMごとに異なる設定を行えますか?
オーケストレーションモードや構成によって異なります。
フレキシブル オーケストレーションでは、個別VMを比較的柔軟に管理できます。
VMを減らすとデータは消えますか?
削除されたVMのローカル領域にしか存在しないデータは失われる可能性があります。
重要なデータは外部ストレージやデータベースへ保存してください。
Virtual Machine Scale Setsは無料ですか?
スケールセットという管理機能とは別に、稼働するVM、ディスク、ネットワーク、ロードバランサーなどの利用料金が発生します。
料金はVMの台数やサイズ、稼働時間などによって変わります。
IT業務初心者が覚えておきたいポイント
- Virtual Machine Scale Setsは複数のAzure VMをまとめて管理するサービス
- 略してVMSSと呼ばれる
- VMを増やすことをスケールアウトと呼ぶ
- VMを減らすことをスケールインと呼ぶ
- 負荷やスケジュールに応じて自動スケーリングできる
- ロードバランサーと組み合わせる構成が多い
- 新規構築ではフレキシブル オーケストレーションが推奨される
- 重要なデータはVMの外部へ保存する
- 最大台数、正常性確認、料金の監視が重要
関連して覚えておきたいAzureサービス
- Azure Virtual Machines
- Azure Load Balancer
- Azure Application Gateway
- Azure Monitor
- Azure Autoscale
- Azure Virtual Network
- Azure Storage
- Azure SQL Database
- Azure Image Gallery
- Azure Kubernetes Service
- Azure Availability Zones
まとめ
Virtual Machine Scale Setsは、複数のAzure仮想マシンをまとめて作成・管理し、負荷に応じて台数を増減できるサービスです。
アクセスが増えたときにはVMを追加し、アクセスが減ったときにはVMを削減することで、システムの処理性能とコストのバランスを取りやすくなります。
実際の業務では、Azure Load BalancerやApplication Gatewayと組み合わせ、複数のVMへ通信を分散する構成で利用されます。
また、VMが自動的に追加・削除されることを前提として、重要なデータをAzure Storageやデータベースへ保存する設計が必要です。
まずは、「Virtual Machine Scale Setsは、複数のAzure VMをまとめて管理し、必要に応じて台数を自動調整するサービス」と理解しておきましょう。

コメント