【初心者向け】Virtual Machine Scale Setsとは?Azure VMを自動で増減する仕組みを解説

【初心者向け】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は、同じアプリケーションを実行する複数の仮想マシンを、一つのグループとして管理するためのサービスです。

例えば、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をまとめて管理し、必要に応じて台数を自動調整するサービス」と理解しておきましょう。

コメント

タイトルとURLをコピーしました