Microsoft Azure の伝統的な IaC である ARM テンプレートから後継の Bicep への移行は、新規プロジェクトでは既にデファクトスタンダードとなっています。 本記事では、既存 ARM 資産を Bicep へ段階的に移行する実践的なガイドを、az bicep decompile の活用・手動調整・段階的移行ロードマップ・What-If 検証の観点から整理します。
| 項目 | ARM JSON | Bicep |
|---|---|---|
| 形式 | JSON (冗長) | DSL (簡潔) |
| コード量 | 標準 | 約 50% 削減 |
| 可読性 | 低 | 高 |
| IntelliSense | 限定 | 強力 |
| 型チェック | 弱い | 強い |
| Module 化 | Linked Template | Module (簡潔) |
| Microsoft 推奨 | レガシー | 主推奨 |
Microsoft 公式の Azure 推奨 IaC ツールとして位置付けられ、新規プロジェクトは Bicep 一択。既存 ARM 資産も段階的な移行が推奨される (一括移行は不要)。
既存 ARM JSON を Bicep に自動変換するコマンド:
az bicep decompile --file template.json
出力は template.bicep ファイルとして保存されます。
az bicep build で再度 ARM JSON に変換、元 ARM JSON と diff 比較 (一致すべき)az deployment group what-if で適用結果を確認、想定外の変更がないか検証シンプルなテンプレートでも 80-90% は自動変換可能、残り 10-20% を手動調整するパターンが現実的です。
Bicep decompile で完全自動化できない代表的なケース:
resourceId 関数を Bicep の resource シンボル参照に置換{
"type": "Microsoft.Storage/storageAccounts",
"apiVersion": "2023-01-01",
"name": "[concat('stg', copyIndex())]",
"copy": {
"name": "storageLoop",
"count": 3
},
...
}resource storage 'Microsoft.Storage/storageAccounts@2023-01-01' = [for i in range(0, 3): {
name: 'stg${i}'
...
}]Big Bang 移行 (一括変換) は推奨されない。段階的アプローチが標準。
| Phase | 期間 | アクション |
|---|---|---|
| Phase 1 | 1-2 ヶ月 | 新規開発を Bicep に統一、既存 ARM は維持。組織標準テンプレート・Module Library 整備 |
| Phase 2 | 3-6 ヶ月 | 既存 ARM のメンテナンス頻度が高いテンプレートから優先移行 (週次・月次デプロイ) |
| Phase 3 | 6-12 ヶ月 | 低頻度メンテナンスの ARM を順次移行 (年次更新程度) |
| Phase 4 | 12+ ヶ月 | 一度も触らない ARM はそのまま放置 (移行 ROI 低) |
Microsoft 自身も既存 ARM の継続利用を許容しており、無理な全面移行は不要。組織のスキル習熟・チームキャパシティに応じたペース設定が現実的。
ARM の Nested Template や Linked Template を Bicep Module にリファクタリング。
infra/ ├── main.bicep # エントリポイント ├── main.parameters.json # 環境別パラメータ ├── modules/ │ ├── network.bicep # VNet / NSG / Subnet │ ├── storage.bicep # Storage Account │ ├── compute.bicep # VM / App Service / AKS │ └── identity.bicep # Managed Identity / Key Vault └── README.md
本番デプロイ前の What-If は必須レベル。Bicep 移行プロジェクトでは『元 ARM のデプロイ結果と新 Bicep のデプロイ結果が一致』を What-If で検証するのが最重要ステップ。
az deployment group what-if \ --resource-group myRG \ --template-file main.bicep \ --parameters main.parameters.json
CI/CD パイプラインに What-If を組み込み、Pull Request レビューフェーズで自動実行する設計が現代的なベストプラクティス。
az bicep lint で Bicep コードの静的解析。
bicepconfig.json でプロジェクト固有ルールカスタマイズ可能。CI/CD パイプラインで Lint を実行、コード品質維持。 VS Code Bicep 拡張機能でリアルタイム Lint 表示、開発時に即座にフィードバック取得が可能です。
Bicep 移行後の CI/CD パイプライン標準パターン:
az bicep lintaz bicep build (ARM JSON 生成、Validation)az deployment group what-ifaz deployment group create詳細は Bicep チュートリアル の CI/CD 統合パターン参照。
az bicep decompile で自動変換 → 手動調整ARM テンプレートから Bicep への移行が必要な理由は?
ARM テンプレートは Azure の伝統的な IaC で、JSON 形式の冗長な記述・読みにくさ・モジュール化困難という課題があった。Bicep (2021 GA) は ARM の後継として設計され、ARM JSON へ自動トランスパイル (1:1 対応) されつつ、コード量が約 50% 削減・IntelliSense・型チェック・Module 機能を提供。Microsoft 公式の Azure 推奨 IaC ツールとして位置付けられ、新規プロジェクトは Bicep 一択。既存 ARM 資産も段階的な移行が推奨される (一括移行は不要) というのが Microsoft 公式ガイダンスで、長期的なメンテナンス性向上・新規メンバーへの引き継ぎ容易化のため移行価値が高いです。
Bicep decompile の使い方は?
az bicep decompile --file template.json コマンドで、既存 ARM JSON ファイルを Bicep に自動変換可能。出力は template.bicep ファイルとして保存される。変換後の確認: 1) 警告メッセージ確認 (BCP の警告が出ることが多い、複雑な式やカスタム関数の手動調整が必要)、2) 生成された Bicep を az bicep build で再度 ARM JSON にトランスパイルし、元 ARM JSON と diff 比較 (一致すべき)、3) terraform plan 相当の az deployment group what-if で適用結果を確認、想定外の変更がないか検証。複雑なテンプレート (ネストされた Copy ループ・User-defined Function 等) では手動調整が必須で、シンプルなテンプレートでも 80-90% は自動変換可能、残り 10-20% を手動調整するパターンが現実的です。
手動調整が必要なケースは?
Bicep decompile で完全自動化できない代表的なケース: 1) ARM の variables を Bicep の var に置き換え (式が複雑な場合は手動最適化)、2) Copy ループを Bicep の for にリファクタリング (より読みやすく)、3) Nested Template を Bicep Module に分解 (再利用性向上)、4) User-defined Function を Bicep の userDefinedFunction に置換 (Bicep 2024 で追加された機能)、5) Symbolic Names の調整 (ARM の resourceId 関数を Bicep の resource シンボル参照に置換)、6) Conditional Resource (condition プロパティ) を Bicep の if 構文に最適化、7) Output の型注釈追加。これらは自動変換後に手動で『より Bicep らしい記述』に書き換える作業で、コード可読性・メンテナンス性を最大化するために必須のステップです。
段階的移行の推奨ステップは?
Big Bang 移行 (一括変換) は推奨されない。段階的アプローチ: Phase 1 (1-2 ヶ月): 新規開発を Bicep に統一、既存 ARM は維持。Bicep の組織標準テンプレート・Module Library を整備。Phase 2 (3-6 ヶ月): 既存 ARM のメンテナンス頻度が高いテンプレートから優先移行 (週次・月次デプロイされるもの)。bicep decompile + 手動調整。Phase 3 (6-12 ヶ月): 低頻度メンテナンスの ARM を順次移行 (年次更新程度)。Phase 4 (12+ ヶ月): 一度も触らない ARM テンプレートはそのまま放置 (移行 ROI 低)。Microsoft 自身も既存 ARM の継続利用を許容しており、無理な全面移行は不要。組織のスキル習熟・チームキャパシティに応じたペース設定が現実的です。
Bicep の Module 化はどう進めますか?
ARM の Nested Template や Linked Template を Bicep Module にリファクタリング。標準パターン: 1) main.bicep をエントリポイントとし parameters.bicepparam で環境別構成、2) modules/ ディレクトリに機能別 Module (network.bicep・compute.bicep・storage.bicep・identity.bicep)、3) Azure Verified Modules (AVM) ベースのカスタマイズ (Microsoft 公式 verified Module、業界ベストプラクティス準拠)、4) 社内 Bicep Registry (Azure Container Registry) で Module 公開・バージョン管理、5) Bicep 2024 の User-defined Types で型安全性向上、6) Bicep Visualizer (VS Code 拡張機能) で依存関係可視化。Module 化により大規模 Bicep プロジェクトでも保守可能、Bicep の真価が発揮されるのは Module 設計が適切に行われた時です。
What-If デプロイは必須ですか?
本番デプロイ前の What-If は必須レベル。az deployment group what-if --resource-group myRG --template-file main.bicep --parameters main.parameters.json で、実際にデプロイする前に『何が変更されるか』を予測表示。出力カテゴリ: + Create (新規作成)・- Delete (削除)・~ Modify (変更)・= NoChange (変更なし)・* Deploy (デプロイのみ)。Bicep 移行プロジェクトでは『元 ARM のデプロイ結果と新 Bicep のデプロイ結果が一致』を What-If で検証するのが最重要ステップ。CI/CD パイプラインに What-If を組み込み、Pull Request レビューフェーズで自動実行する設計が現代的なベストプラクティス。想定外のリソース削除や設定上書きを事前に検知可能で、本番事故防止の生命線です。
Bicep Linter の活用は?
az bicep lint で Bicep コードの静的解析。組み込みルール: 1) no-hardcoded-location (location をハードコードせず Parameter 化)、2) no-unused-parameters / no-unused-variables (未使用要素検出)、3) no-loc-expr-outside-params (location 式の Parameter 配置)、4) prefer-interpolation (string concat より string interpolation)、5) explicit-values-for-loc-params (Parameter デフォルト値明示)、6) protect-commandtoexecute-secrets (Secret の Command Line 露出防止) など 20+ ルール。bicepconfig.json でプロジェクト固有ルールカスタマイズ可能。CI/CD パイプラインで Lint を実行、コード品質維持。VS Code Bicep 拡張機能でリアルタイム Lint 表示、開発時に即座にフィードバック取得が可能です。
関連認定試験は?
AZ-104 (Administrator) のドメイン 1 で Bicep / ARM が問われる。AZ-400 (DevOps Engineer Expert) のドメイン 3 で CI/CD パイプライン内 Bicep 統合が深く問われる本領域の本命認定。AZ-204 (Developer Associate、2026-07 リタイア注意) で開発者視点での IaC、AZ-305 (Solutions Architect Expert) でアーキテクト視点での IaC 戦略選定 (Bicep vs ARM vs Terraform)。新規 Azure プロジェクトのデファクトスタンダードである Bicep の理解は、Azure を扱うすべてのエンジニアにとって必須スキルです。
関連記事・技術深掘り
Azure Bicep チュートリアル|ARM 後継 IaC の基本構文・モジュール化・What-If・CI/CD 統合【2026 年版】
Azure 純正 IaC ツール Bicep の完全チュートリアル。ARM JSON との違い・基本構文 (param/var/resource/module/output)・モジュール化ベストプラクティス・What-If デプロイ・GitHub Actions / Azure Pipelines 統合・ARM からの移行手順・関連認定試験 (AZ-104 / AZ-204 / AZ-400 / AZ-305) を日本語で網羅。
Azure DevOps エンジニア キャリアロードマップ|AZ-104 → AZ-400 → SC-100 シニア DevOps への道【2026 年版】
Azure DevOps Engineer になるための認定取得ロードマップ完全版。AZ-900 → AZ-104 → AZ-400 の王道ルート、GitHub と Azure DevOps の両方を扱う AZ-400 の構成、Kubernetes 認定 (CKA / CKAD / CKS) との二刀流、IaC (Bicep / Terraform) 戦略、年収レンジまで日本語で網羅。
Azure Architect キャリアロードマップ|AZ-900 → AZ-305 → SC-100 シニアアーキテクトへの道【2026 年版】
Azure Solutions Architect になるための認定取得ロードマップ完全版。AZ-900 → AZ-104 → AZ-305 の王道ルート、AZ-400 / SC-100 / AZ-700 との二刀流 / 三刀流戦略、マルチクラウド対応 (AWS / GCP)、未経験から 7-12 ヶ月の学習プラン、年収レンジまで日本語で網羅。
AZ-104 完全ガイド|Microsoft Azure Administrator Associate 出題範囲・学習リソース・合格戦略【2026 年版】
Microsoft Certified: Azure Administrator Associate (AZ-104) の完全ガイド。5 ドメイン (ID・ガバナンス / Storage / Compute / Network / Monitor) の出題範囲、必須実機演習、3-4 ヶ月の合格ロードマップ、AZ-305 / AZ-400 へのキャリアパス、renewal assessment 更新法を日本語で網羅。
本記事の技術情報は Azure Bicep Documentation に基づいています。 本記事は Microsoft Corporation の公式商品ではなく、いかなる提携・後援関係もありません。 Microsoft、Azure は Microsoft group of companies の商標です。 情報は 2026 年 5 月 24 日時点の公式公開資料に基づきます。最新情報は必ず公式ページをご確認ください。
NicheeLab編集部
データエンジニアリング・クラウド資格の専門家。Databricks・Snowflake等の認定資格を保有し、実務経験に基づいた問題作成・解説を行っています。NicheeLab運営。
AZ-900 完全ガイド|Microsoft Azure Fundamentals 出題範囲・学習リソース・合格戦略
Microsoft Azure Fundamentals (AZ-900) の 2026 年 1 月 14 日改訂版に対...
Azure 認定資格ロードマップ 2026 完全版|全 26 試験の体系と大型再編 (AI-901/AI-103/SC-500)
Microsoft Azure 認定資格 全 26 試験 (現行 23 + 退役 3) の 2026 年版ロードマップ。...
AI-901 完全ガイド|Azure AI Fundamentals 新試験
Microsoft Certified: Azure AI Fundamentals (AI-901) の出題範囲・Mi...
Microsoft Entra ID 入門|旧 Azure AD から学ぶ ID 管理 (AZ-900/SC-900/AZ-104 必須知識)
Microsoft Entra ID (旧 Azure Active Directory) の入門解説。2023 年 7...
DP-900 完全ガイド|Azure Data Fundamentals 出題範囲・学習リソース・合格戦略
Microsoft Azure Data Fundamentals (DP-900) の完全ガイド。4 ドメインの出題範...