Azure Virtual Machine Scale Sets の一般提供を開始

執筆者: Guy Bowerman (Sr. Program Manager, Azure Compute)

このポストは、4 月 6 日に投稿された Azure Virtual Machine Scale Sets GA の翻訳です。

 

先日開催されたマイクロソフトの //Build カンファレンス (英語) で、Azure Virtual Machine Scale Sets (英語) の一般提供開始が発表されました。昨年 11 月にプレビューが初めて発表された VM Scale Sets では、複数の Azure VM をグループとして管理することが可能で、簡単なデプロイメントや管理オプションが提供され、Azure Autoscale (英語) や Azure Load Balancer と容易に統合することができます。すべてのマシンを同一の構成にできる場合は、個別に管理するオーバーヘッドを削減できるほか、VM をワークロードに合わせて柔軟にスケーリングできます。VM Scale Sets は、使用中のコンピューティング リソース以外に追加料金なしで使用可能です。また、Azure Resource Manager がサポートされているすべてのリージョンで使用できます。

VM Scale Sets の真の力が発揮されるのは、クラウド規模のアプリケーション アーキテクチャに移行するときです。アプリケーションの固有コンポーネントと非固有コンポーネントを分離した場合、制御ノードなどの固有コンポーネントは必要とする特定のリソースで構成することができます。一方、非固有コンポーネントは VM Scale Sets としてデプロイし、集合的に管理して、柔軟にスケーリングすることができます。この場合、個々のプロパティではなく「キャパシティ」(Scale Sets に含まれる VM の数) が重要な構成プロパティになります。

スケーラブルなアーキテクチャの構築

クラウドでスケーラブルなアーキテクチャを構築する場合、個々のインフラストラクチャ リソースを詳細に制御しようとするほど、リソースを定義および配置する作業が複雑になります。高度な PaaS ソリューションでは、インフラストラクチャ開発の複雑性を軽減するために、固定のアーキテクチャをデプロイしており、それに準拠したアプリケーションを構築できます。

しかし、多くのケースでは、事前定義された PaaS ソリューションのオーバーヘッドを回避しつつ特定のアーキテクチャをデプロイする必要があります。VM Scale Sets (VMSS) では、インフラストラクチャを高度に制御できると同時に、ネットワーク、ストレージ、コンピューティングなどの各種リソースを相互に関連付けたり、障害ドメインと更新ドメインでノードの負荷分散を行う方法を特定したりする必要がありません。つまり、IaaS のような制御性と PaaS のようなスケーラビリティを兼ね備えていると言えます。

通常、クラウド インフラストラクチャを構築する場合は、ストレージ、ネットワーク、コンピューティングのリソースを作成し、各リソース間の依存関係を構築する必要があります。VM Scale Sets では、ネットワーク、ストレージ、拡張機能のプロパティを持つ単一のコンピューティング リソースを定義できるため、作業が軽減されます。このリソースをデプロイすると、1 つの呼び出しで基盤となるファブリックにアクセスできるようになるため、Azure Compute Resource Provider がユーザーに代わってパフォーマンスや信頼性の最適化を行うことができます。

 

VM Scale Sets の主な機能には、次のようなものがあります。

 

ポータルで容易に作成可能

Azure ポータルから Linux および Windows の VM Scale Sets を作成できます。これらの Scale Sets は、ロード バランサーの NAT ルールに従って自動的に作成され、SSH 接続や RDP 接続を行うことができます。

ポータルには、この他にも VM Scale Sets の管理機能が順次追加されているため、近日中にはポータルからより多くの VM 管理機能を使用できるようになります。

シンプルなスケーリング プロパティ

Scale Sets 内の仮想マシン数の変更は、簡単な呼び出し (REST API、SDK、コマンド ラインなど) で実行できます。Scale Sets では、VM 数を 0 ~ 100 の範囲でスケーリングできます。

また、1 つの VNET やサブスクリプションに複数の VM Scale Sets を作成することもできます。このため、VM Scale Sets をスケーリング ユニットとして使用し、複数の Scale Sets で構成されるグループを作成することもできます。Azure Batch などの高度なサービスでは、この方法で大規模なコンピューティング プールを構築しています。

統合済みのオートスケール

Scale Sets では、オートスケール ルールを簡単にセットアップすることが可能で、VM 数の最小値、最大値、既定値を設定し、リソースの消費状況に基づいてトリガー/アクション ルールを定義できます。標準の監査ログやメール通知を設定できるほか、Webhook を定義してカスタムの通知やアクション (Runbook など) を設定することもできます。PagerDuty などのパートナーも Azure のサポートを追加しています。詳細については、Azure Alert および Azure Autoscale の新機能に関するブログ記事 (英語) を参照してください。

Azure Resource Manager との統合

Scale Sets は、VM のデプロイ時にソフトウェアのインストールと構成を行う VM 拡張機能など、Azure Resource Manager VM で使用可能な拡張性を備えており、Resource Manager のデプロイメント モデルに適合する他のリソース プロバイダーと統合することもできます。

統合済みの負荷分散

Azure Load Balancer および Application Gateway は、Scale Sets とシームレスに統合されています。Scale Sets のサイズが増大して新しい VM が作成された場合、対応するロード バランサーの NAT ルールが生成され、各 VM の接続パスが常に確保されます。IP アドレスを使用するスタンドアロンの VM では Network Security Groups でポートをロックダウンする必要があるのに対して、Scale Sets の VM ではこの受信接続の制御によって根本的に安全性が向上します。

Visual Studio のサポート

Azure SDK では Visual Studio 用の Azure テンプレートを使用して標準の Linux テンプレートや Windows テンプレートをデプロイし、Azure Resource Manager プロジェクトの一部として Scale Sets をデプロイすることができます。

詳細については、「Visual Studio で Virtual Machine Scale Sets テンプレートをデプロイする」を参照してください。

REST API、SDK、コマンド ラインのサポート

Scale Sets では、REST APIPowerShell (英語)Azure CLI (英語)、最新バージョンの Azure Managed SDK が完全にサポートされます。

組み込みの高可用性

Scale Sets の仮想マシン数を増やした場合、更新ドメインと障害ドメインで VM の負荷分散が行われ、最大限の可用性が確保されます。同様に、スケールインした場合にも最大限の可用性が得られる形で VM が削除されます。

ダウンタイムを発生させずに OS イメージの更新を手動でロールアウト可能

Scale Sets をシャットダウンせずに仮想マシン イメージを更新する必要がある場合、「モデル」(Scale Sets の定義とプロパティ) を更新してから、指定した VM に対して手動で更新をロールアウトできます。

BatchContainer Service (英語)Service Fabric などの高度な Azure サービスでも、基盤となるインフラストラクチャとして Scale Sets を利用することで、大規模なデプロイメントを簡素化し、クラウド規模のアーキテクチャのデプロイを容易にしています。また、ABB Software (英語)Triple (英語)Caradigm (英語)Talk Talk TV (英語) といったお客様も、プレビュー期間中に既にこれらのテクノロジを有効活用しています。

詳細情報

VM Scale Sets の詳細については、次のサイトをご覧ください。