0Pricing
Cloud & IT Cert Prep · レッスン

Azure Resource Manager の仕組み

ARM レイヤーを通過するリソース作成要求を追跡し、リソース グループを論理コンテナーとして理解するとともに、ARM のロールベース アクセスと監査証跡について学びます。

「Azure Resource Manager の仕組み」はCoddyKit上の無料Cloud & IT Cert Prepレッスンです。 これはレッスン1/4です。 下記で完全なレッスンを無料で読むことができます。その後、ブラウザ内の組み込みコードエディタと24時間対応のAIチューターでハンズオン演習できます。 これはCloud & IT Cert Prep学習パスの一部であり、ウェブとCoddyKitアプリ全体で進捗が同期されます。 Cloud & IT Cert Prepコースには全4レッスンが含まれています。

Azure Resource Manager とは

Azure Resource Manager (ARM) は、Azure のデプロイおよび管理サービスです。Azure portal、CLI、PowerShell、REST API で実行するすべての操作は ARM を経由します。ARM は一元化されたコントロール プレーンとして機能し、すべてのリソース操作を認証、承認、ルーティングします。

ARM のリクエスト フロー

リソースの作成リクエストを送信すると、ARM はそれをインターセプトし、Microsoft Entra ID を使用してユーザーの身元を確認し、RBAC のアクセス許可をチェックして、Azure Policy のルールを適用します。その後、検証済みのリクエストを適切なリソース プロバイダーに転送します。リソース プロバイダー(例: Microsoft.Compute)が実際の操作を実行し、結果を ARM に返します。

# Example: creating a VM via Azure CLI (routed through ARM)
az vm create \
  --resource-group MyRG \
  --name MyVM \
  --image UbuntuLTS \
  --admin-username azureuser

リソース プロバイダーとリソースの種類

Azure サービスはリソース プロバイダーを介して公開され、それぞれ Microsoft.Storage や Microsoft.Network のような名前空間で識別されます。すべてのリソースの種類(例: Microsoft.Storage/storageAccounts)は、そのインスタンスを作成する前にサブスクリプションで登録する必要があります。ほとんどのプロバイダーは、関連するサービスを初めて使用するときに自動的に登録されます。

# List registered resource providers
az provider list --query "[?registrationState=='Registered'].namespace" -o table

# Register a provider manually
az provider register --namespace Microsoft.Insights

論理コンテナーとしてのリソース グループ

リソース グループは、関連する Azure リソースを保持する論理コンテナーです。グループ内のすべてのリソースは同じライフサイクルを共有するため、まとめてデプロイ、更新、削除できます。リソース グループは、RBAC の割り当てとコスト追跡の既定のスコープとしても機能します。すべての Azure リソースは、必ず 1 つのリソース グループに所属します。

# Create a resource group
az group create --name MyResourceGroup --location eastus

# List all resources in a resource group
az resource list --resource-group MyResourceGroup -o table

ARM とロールベースのアクセス制御

ARM は、管理グループ、サブスクリプション、リソース グループ、個別のリソースというすべてのスコープでロールベースのアクセス制御(RBAC)を適用します。Owner、Contributor、Reader などの組み込みロールで、ほとんどのシナリオに対応できます。ARM は最上位のスコープから下位に向かってロールの割り当てを評価し、拒否の割り当てによって継承されたアクセス許可をブロックすることもできます。

# Assign Contributor role at resource group scope
az role assignment create \
  --assignee user@contoso.com \
  --role 'Contributor' \
  --resource-group MyResourceGroup

ARM の監査証跡

ARM を介してルーティングされたすべての操作は、Azure Activity Log に記録されます。アクティビティ ログには、操作を実行したユーザー、影響を受けたリソース、操作が行われた日時、成功したか失敗したかが記録されます。アクティビティ ログは既定で 90 日間保持され、長期保存のために Storage Account にアーカイブしたり、Log Analytics にストリーミングしたりできます。

# Query recent ARM operations in activity log
az monitor activity-log list \
  --resource-group MyResourceGroup \
  --max-events 10 \
  --query '[].{time:eventTimestamp, caller:caller, operation:operationName.value, status:status.value}' \
  -o table

宣言型デプロイと命令型デプロイ

ARM は宣言型と命令型の両方のデプロイ スタイルをサポートします。宣言型デプロイでは、ARM テンプレートまたは Bicep を使用して目的の最終状態を記述し、ARM がそこに到達するために必要な操作を判断します。命令型デプロイでは、CLI または PowerShell のコマンドを手順ごとに実行します。再現性、バージョン管理、べき等性の点から、宣言型デプロイが推奨されます。

# Imperative: create storage account step-by-step
az storage account create \
  --name mystorageaccount \
  --resource-group MyRG \
  --location eastus \
  --sku Standard_LRS

# Declarative: deploy via ARM template
az deployment group create \
  --resource-group MyRG \
  --template-file azuredeploy.json \
  --parameters @azuredeploy.parameters.json

デプロイ モード: Complete と Incremental

ARM テンプレートのデプロイは、2 つのモードで実行できます。Incremental mode(既定)は、テンプレートで定義されたリソースを追加または更新し、グループ内にすでに存在するもののテンプレートに含まれていないリソースは変更しません。Complete modeは、リソース グループ内でテンプレートに定義されていないリソースを削除し、グループをテンプレートと完全に一致させます。使用には注意が必要です。

# Incremental deployment (default)
az deployment group create \
  --resource-group MyRG \
  --template-file azuredeploy.json \
  --mode Incremental

# Complete deployment (deletes unlisted resources!)
az deployment group create \
  --resource-group MyRG \
  --template-file azuredeploy.json \
  --mode Complete

ARM テンプレートの構造

ARM テンプレートは、6 つの主要なセクションを持つJSON ドキュメントです。$schema(テンプレートのバージョン)、contentVersion、parameters(入力値)、variables(計算値)、resources(デプロイ対象)、outputs(返す値)で構成されます。resources 配列には Azure リソースごとに 1 つのオブジェクトが含まれ、それぞれに種類、API バージョン、名前、場所、プロパティを指定します。

{
  '$schema': 'https://schema.management.azure.com/schemas/2019-04-01/deploymentTemplate.json#',
  'contentVersion': '1.0.0.0',
  'parameters': {},
  'variables': {},
  'resources': [
    {
      'type': 'Microsoft.Storage/storageAccounts',
      'apiVersion': '2023-01-01',
      'name': 'mystorageaccount',
      'location': '[resourceGroup().location]',
      'sku': { 'name': 'Standard_LRS' },
      'kind': 'StorageV2'
    }
  ],
  'outputs': {}
}

ARM での依存関係の管理

複数のリソースをデプロイするとき、ARM は既定で依存関係のないリソースを並列にデプロイできるため、デプロイを高速化できます。あるリソースが別のリソースに依存する場合(例: VM が NIC を必要とし、NIC が VNet を必要とする場合)は、dependsOn を使用して依存関係を明示的に宣言します。ARM は依存関係グラフを解決し、それに応じて操作の順序を決定します。

{
  'type': 'Microsoft.Network/networkInterfaces',
  'name': 'myNic',
  'dependsOn': [
    '[resourceId("Microsoft.Network/virtualNetworks", "myVNet")]'
  ],
  'properties': {
    'ipConfigurations': [{
      'name': 'ipconfig1',
      'properties': {
        'subnet': {
          'id': '[resourceId("Microsoft.Network/virtualNetworks/subnets", "myVNet", "mySubnet")]'
        }
      }
    }]
  }
}

What-If デプロイ分析

デプロイを実行する前に、what-if 操作を使用すると、実際に変更を加えずに ARM が行う変更をプレビューできます。出力には、作成、変更、削除されるリソースが変更の種類ごとに色分けされて表示されます。これは、Complete mode のデプロイを実行する前や、本番環境を変更する前に特に役立ちます。

# Preview changes before deploying
az deployment group what-if \
  --resource-group MyRG \
  --template-file azuredeploy.json \
  --parameters @params.json

理解度チェック

このレッスンで学んだ Microsoft Azure Fundamentals(AZ-900)の概念について、理解度を確認しましょう。

レッスンのまとめ

このレッスンでは、Azure Resource Manager がすべての Azure リソースを管理する集中管理レイヤーであること、リソース グループが同じライフサイクルを共有するリソースをまとめる論理コンテナーであること、そしてARM デプロイを Incremental mode または Complete mode で実行でき、what-if プレビューにも対応していることを学びました。次は ARM テンプレートの記述方法について学びます。

よくある質問

「Azure Resource Manager の仕組み」レッスンは無料ですか?

はい。「Azure Resource Manager の仕組み」の完全なテキストはこのウェブで無料で読めます。インタラクティブに演習し(組み込みコードエディタと24時間対応のAIチューター)、Cloud & IT Cert Prepコースの残りをアンロックするには、CoddyKit PROにアップグレードしてください。 Cloud & IT Cert Prepコースには全4レッスンが含まれています。

「Azure Resource Manager の仕組み」で何を学びますか?

ARM レイヤーを通過するリソース作成要求を追跡し、リソース グループを論理コンテナーとして理解するとともに、ARM のロールベース アクセスと監査証跡について学びます。 ブラウザで直接実行するハンズオンコードでCloud & IT Cert Prepを演習し、24時間対応のAIチューターがレッスンを進める中での質問に答えます。

Cloud & IT Cert Prepを始めるのに経験は必要ですか?

事前経験は必要ありません。CoddyKitのCloud & IT Cert Prepは初級者から上級者向けに構成されているため、ここから始めるか最初から始めて、自分のペースで進むことができます。 これはレッスン1/4です。

「Azure Resource Manager の仕組み」レッスンにはどのくらい時間がかかりますか?

ほとんどのCoddyKitレッスンは約5~10分かかります。各レッスンはコンパクトでインタラクティブなので、着実に進歩し、ウェブとアプリ全体で正確に前回の場所から再開できます。

このCloud & IT Cert Prepレッスンでコードを書いて実行できますか?

はい。すべてのCloud & IT Cert Prepレッスンに組み込みコードエディタが含まれているため、ブラウザでリアルコードを書いて実行し、即座のAIフィードバックを取得できます。ローカル設定は不要です。

このコースのすべてのレッスン

  1. Azure Resource Manager の仕組み
  2. ARM テンプレートの作成
  3. Bicep:最新の Azure IaC
  4. Azure での Terraform
← Cloud & IT Cert Prepに戻る