ウェブエンジニア問題集
第13章

Azureの管理・デプロイツール — ポータル・CLI・ARMテンプレートとIaC

8
この章の目次開く

Azureのリソースを作る・設定する・削除する——その操作手段は1つではありません。ブラウザでポチポチやる方法から、コードで環境まるごと再現する方法まで、用途に応じた複数の入口 が用意されています。

この章では、Azure Portal・Cloud Shell・CLI/PowerShell という操作ツールと、Azure Arc、そして Infrastructure as Code(IaC)とARMテンプレート を整理します。

学習者学習者

正直、画面(ポータル)で全部できるなら、コマンドとかテンプレートって覚える必要あるのかな…?

先生先生

1回きりの操作ならポータルで十分です。でも「同じ環境を10個作る」「毎週同じ設定変更をする」となった瞬間、手作業は 遅くて、ミスる 手段になります。繰り返すなら自動化(コード) ——これがこの章の背骨です。


操作ツールの全体像

まず、Azureを操作する主なツールを一覧します。

ツール形態向いている場面
Azure PortalブラウザのGUI学習、単発の操作、状態の目視確認
Azure CLIコマンドライン(azコマンド)スクリプト化、Bash使いの自動化
Azure PowerShellPowerShellコマンドレット(New-AzVMなど)Windows/PowerShell環境の自動化
Azure Cloud Shellブラウザ内のシェル環境インストール不要でCLI/PowerShellを使う
Azure Mobile Appスマホアプリ外出先での状態確認・簡易操作

Azure Portal — すべての入口

Azure Portal はブラウザで使うGUIの管理画面です。リソースの作成から監視・課金の確認まで、Azureのほぼすべての機能にアクセスできます。学習ではまずポータルで「何がどこにあるか」を掴むのがおすすめです。

Azure CLIとAzure PowerShell — 自動化の道具

どちらも コマンドでAzureを操作する ツールで、機能的にはほぼ等価です。違いは文化圏です。

# Azure CLI (Bash風。LinuxやmacOSのエンジニアに馴染む)
az vm create --name myVM --resource-group myRG --image Ubuntu2204
bash
# Azure PowerShell (コマンドレット形式。Windows管理者に馴染む)
New-AzVM -Name myVM -ResourceGroupName myRG -Image Ubuntu2204
powershell

試験では「どちらが正しいか」ではなく、「スクリプトによる繰り返し操作にはCLI/PowerShellが適する」というレベルで問われます。

Azure Cloud Shell — インストール不要のシェル

Cloud Shell は、ブラウザ(ポータル内)から使えるシェル環境です。Azure CLIもAzure PowerShellも最初から入っており、手元のPCに何もインストールせずにコマンド操作ができます。「会社の共用PCからコマンドを実行したい」ようなシナリオの答えです。


Azure Arc — Azureの管理をAzureの外へ広げる

ブーメランを投げる女性のイラスト

ここまでのツールは「Azure上のリソース」を管理するものでした。では、オンプレミスのサーバーや他社クラウド(AWSなど)のリソース はどうでしょうか。

Azure Arcは、Azureの外にあるサーバーやKubernetesクラスターをAzureポータルに「登録」し、Azureリソースと同じ流儀で管理できるようにするサービス です。

  • オンプレのサーバーにAzure PolicyやRBACを適用する
  • AWS上のサーバーもAzureポータルで一覧・監視する
  • ハイブリッド/マルチクラウド環境の管理を一元化する

第2章のハイブリッドクラウドを「管理面」から支える存在で、試験では「オンプレミスや他社クラウドのリソースをAzureから一元管理したい → Azure Arc」の一対一対応で出題されます。


Infrastructure as Code — 環境をコードで作る

いよいよこの章の本丸、Infrastructure as Code (IaC) です。

IaCとは、インフラの構成をコード(定義ファイル)として書き、そのコードから環境を自動構築する 手法です。手作業のポータル操作と比べて、こんな利点があります。

  • 再現性 — 同じコードからは、何度実行しても同じ環境ができる(手作業の「設定漏れ」がない)
  • バージョン管理 — コードなのでGitで履歴管理・レビューができる
  • スピード — 開発・検証・本番の3環境を数分で複製できる

宣言型と命令型

IaCの書き方には2つの流儀があります。

命令型 (Imperative)宣言型 (Declarative)
書くこと手順(まずRGを作り、次にVMを…)あるべき最終形(VMが2台ある状態)
CLI/PowerShellのスクリプトARMテンプレート、Bicep
差分の扱い手順の管理は自分でツールが現状との差分を計算して調整

ARMテンプレートとBicep

Azureの宣言型IaCの中核が ARMテンプレート(Azure Resource Managerテンプレート) です。JSONで「あるべきリソース構成」を記述し、Azureに渡すと、Azure Resource Manager がその通りに環境を作ります。

ポイントは、ポータルもCLIもテンプレートも、すべての操作は最終的にAzure Resource Manager(ARM)を経由する ことです。ARMはAzureのデプロイと管理の「一枚岩の受付係」で、だからこそどのツールから操作しても同じ結果になります。


ポータルで試してみよう — Cloud Shellで最初のコマンド

この章で学んだ「同じ操作を別のツールで」を、Cloud Shellで体験してみましょう。

  1. ポータル画面 右上のターミナルアイコン(>_) をクリックしてCloud Shellを開く
  2. 初回はセットアップを求められる。ストレージアカウント不要の一時セッション を選べばすぐ始められる(ストレージをマウントする方式を選ぶと、少額のストレージ課金が発生する点に注意)
  3. BashまたはPowerShellを選び、次のコマンドを実行してみる
# 自分のサブスクリプションを確認
az account show --output table
 
# リソースグループの一覧(第5章で作ったものが見えるはず)
az group list --output table
bash

ポータルの画面で見ていたリソースグループが、コマンドの出力にも同じように現れます。「どのツールから操作しても最終的にARMを経由するから結果は同じ」という本文の話を、目で確認できる瞬間です。


まとめ

  • 操作の使い分けは 単発・目視ならPortal、繰り返し・自動化ならCLI/PowerShell、環境ごと再現ならIaC
  • Cloud Shell はブラウザだけでCLI/PowerShellが使えるインストール不要のシェル
  • Azure Arc はオンプレ・他社クラウドのリソースをAzureの流儀で一元管理する
  • IaC は再現性・バージョン管理・スピードをもたらす。ARMテンプレート/Bicepは宣言型(あるべき最終形を書く)
  • どのツールの操作も最終的に Azure Resource Manager を経由する

次はいよいよ最終章。デプロイした環境が健康に動いているかを見守る 監視ツール(Azure Monitor・Advisor・Service Health)です。