Azureでのサービス、システム構築で真価を発揮。リソースマネージャーでできることとは?

そもそも「Azure」とは?

リソースマネージャーの話をする前に、そもそも「Azure」とは何かについて整理しておきましょう。

「Azure」とはWindowsを開発・販売しているMicrosoftが運営するクラウドサービスの総称です。いわゆる「IaaS」「PaaS」に分類されるサービスで、初期費用なし、月額課金なしの従量課金制で提供されています。利用者はユーザー登録し、Azureで用意されている必要なサービスを必要な分だけ使用します。

わかりやすい使用例としてはクラウドサーバーとしてAzureを使用し、自社の製品やサービスをAzureを使って配信したり販売したりする手法が知られています。

Azure リソースマネージャー(=Resource Manager)とはどんなもの?

この記事ではAzureのサービスの1つである「リソースマネージャー(=Azure Resource Manager)」について解説するのですが、ここで言う「リソース」というのはそもそも何のことを指しているのでしょうか?

一般的な意味として「リソース」という言葉は「資源」であったり「財源」のようなものを意味します。「人的リソース」や「経済的リソース」などという使われ方をすることもあるので「リソース」という言葉自体は聞いたことがある方も多いでしょう。

IT関連でも基本的には言葉の使い方は同じです。「開発リソースが足りない」というセリフなどを聞くことがありますがこれは「開発を行うための人員、あるいは予算が足りない」ということを意味しています。ではAzure Resource Managerが管理するリソースとはどのようなものなのでしょうか?

Azureにおけるリソースとは?

Azureにおいて「リソース」という言葉は、Azureが提供しユーザーが利用できる各サービスのことを指しています。Azureは仮想マシンの構築環境やデータストレージなど、一般的に「クラウドサービス」として想像されるサービスの代表的なものを提供しており、他にもSQLを利用したデータベースやWebアプリの開発環境、そして仮想ネットワークなどを用意しています。これらそれぞれのことをAzureにおいては「リソース」として定義し呼称しています。

しかしこれらのサービス=リソースはバラバラのままではその真価を発揮できません。例えばある1つのWebサイトを構築しようと思う場合、必要なものは1つだけではありません。最初に思いつくだけでも「Webサーバー」「データベース」そして「ストレージ」が必要でしょう。あるリソース単体で何かを行うことも無いわけではありませんが、Azureは前提として製品やサービスを展開するためのビジネスツールとして提供されているサービスです。ビジネスとして展開されるサービスが1つのリソースだけで完結することはあまり無いと言っても過言ではありません。

つまり何らかのサービスや製品を展開しようと思う場合、Azureにおいては「複数のリソース」を組み合わせて使うことになります。この「組み合わされた複数のリソース」のことをAzureを使う上では「リソースグループ」と呼んでいて、サービスを構成する機能の1つと見なしていることもあります。複数のリソースをグループにして管理することにより、仮にその機能を使わなくなった、もしくは機能を変更したり入れ替えることになったというような時には、一つ一つのリソースを変更したり削除したりするのではなく、決められたリソースグループごと変更したり削除したりすることで目的を達成することができるため、利便性が高いという評価があります。

リソースの管理について

ここまでの説明だけでは、いくつものプロジェクトやサービスでリソースを何度も使っていたり、無限にリソースグループができてしまい混乱が発生するのではないかと思われた方もいるかもしれません。

Azureではそのようなことにならないためにリソースを管理するための考え方をいくつか用意しています。例えば、リソースを複数まとめたリソースグループについて説明しましたが、そのリソースグループをさらに複数集めて作る「サブスクリプション」というものが存在します。「サブスクリプション」は「月額課金制のサービス」の代名詞のようにも考えられていますが、Azureにおけるサブスクリプションとは「複数のリソースグループをまとめた上位グループ」という定義で使われています。

さらに、リソースグループをグループ分けした複数のサブスクリプションをまとめて管理する「管理グループ」というグループを作ることもできます。このような様々なリソースをAzureサービスとして提供しているのがAzureのリソースプロバイダーと呼ばれる機能です。目的によってリソースを提供するリソースプロバイダーは異なっており、例えば管理系のリソースを提供しているのは「Microsoft.Management」というリソースプロバイダーです。

Azure リソースマネージャー(=Resource Manager)でできること。

ここまでご説明してきたリソースやリソースグループ、そしてサブスクリプションや管理グループの構成を手順化したスクリプトテンプレートが「リソースマネージャーテンプレート」と呼ばれるもので、テンプレート化することによって各リソースグループや管理グループ、サブスクリプションなどで同じ構成のものを素早く作成することができます。

このような機能を使い、Azureリソースマネージャーは様々なリソースをグループとして管理しています。前項まででご説明したように、グループ化することである程度のリソースをまとめて一括で一元的に管理できるというメリットが生まれ、グループとしてのリソースを作成したり、変更または削除することも容易になります。

小さな組織の場合はあまり考慮しなくても良いかもしれませんが、部署が複数に渡るプロジェクトや、規模の大きな企業内で使用する場合では部署ごとに異なる業務があるため、必要とされるAzure上のリソースも異なります。そんな時に部署ごとのタスクを作成し、そのタスクをリソースグループとして作成した上でリソースマネージャーで管理することができることになります。また、リソースマネージャーが行っている各種のリソース管理状況については、Azure Portal上で視覚的に確認することが可能です。

また、既にご紹介した「リソースマネージャーテンプレート」を使うことによって、あらかじめグループ化しておいた必要なリソース構成をスクリプト化し、テンプレートにすることでその作成を自動化することが可能です。テンプレート化できるため、グループ単位、複数のリソースをまとめて定義することが可能になるので、手動でシステム構築をする際に発生する可能性のあるミスを防ぐこともできますし、一連の管理をコード化しておくことによってソフトウェアをインストールして行うよりもインフラの構築が簡単になるケースもあります。

まとめ

ここまで、そもそもAzureとは何か?というところからスタートし、Azureにおける「リソース」とは何のことなのか?そしてそのリソースを管理するためには何が必要なのか?さらに、本題であるAzureリソースマネージャー(=Resource Manager)とはどのようなもので、何ができるのかについて解説してきました。クラウドサービスが一般化し、導入が進んでいく中では様々な機能を持たせることになります。テンプレート化することでリソースグループの構成を自動化できたりと利便性も高い機能であるため、Azureを採用している企業やこれから検討している場合は是非自分達の現場にマッチするかどうかを調査してみるのがいいでしょう。

コメントを残す

メールアドレスが公開されることはありません。 * が付いている欄は必須項目です