Azure Resource Managerを解説 【シリーズ Azureサービスいちから紹介】

このエントリは Qiita Advent Calendar 2017 Microsoft Azureサービスいちから紹介 の1日目です。

ナレッジコミュニケーションの大柳です(@oyngtmhr)。

Microsoftの提供するクラウドサービスであるAzureは日々サービスや機能が増えていっています。
2017年11月29日時点で数えてみたところ86個のサービスが提供されています。
サービスが多すぎて、これまで触ったことのないサービスがあったり、日本語の技術情報が公式/非公式とも少ないものもあったりするので、サービス知識の整理のためにナレッジコミュニケーションでシリーズ「Azureサービスいちから紹介」を2017年アドベントカレンダーとして本日から始めていきます。

第1回目はAzure Resource Managerです。Azure Resource Managerとは何か、そして使い方などを紹介していきます。

クラウドといえば仮想サーバ(Virtual Machine)がまず思いつくと思いますが、AzureではResource Managerがすべての始まりになるので、第1回として取り上げます。

概要

Azureでは、リソースグループ(Resource Group)という概念が、様々なリソース(仮想マシンやストレージなど)を作成する場合の前提となります。リソースグループは、Azure Resource Managerという機能を使って管理を行います。
Azure Resource Managerは頭文字をとってARMとか略されたりします(ARMと聞くと孫さんの買った半導体メーカーを連想してしまいます)。

Azureでは、課金はサブスクリプション(Subscription)という単位で行われます。
このサブスクリプションをさらに分割して、Resource Managerでリソースグループを作成することで、課金や仮想マシンの構築などを効率的に管理することが可能になります。

Resource Managerでは以下のような機能が提供されています。

・すべてのリソースをグループとしてまとめて、構築や管理、監視ができます。
部門ごと(業務部門、経理部門など)、環境(ステージング、本番)、プロジェクトごと(年末キャンペーン、データ分析など)などのグループ内でリソースの管理、課金の監視などができます。

・テンプレートを使用してリソースを管理できます。
例えばWebサーバ、DBサーバ、アプリケーションをまとめたテンプレートを作っておき、まとめて必要なリソースを自動作成できます。仮想ネットワークを作成してからサーバを作成するなど、リソース間の依存関係も考慮してテンプレートを作成できます。

・ロールベースのアクセス制御 (RBAC) が適用できます。
あるユーザには管理権限、別のユーザには参照権限しか与えないなどロールを割り当てて管理することができます。

・タグをリソースに適用し、サブスクリプションのすべてのリソースを論理的に整理できます。
仮想マシンなどのリソースにタグを設定することで、課金を集計したり、特定の環境、プロジェクトなどの情報に紐づけてリソースを管理できたりします。

ユースケース

・業務1部と業務2部用のリソースグループを作成して、課金額を把握できるようにする。
・VM、SQL Server、WebAppのサービスを定義したテンプレートを作成し、素早く環境を構築できるようにする。
・プロジェクト終了時にリソースグループを削除することで、不要となったリソースを漏れなく削除する。
・鈴木さんを管理者とし、仮想マシンの管理権限が必要な佐藤さんには操作者権限、リソース状況の確認しかやらない伊藤さんには参照権限を与える

料金

リソースグループの作成などResource Managerの利用には料金はかかりません。
Resource Manager経由で仮想マシンなど課金対象のリソースを作成した場合にはもちろん料金が発生します。

その他

・リソースグループはリージョンに紐づく。紐づくといってもメタデータの管理先が特定のリージョンになるだけ。例えば、東日本リージョンに作ったリソースグループで、西日本リージョンの仮想マシンを作ることは可能。リージョン障害時にどうなるかは気になるけど、おそらくペアリージョン(東日本なら西日本)にメタデータはバックアップされていて、リソースの管理ができなくなるとかはないと想像。

・あるリソースグループから別のリソースグループへの移動もできる。例えば、ステージング用リソースグループから本番リソースグループに移動することができます。

まとめ

これまでは、部門ごとやプロジェクトごとなどで、ローカルルールで命名規則やタグ付けで管理していたのが、Azure標準機能でまとめて管理できるようになり便利です。
リソースグループは、管理体系を分けたり、自動構築したり、アクセス制御したりすべての基本になるので、Azureでサーバなどリソースを作成する前に、まずリソースグループを作成しましょう。

明日の記事もお楽しみに。

この記事を書いた人

azure-recipe-user