Skip to content

MS_AzureResourceManager

nishi_74322014 edited this page Aug 4, 2026 · 1 revision

Azure Resource Manager (ARM)

概要

グループ化されたソリューション リソースをデプロイ、監視、管理する

モデル

  • Azure ソリューションのデプロイと管理における方法
  • 新旧、2 つのモデルがある。
    • クラシック デプロイ(旧)
    • Resource Manager デプロイ(新)
  • 2 つのモデルに互換性はない。
  • 現在では、Resource Manager デプロイが推奨される。

クラシック デプロイ(旧)

  • 当初からのモデル

  • 各リソースが独立して存在

  • 関連リソースをまとめてグループ化する方法がない。

  • デプロイには、すべてのリソースを正しい順序で

    • Azure ポータル経由で個別に作成・削除
    • 作成・削除するスクリプトを作成して実行

    する必要があった。

  • タグなどによって、グループ化されたリソースの監視・請求の管理などができない。

  • リソースにアクセス制御を適用できない。

補足(最新化): クラシック デプロイ(ASM)は 2023 年までに完全に廃止された。 現在の Azure は Resource Manager のみである。 本節は歴史的経緯として読むこと。

Resource Manager デプロイ(新)

  • 2014 年に Resource Manager が導入され、リソース・グループの概念が追加された。

  • グループ化されたソリューション リソースをデプロイ、監視、管理する。

  • ソリューションを、リソース・グループという単位で、

    • リソースが一貫した状態(順序、アクセス制御)で
    • ライフサイクル全体で繰り返し

    デプロイできる。

  • テンプレート

    • スクリプトではなく、テンプレートという宣言型構文(JSON) で管理可能。

    • ソリューションのインフラストラクチャ全体を 1 つのテンプレートで定義する必要は無い。

      リソース < テンプレート < リソース・グループ < ソリューションのインフラストラクチャ
      
  • タグによって、グループ化されたリソースの監視・請求の管理が可能。

  • リソース・グループに属するすべてのリソースにアクセス制御を適用できる。

補足: ARM は Azure の制御プレーンそのものである。 ポータル、CLI、PowerShell、SDK、Terraform のいずれから操作しても、 最終的には ARM の REST API を呼んでいる。

このため、RBACMicrosoft.Compute/virtualMachines/read のような操作名は、 そのまま ARM の API に対応している。 Azureのアクセス制御と権限 で扱う権限は、 すべてこの層で評価される。

なお、データ プレーン(Blob の読み書き、Key Vault のシークレット取得など)は ARM を経由しない。RBACActionsDataActions が分かれているのは、この違いによる。

宣言型テンプレートの現在

補足(最新化): ARM テンプレート(JSON)は冗長で書きにくいため、 現在は Bicep が推奨されている。

方式 位置付け
Bicep ARM テンプレートに変換される DSL。Microsoft の推奨
ARM テンプレート (JSON) 引き続き有効。Bicep のコンパイル先
Terraform マルチクラウドで統一したい場合

Bicep は ARM にトランスパイルされるだけなので、 状態ファイル(Terraform の tfstate 相当)を持たず、 Azure 側の実際の状態が唯一の正となる。

モデルのサポート

  • サポートされない: Cloud Services (SaaS) では、新旧どちらのモデルもサポートされない。
  • 両方サポートされる: リソース、リソース・グループ 等(当時)

参考


Tags: クラウド, Azure, インフラストラクチャ

NetDevInfraWiki

マイクロソフト系技術情報 Wiki
Open 棟梁 Wiki

(未着手)

開発基盤部会 Wiki

移行管理: DONETODO

Clone this wiki locally