Azure Resource Manager
本記事ではAzure Resource Manager について記載します。
ARM最新技術情報
この欄はUpdateがあれば随時更新します。
Azure全般のUpdate情報は以下から参照できます。
ARM 概要
Azure Resource Manager(ARM)とはシステムリソースをAzure上でデプロイする際に管理するモデルを指しています。
対比されるモデルとしてAzure Service Manager(ASM)がありますが、ASMはクラシックなデプロイメントモデル
としてWindows Azureと呼ばれる時代から展開されているモデルになります。ASMでは1つ1つのリソースは独立
して展開されていましたが、それぞれのリソースを関連付ける機能はなかったため、個別で設定情報やサーバー
サイドで関連付けを行う必要がありました。そこで誕生したのがARMです。ARMは、仮想マシンやPublic IP、
StorageAccount、Availability Set、Azure LoadBalancerなど、Conputingリソース以外のリソースも含めて複数の
コンポーネントを1つのグループで管理することができます。グループ管理はただリソースをグルーピングできる
だけではありません。例えばRBACと呼ばれるRole-Based Access ControlもResourceGroup単位やResource Group内
で設定することができるため、関連するシステムに対して担当者を適切に権限付与することができ、かつ担当者の
変更による修正も迷うことなく操作することができます。また、作成したResource GroupはJSON形式で1枚の構造
定義にエクスポートすることもでき、1度作成したResource Groupを一括で環境構築する機能(ARM Template)も
備わっています
関連リンク
【Azure リソース マネージャーの概要】
https://azure.microsoft.com/ja-jp/documentation/articles/resource-group-overview/
I/Fの紹介
Resource Groupの管理方法は以下のI/Fで対応しています。
1) Azure ポータルから操作
2) Azure SDKを展開しIDEから操作
3) Azure PowerShell or Azure CLIを展開しコマンドから操作
関連リンク
【Azureポータル サインイン】
https://azure.microsoft.com/ja-jp/features/azure-portal/
【Azure SDK/CLI ダウンロード】
https://azure.microsoft.com/ja-jp/downloads/
ARMとサブスクリプションの関係
ARMを利用することで複数のコンポーネントをグルーピングできることは概要でも説明した通りです。ですが企業を
取り巻く環境は複数なケースも多く、情報システム部のルールやセキュリティポリシー、クラウド利用ガイドライン
など様々な企業文化が存在していることも多いでしょう。ではAzureを利用する上でサブスクリプションやResource
Group、開発・本番環境などはそれぞれどのような単位で運営することが適切なのでしょうか。いくつかパターンを
記載しているので参考にしてみてください。
P1) サブスクリプションは事業部門orコスト管理部門で扱い、Resource Groupはプロジェクト/案件単位で管理する
⇒ 以下サイトを参照
https://www.kzmx.net/azure/311/
P2) サブスクリプションをプロジェクト単位で管理し、Resource Groupは開発・本番環境で分ける
⇒ 開発系において問題が起こった場合、本番系に伝播することを防ぐことができます。
ARM template(Infrastructure as Code)
ARMにはJSON形式でコード化、コードからインフラ環境を自動展開する、といった便利な機能が備わっています。
これをARM templateと呼び、以下が対応しています。1) 作成済のResource GroupをJSON形式で出力/ダウンロード
1度作成したResource GroupはJSON形式でExportすることができます。
ExportしたJSONを別のResource Groupへデプロイすることで同じ構成の環境が素早く準備できます。
※仮想マシンのNICがstaticに設定されている場合など、同名のリソースが利用できない環境では
部分的にJSONの中身を修正する必要があります。
2) 自作したJSON形式のコードからResource Groupへデプロイし自動構築
Visual Studio Code(VS Code)などのエディターを利用し、JSON形式のコードをカスタマイズする
ことができます。
3) Quick start templateを使いResource Groupへデプロイし自動構築
コミュニティが作成した400種類以上のARM templateからご自身のResource Groupへデプロイする
ことができます。
4) JSON形式を視覚化
Web-UIとしてJSONコードをファイルからimportし視覚化することができます。
※一部のブラウザでは表示されない場合があります。
関連リンク
【Azure リソース マネージャーのテンプレートの作成】
https://azure.microsoft.com/ja-jp/documentation/articles/resource-group-authoring-templates/
【利用できる関数】
https://azure.microsoft.com/ja-jp/documentation/articles/resource-group-template-functions/
【視覚化ツール】
https://armviz.io/#/
【Azure Quick Start template】
https://github.com/Azure/azure-quickstart-templates
【Visual Studio Code】
https://www.visualstudio.com/ja-jp/products/code-vs.aspx
制限事項
Resource Groupに関する制限については関連リンクのサイトをご参照ください。
関連リンク
【Azure サブスクリプションとサービスの制限、クォータ、制約】
https://azure.microsoft.com/ja-jp/documentation/articles/azure-subscription-service-limits/