👀概要
AzureでIaCを始める前に必ず理解すべき3つの基本概念(サブスクリプション、リソースグループ、タグ)を、AWS経験者向けに3分で解説します。Azureリソースを管理する際に必須となる階層構造と、リソース管理の基礎を理解できます。
👨👩👧👦対象者(Who)
- Azureを初めて触る方(特にAWS経験者)
- インフラエンジニア、クラウドエンジニア
📌関連リンク
🗒️目次
- サブスクリプションの概念
- リソースグループの概念
- タグの概念
📝 内容
サブスクリプションの概念
Azureにおいて「サブスクリプション」とはAzureの料金支払いにおける単位のことです。
Azure内で作成したリソースは何かしらのサブスクリプションに紐づいており、
それらのリソースの使用状況に応じてサブスクリプションに要求される料金も変わります。
例えば、プロジェクト単位でサブスクリプションを分割することにより、プロジェクトごとに請求される料金をコントロールすることが可能です。
TerraformからAzureを使用する際には、このサブスクリプションIDをProviderに指定しなければなりません。
provider "azurerm" {
features {}
subscription_id = "00000000-0000-0000-0000-000000000000"
storage_use_azuread = true
}
Azureの subscription_id をAWSの概念で例えると、「AWSアカウントID」に最も近いと認識しております。
リソースグループの概念
Azureのサブスクリプションを親だとすると、子に該当するのはリソースグループです。
このリソースグループは名前の通り、Azureのリソースをグルーピングする役割を持ち、Azureのリソースは何かしらのリソースグループに所属します。
1つのAzureサブスクリプションは複数のリソースグループを持つことができ、1つのリソースグループには複数のAzureリソースが所属します。
図にすると以下の通りです。
リソースグループのメリット
リソースグループはAWSにはない概念でしたので、当初は困惑しましたが
慣れてくると大きいメリットに気づきました。コンソール画面上からリソースを作成した際に、付随して別リソースが自動生成されることがあります。
例えば、コンピューティングリソースを作成し実行した際にログが生成されるなどです。AWSですと、AWS Lambdaの初回実行時にAWS Cloudwatchリソースが作成されますが、どこにこのリソースが作成されたのか初心者には追いきれませんでした。
Azureの場合は、どのリソースに作成されても「必ずリソースグループの中に作成される」という確信があったため、学習が容易でした。また、リソースグループを削除すれば内部のリソースも削除されるため、削除漏れがないのも安心です。
タグの概念
Azureにおける「タグ」とは、リソースグループやリソースに付与できるキーと値のペアのメタデータです。
AWSのタグと全く同じ概念で、リソースの分類、コスト管理、環境識別などに使用します。
タグは以下の階層に付与できます
- サブスクリプション
- リソースグループ
- 個別のリソース
タグの注意点
- タグは継承されません。 リソースグループのタグは自動的に配下のリソースに付与されない。
- 1つのリソースに最大50個のタグを付与可能
- キーは大文字小文字を区別しない
ちなみに、Terraformで作成したAzureリソースには、ManagedBy キーに Terraform という値が入ります。
まとめ
- サブスクリプションは料金支払いの単位(AWSアカウントIDに相当)
- リソースグループはリソースをグルーピングする階層構造(AWSにない概念で、削除時に配下のリソースも一括削除可能)
- タグはリソース分類・管理用のメタデータ(AWSと同じだが継承されない点に注意)


