どうも、フリーランスエンジニアのMakotoです。
今回は、Azureリソースの階層構造を表す用語について解説します。
- 管理グループ
- サブスクリプション
- リソースグループ
用語の意味と合わせて、AZ-900試験で問われそうなポイント・注意点も解説します。ぜひ最後までお読みください。
それではいってみましょう!
Azureリソースとは?
まず最初にAzureの「リソース」という言葉について解説します。
リソースとは、仮想マシンやストレージ、SQL Databaseなどの作成するサービスひとつひとつの要素(実体)のことです。サーバと言い換えることもできますし「インスタンス」と呼ぶこともあります。
Azureポータルでリソースを作成するには、例えばトップ画面にある+ボタンから新規作成することができます。様々なサービスのアイコンが並んでいるのもわかりますね。
リソースは以下のような4つの階層構造で整理され、複数のリソースをまとめて管理できるようになっています。この階層のことを「スコープ」と呼び、操作権限を割り当てる場合などに用語として登場します。
一番下の階層がリソースで、その上の階層が今から解説する親分たちです。このうち「管理グループ」だけは任意のサービスで利用は必須ではありません。なので、その下の「サブスクリプション」「リソースグループ」が特に重要です。
下の階層から順に説明します。
リソースグループとは?
リソースグループは、仮想マシンやストレージなどAzureで作成する複数のリソースをグループ化してまとめて管理するための「入れ物」の役割を持ちます。
すべてのリソースは必ずどれか1つのリソースグループに所属します。リソースをまとめておくことで次のようなメリットがあります。
- リソース閲覧の見通しがよくなる
- いらなくなったらまとめて削除できる
- 権限やポリシーをまとめて付与できる
- 課金明細を分類できる
パソコンのファイル操作に例えると、テキストファイルやExcelなどのデータをフォルダに格納して整理する、フォルダごと削除する、フォルダに権限を付与するといったイメージになります。
リソースグループの分け方
一般的にはシステムごと、環境ごと(開発、検証、本番環境など)、ライフサイクルの異なるリソースごと(ネットワーク関連、Webサーバ関連など)で分類します。
一時的にテストや検証で利用したい環境など、あとでまとめて削除する前提の場合は一つのリソースグループにまとめておくと便利です。
リソースグループの注意点
AZ-900試験で問われそうなポイント・注意点は次のとおりです。
- リソースグループは入れ子にできない
- リソースグループに所属するリソースのリージョンは別々でもOK
- リソースは複数のリソースグループに所属できない(どれか一つのリソースグループにのみ所属)
- あとから別のリソースグループに移動させることもできる(一部制約あり)
サブスクリプションとは?
サブスクリプションという用語には2つの側面があります。
- 契約の単位
- リソースの入れ物
ひとつ目はAzureの契約の単位の側面です。Azureを利用するには最初にサブスクリプションを契約するところから始めます。
契約の単位ということは請求の単位でもあり、サブスクリプションごとに請求書が発行されます。また、支払い方法やサポートプランに関する情報もこのサブスクリプションに紐づけられています。
ふたつ目はリソース管理の側面です。サブスクリプションはリソースグループの上の階層に位置付けられるリソースの「入れ物」の役割もあります。
リソースに対して操作できる権限やポリシーをサブスクリプション全体にまとめて適用したり、サブスクリプションを分けることでアクセスできる範囲を分離することができます。
権限やポリシーをまとめて付与できる点はリソースグループと同じですが、その範囲がサブスクリプション全体なのか、特定のリソースグループなのか範囲が異なります。
例えば、全てのリソースを操作する必要がある管理者向けにはサブスクリプションに対して権限を付与し、特定の環境やリソース群を開発者が操作する場合にはリソースグループに対して権限を付与する、といった使い分けが可能です。
サブスクリプションの注意点
AZ-900試験で問われそうなポイント・注意点は次のとおりです。
- Azure利用開始時に作成するもの
- サブスクリプションの中にリソースグループが含まれる
- あとからリソースを別のサブスクリプションに移動させることもできる(一部制約あり)
管理グループとは?
管理グループは、サブスクリプションの上の階層に位置付けられ、複数のサブスクリプションをグループ化して管理するための「入れ物」の役割を持ちます。管理グループは入れ子にすることも可能です。
管理グループを使うことで、配下にあるサブスクリプションに対して操作できる権限やポリシーをまとめて付与することができます。
これもサブスクリプションやリソースグループとは範囲が異なるだけで、組織共通のポリシーをまとめて適用させるシーンなどで便利です。
例えば、あなたの企業に「データの保管場所は日本に限る」という要件がある場合、Azureポリシーというサービスを利用してサーバを作成できるリージョンを日本のリージョンに限定することができますが、こういった共通のポリシーを一つ一つのサブスクリプションに適用すると管理が煩雑になるため、管理グループに対してポリシーを適用するほうが効率的です。
複数のサブスクリプションを運用しない場合には特にメリットはありませんので、管理グループの作成は任意です。
上の階層の管理条件は継承される
ここまで見てきて「権限やポリシーをまとめて付与できる」という説明が何度も出てきたことにお気づきでしょうか?
権限はリソースを作成・読み取り・変更・削除などの操作能力のことで、ポリシーは「日本のリージョン以外にリソースの作成を禁止する」とか「仮想マシンの作成は特定のサイズに限定する」といったルールのことです。
権限やポリシーは4階層それぞれのスコープに対して設定できますが、上位のスコープに設定した場合は下位のスコープに継承されます。
管理グループに設定すると配下のサブスクリプションへ
サブスクリプションに設定すると配下のリソースグループへ
リソースグループに設定すると配下のリソースへ
継承される、といった具合です。
この性質も重要で、AZ-900試験で問われやすい内容だと思いますので覚えておきましょう。
権限はロールベースのアクセス制御(RBAC)の記事、ポリシーはAzure Policyの記事でそれぞれ詳しく解説しています。
まとめ
今回はAzureリソースの階層構造を表す用語について解説しました。用語の意味をまとめると次の表のような形になります。
用語 | 意味・用途 |
---|---|
管理グループ | 複数のサブスクリプションをグループ化 |
サブスクリプション | 契約(請求)の単位・リソースの入れ物 |
リソースグループ | 複数のリソースをグループ化 |
リソース | Azureサービスひとつひとつの要素(実体) |
学習の範囲ではサブスクリプションを複数作成したり、リソースグループを分けて管理する機会は少ないかもしれませんが、企業で利用する時には多くの場合は複数をまとめて管理することになります。
これらのスコープを階層構造で整理すると効率的に運用できることを覚えておきましょう。