前回、Azure Stackの「Core Services」にあるUsage収集機能によって、Azure StackがパブリッククラウドのAzureと同じように、利用者のリソース使用量などを収集できることを説明しました。また、「Foundational Services」がハイパーバイザーやストレージ、ネットワークというAzure Stackの基盤とも言えるサービスを管理していることにも触れました。それらを踏まえ、今回はAzure Stackの拡張性について説明します。

Azure Stackの拡張可能なフレームワーク

Azure Stackの話の前に、少しだけMicrosoft Azureのお話をしましょう。Microsoft Azureは、年間500を超える機能拡張を続けています。その内訳は、既存のサービスを拡張するようなものから、これまでメニューになかった新しいサービスの追加までさまざまですが、いかにサービスが頻繁に更新されようとも、Azureという基盤はそのままです。したがって、新しく追加されたサービスも、利用者は自身のSubscription配下で決められたパターンの画面構成で構築・設定を行い、利用することができます。

このように、Microsoft Azureが備える「最初から拡張しやすいアーキテクチャ」という特徴は、激しい競争にさらされ、同じ場所に留まっていることができないという宿命を背負ったクラウドにとって生命線とも言うべきものでもあります。

それを前提に、あらためてAzure Stackの簡易アーキテクチャを見てみましょう。Azure Stackのサービスフレームワークの中には、もう1つ「Additional Services」があります。

Azure StackのAdditional Servicesとサービス拡張のパターン

こちらは、第6回の記事に掲載した図の右側に少し補足したものです。Azure Stackはサービスを容易に拡張できるアーキテクチャになっており、その拡張性はAdditional Services層が支えています。この層が、Microsoft Azureと同様の高い拡張性をAzure Stackに担保しているため、マイクロソフトが提供するサービスの追加だけでなく、サードパーティの(マイクロソフト以外のベンダーや利用者自身による)サービス追加時にも、同じパターンを使えるようになっているのです。

Azure Stack は簡単に拡張できるのか?

サービス追加に関して覚えていただきたいキーワードは「Resource Provider」です。「RP」と略されることもあるこのResource Providerが、Azure Stackと新しいサービスの間を取り持つことになります。新しいサービスを追加したいときには、新しいサービス用のResource Providerを「どうやって入手するか」、もしくは「どうやって開発するか」を考えなければなりません。

現時点ではResource Providerについては限られた情報しかありませんが、Azure Stackによるサービス拡張を理解したい方は、Azure Stackの技術サイトにある「Tools and PaaS services for Azure Stack」をご覧いただくと良いでしょう。ここには、SQL ServerやMySQL、Web AppといったPaaSをAzure Stackに追加する方法が掲載されています。

さて、作業手順などは別途解説するとして、今回はSQL Serverサービス用のResource Providerに関する情報について説明しておきましょう。Webサイト「Use SQL databases on Azure Stack」には、以下のような図とAzure StackのサービスとしてSQL Serverサービスを追加するための情報が掲載されています。

Azure StackにおけるSQL Resource Providerと利用者との関係

ここで詳細を理解する必要はありませんが、この図からはAzure StackでSQL Serverサービスを実現するために、常にSQL Resource Providerが関与していることを確認していただければと思います。また、同サイトには、SQL Server用のResource Providerをダウンロードできるリンクも用意されています。

ダウンロードしたSQL Server Resource Provider

ダウンロード後は、Resource Providerの組み込みや、キャパシティのコントロール、Azure Stackギャラリーから見えるようにする作業などが待っています。スクリプトは用意されているので、自分でスクリプトを書くというより、用意されたJSONファイル(の管理者名やパスワードなどの部分)を使用環境に合わせて少し調整し、実行することになります。

Compute、Storage、Networkingにも存在するResource Provider

実は、前回の記事で解説したCompute(仮想マシン)、Storage、Networkingという独立したサービスも、それぞれがResource ProviderによってAzure Stackとやり取りをする仕組みになっています。Resource Providerの重要性は、先ほどSQL Serverサービスの追加を例に説明したとおりですが、それは皆さんが追加するサービスに限ったことではありません。Azure Stackが動作するために最低限必要だったFoundational Servicesにも、当てはまります。Azure Stackのインストール後に出来上がる仮想マシンの中で、xRMVMがまさにその部分を担っているので、今後注目してみてください。

* * *

Azure Stack TP1では、サードパーティの拡張に関する情報が提供されていません。しかし、今後Azure Stackの開発が進めば、情報も提供され始めることでしょう。もし、Azure Stackの拡張に興味がある方は、そのときが来るまでSQL ServerやMySQLなどの追加を試しつつ、動作をイメージしていただければと思います。Azure Stackはあくまでもクラウド基盤であり、その拡張については無限の可能性を秘めています。是非、日本ならではのAzure Stackサービスが生まれることを願っています。

今回は、Azure Stackの拡張性とResource Providerについて説明しました。次回はAzure StackのIaaS、特にComputeの部分について解説します。

日本マイクロソフト株式会社
エバンジェリスト
高添 修

マイクロソフトのインフラ系エバンジェリストとして、10年以上も第一線で活動。クラウド技術からWindows 10、VDIにSDN、DevOpsなど担当する領域は広く、現在は年間100回以上のセッション、案件支援、記事執筆、コミュニティ活動などを通じて最新技術の発信を続けている。

マイクロソフトのオンライン情報発信チャンネル「Channel9」のTech Fieldersでは、現場で活躍するエンジニアに有益な情報を提供している。筆者は6月下旬にAzure Stackをテーマに投稿予定。