Azure VM Image Builder の概要

適用対象: ✔️ Linux VM ✔️ Windows VM ✔️ フレキシブル スケール セット ✔️ 均一スケール セット

標準化された仮想マシン (VM) イメージを使用することで、組織はより簡単にクラウドに移行でき、デプロイの一貫性を確保できます。 通常、イメージには、事前に定義されたセキュリティと構成設定と、必要なソフトウェアが含まれています。 独自のイメージング パイプラインを設定するには、時間、インフラストラクチャ、およびその他の詳細が必要です。 Azure VM Image Builder では、イメージを記述した構成を作成し、イメージを構築して配布するサービスにそれを送信するだけで済みます。

VM Image Builder では、既存のスクリプト、コマンド、およびプロセスを引き続き使用しながら、既存のイメージ カスタマイズ パイプラインを Azure に移行することができます。 イメージの作成後に VM がワークロードを引き受けることができるように、コア アプリケーションを VM イメージに統合できます。 また、構成を追加して、Azure Virtual Desktop 用に、Azure Stack で使うための仮想ハード ディスク (VHD) として、またはエクスポートを容易にするために、イメージをビルドすることさえできます。

VM Image Builder では、Windows または Linux イメージから始めることができます。また、Azure Marketplace または既存のカスタム イメージから開始し、独自のカスタマイズを追加することもできます。 Azure Compute Gallery (旧称 Shared Image Gallery) では、イメージのホスト先として、生成されるマネージド イメージまたは VHD を指定することもできます。

機能

カスタム VM イメージは手動または他のツールで作成できますが、プロセスは煩雑で信頼性が低いことがあります。 VM Image Builder は HashiCorp Packer に基づいて構築されているため、マネージド サービス固有のメリットがあります。

簡便性

VM イメージの作成の複雑さを軽減するために、VM Image Builder は次のことを実現します。

  • VM イメージを作成するための複雑なツール、プロセス、手動の手順を使用する必要がなくなります。 VM Image Builder は、これらすべての詳細を抽象化し、イメージの一般化の必要性 (Sysprep) などの Azure 固有の要件を隠します。 また、高度なスキルを持つユーザーにこのような要件をオーバーライドする機能を提供します。

  • 既存のイメージ ビルド パイプラインと統合すれば、クリックアンドゴー操作を行うことができます。 これを行うために、パイプラインから VM Image Builder を呼び出すか、Azure VM Image Builder サービス DevOps タスク (プレビュー) を使用することができます。

  • さまざまなソースからカスタマイズ データをフェッチできるため、すべてを 1 か所から収集する必要がなくなります。

  • コンピューティング ギャラリーと統合できます。これにより、イメージをグローバルに配布、レプリケート、バージョン管理、スケーリングするためのイメージ管理システムを作成します。 また、同じ結果のイメージを VHD として、または最初から再構築せずに 1 つ以上の管理対象イメージとして配布することもできます。

コードとしてのインフラストラクチャ

VM Image Builder を使用すると、長期的なインフラストラクチャ (カスタマイズ データを保持するストレージ アカウントなど) や一時的なインフラストラクチャ (イメージをビルドするための一時的な VM など) を管理する必要がありません。

VM Image Builder では、VM イメージ ビルド成果物が Azure リソースとして保存されます。 この機能により、オフライン定義の維の必要性と、誤って削除または更新された場合に発生する環境ドリフトのリスクの両方が解消されます。

Security

イメージをセキュリティで保護するために、VM Image Builder は次のことを実現します。

  • ベースライン イメージ (つまり、最低限のセキュリティと会社の構成) を作成し、他の部門がそれらをさらにカスタマイズできるようにします。 これらのイメージは、VM Image Builder を使用して、最新のパッチが適用されたバージョンのソース イメージを使用してゴールデン イメージをすばやく再構築することにより、安全にコンプライアンスを維持できます。 VM Image Builder では、Azure Windows のセキュリティ ベースラインを満たすイメージも簡単に作成できます。 詳細については、「VM Image Builder - Windows ベースライン テンプレート」を参照してください。

  • カスタマイズ成果物を公的にアクセス可能にすることなくフェッチできます。 VM Image Builder は、Azure Managed Identityを使用してこれらのリソースを取得でき、Azure ロールベースのアクセス制御 (Azure RBAC) を使用してこの ID の権限を必要に応じて厳しく制限することができます。 成果物の機密性を維持し、承認されていないアクターによる改ざんを防ぐことができます。

  • カスタマイズ成果物のコピー、一時的なコンピューティングおよびストレージ リソース、およびそれらの結果のイメージはすべて、Azure RBAC によってアクセスが制御されるので、サブスクリプション内に安全に格納されます。 このレベルのセキュリティは、カスタマイズされたイメージの作成に使用されるビルド VM にも適用されます。これは、カスタマイズのスクリプトとファイルが不明なサブスクリプション内の不明な VM にコピーされるのを防ぐために役立ちます。 さらに、ビルド VM に分離された VM のプランを使用することで、他のお客様のワークロードからの高度な分離を実現することもできます。

  • VM Image Builder を既存の仮想ネットワークに接続し、DSC (Desired State Configuration) プル サーバー、Chef、Puppet、ファイル共有、その他のルーティング可能なサーバーやサービスなどの既存の構成サーバーと通信できるようにすることができます。

  • VM Image Builder ビルド VM (これはサブスクリプション内に VM Image Builder サービスによって作成され、イメージのビルドとカスタマイズに使用される VM です) にユーザー割り当て ID を割り当てるように構成することができます。 その後、カスタマイズ時にこれらの ID を使用して、サブスクリプション内のシークレットを含む Azure リソースにアクセスできます。 これらのリソースに直接アクセスするために、VM Image Builder を割り当てる必要はありません。

リージョン

VM Image Builder サービスは、次のリージョンで利用できます。

Note

これらのリージョンの外部にイメージを配布することもできます。

  • 米国東部
  • 米国東部 2
  • 米国中西部
  • 米国西部
  • 米国西部 2
  • 米国西部 3
  • 米国中南部
  • 北ヨーロッパ
  • 西ヨーロッパ
  • 東南アジア
  • オーストラリア南東部
  • オーストラリア東部
  • 英国南部
  • 英国西部
  • ブラジル南部
  • カナダ中部
  • インド中部
  • 米国中部
  • フランス中部
  • ドイツ中西部
  • 東日本
  • 米国中北部
  • ノルウェー東部
  • スイス北部
  • JIO インド西部
  • アラブ首長国連邦北部
  • 東アジア
  • 韓国中部
  • 南アフリカ北部
  • カタール中部
  • USGov アリゾナ (パブリック プレビュー)
  • USGov バージニア (パブリック プレビュー)
  • 中国北部 3 (パブリック プレビュー)
  • スウェーデン中部
  • ポーランド中部
  • イタリア北部
  • イスラエル中部

Fairfax リージョン (USGov アリゾナおよび USGov バージニア) で Azure Image Builder パブリック プレビューにアクセスするには、Microsoft.VirtualMachineImages/FairfaxPublicPreview 機能を登録する必要があります。 これを行うには、PowerShell または Azure CLI のどちらかで次のコマンドを実行します。

Register-AzProviderPreviewFeature -ProviderNamespace Microsoft.VirtualMachineImages -Name FairfaxPublicPreview

中国北部 3 リージョンで Azure VM Image Builder パブリック プレビューにアクセスするには、Microsoft.VirtualMachineImages/MooncakePublicPreview 機能を登録する必要があります。 これを行うには、PowerShell または Azure CLI のどちらかで次のコマンドを実行します。

Register-AzProviderPreviewFeature -ProviderNamespace Microsoft.VirtualMachineImages -Name MooncakePublicPreview

OS のサポート

VM Image Builder は、すべてのAzure Marketplace 基本オペレーティング システム イメージを操作するように設計されています。

Note

2023 年 3 月以降、ポータル内で Azure Image Builder サービスを使用できるようになりました。 ポータル内でカスタム イメージのビルドと検証を開始しましょう。

機密 VM とトラステッド起動のサポート

VM Image Builder では、TrustedLaunchSupported イメージと ConfidentialVMSupported イメージのサポートが拡張されており、特定の制約があります。 制約の一覧を次に示します:

SecurityType サポートの状態
TrustedLaunchSupported イメージ ビルドのソース イメージとしてのサポート
ConfidentialVMSupported イメージ ビルドのソース イメージとしてのサポート
TrustedLaunch ソース イメージとしてサポートされていません
ConfidentialVM ソース イメージとしてサポートされていません

Note

TrustedLaunchSupported イメージを使用する場合は、ソースと配布の両方がサポートされるためには TrustedLaunchSupported である必要があります。 ソースが正常で、配布が TrustedLaunchSupported の場合、またはソースが TrustedLaunchSupported で、配布が通常の Gen2 である場合は、サポートされません。

しくみ

VM Image Builder は、Azure リソース プロバイダーがアクセスできるフル マネージド Azure サービスです。 リソース プロバイダーは、ソース イメージ、実行するカスタマイズ、および新しいイメージを配布する場所を指定することで、そのサービスを構成します。 次の図にワークフローの概要を示します。

AIB の概念的概要の図

テンプレート構成を渡すには、Azure PowerShell、Azure CLI、または Azure Resource Manager テンプレートを使用するか、VM Image Builder DevOps タスクを使用します。 構成をサービスに送信すると、Azure によってイメージ テンプレート リソースが作成されます。 イメージ テンプレートのリソースが作成されると、ステージング リソース グループが、IT_\<DestinationResourceGroup>_\<TemplateName>_\(GUID) の形式でサブスクリプションに作成されます。 ステージング リソース グループには、ScriptURI プロパティの File、Shell、PowerShell カスタマイズで参照されるファイルとスクリプトが含まれています。

ビルドを実行するには、VM Image Builder テンプレート リソースで Run を呼び出します。 その後、サービスは、VM、ネットワーク、ディスク、ネットワーク アダプターなどのビルド用の追加リソースをデプロイします。

既存の仮想ネットワークを使用せずにイメージをビルドする場合、VM Image Builder は、パブリック IP とネットワーク セキュリティ グループもデプロイし、Secure Shell (SSH) または Windows リモート管理 (WinRM) プロトコルを使用してビルド VM に接続します。

既存の仮想ネットワークを選択した場合、サービスは Azure Private Link 経由でデプロイされ、パブリック IP アドレスは必要ありません。 詳細については、VM Image Builder のネットワークの概要に関するページをご覧ください。

ビルドが完了すると、ステージング リソース グループとストレージ アカウントを除くすべてのリソースが削除されます。 イメージ テンプレート リソースを削除することでそれらを削除することも、ビルドを再度実行するためにその場所に残しておくこともできます。

複数の例、ステップ バイ ステップ ガイド、構成テンプレート、およびソリューションについては、VM Image Builder GitHub リポジトリにアクセスしてください。

移動のサポート

イメージ テンプレートのリソースは変更不可であり、リソースとステージング リソース グループへのリンクが含まれています。 そのため、このリソースの種類は移動に対応していません。

イメージ テンプレート リソースを移動する場合は、構成テンプレートのコピーがあることを確認します。コピーがない場合は、リソースから既存の構成を抽出します。 次に、新しい名前で新しいリソース グループに新しいイメージ テンプレート リソースを作成し、前のイメージ テンプレート リソースを削除します。

アクセス許可

VM Image Builder サービスに登録するときに、IT_* プレフィックスが付けられたステージング リソース グループを作成、管理、削除するためのアクセス許可をサービスに付与します。 また、イメージ ビルドに必要な任意のリソースにそのグループを追加する権限があります。 これは、VM Image Builder サービス プリンシパル名が、正常に登録された後にサブスクリプションで使用できるようになるために発生します。

VM Image Builder で、マネージド イメージまたは Compute Gallery にイメージを配布できるようにするには、イメージの読み取りと書き込みのアクセス許可を持つ Azure ユーザー割り当て ID を作成する必要があります。 Azure Storage にアクセスする場合は、プライベートおよびパブリック コンテナーを読み取るためのアクセス許可が必要です。

API バージョン 2021-10-01 以降、VM Image Builder では、Azure ユーザー割り当て ID をビルド VM に追加して、サブスクリプション内の Azure Key Vault のようなサービスで認証する必要があるシナリオを有効にできます。

権限の詳細については、以下を参照してください。

コスト

VM Image Builder を使用してイメージを作成、ビルド、保存するときには、コンピューティング、ネットワーク、ストレージのある程度のコストが発生します。 これらのコストは、カスタム イメージを手動で作成するときに発生するコストと似ています。 リソースは Azure のレートで課金されます。

Note

現時点では、Azure Image Builder サービスでは Windows Server 向けの Azure ハイブリッド特典をサポートしていません。

イメージ作成プロセス中に、ファイルがダウンロードされ、IT_<DestinationResourceGroup>_<TemplateName> リソース グループに格納されます。これにより、小額のストレージ コストが発生します。 これらのファイルを保持しない場合は、イメージをビルドした後にイメージ テンプレートを削除します。

VM Image Builder は、VM に必要なストレージ、ネットワークとともに、Gen1 イメージには既定の Standard_D1_v2 VM サイズ、Gen2 イメージには Standard_D2ds_v4 を使用して VM を作成します。 これらのリソースは、構築プロセスの間は存続し、VM Image Builder のイメージ作成が終了すると削除されます。

VM Image Builder によって、選択したリージョンにイメージが配布されます。これにより、ネットワークのエグレス料金が発生する可能性があります。

Hyper-V の世代

現在 VM Image Builder では、Hyper-V ジェネレーション 1 (Gen1) およびジェネレーション 2 (Gen2) のイメージをマネージド イメージまたは VHD として Compute Gallery に作成できます。 配布されたイメージは常に、提供されたイメージと同じ世代になることに注意してください。

Gen2 イメージの場合、正しい TLS を使用していることを確認してください。 たとえば、Ubuntu Server 18.04 Gen2 イメージの SKU は 18_04-lts-gen2 になります。 Ubuntu Server 18.04 Gen1 イメージの SKU は 18.04-lts になります。

イメージの発行元を基にして SKU を見つける方法を次に示します。

# Find all Gen2 SKUs published by Microsoft Windows Desktop
az vm image list --publisher MicrosoftWindowsDesktop --sku g2 --output table --all

# Find all Gen2 SKUs published by Canonical
az vm image list --publisher Canonical --sku gen2 --output table --all

Gen2 をサポートする Azure VM イメージの詳細については、「Azure Marketplace での Gen2 VM イメージに関するページを参照してください。

次のステップ

VM Image Builder を試すには、Linux または Windows イメージの構築に関する記事を参照してください。