適用対象: ✔️ Linux VM ✔️ フレキシブルなスケール セット
Azure VM Image Builder (AIB) は、サブスクリプションのステージング リソース グループに Azure Container Instance (ACI) をデプロイします。 ACI は、 Azure 仮想ネットワーク (VNet) 内のサブネットに関連付けられている必要があります。 ACI で実行されている AIB サービス コードは、ステージング リソース グループにビルド仮想マシン (ビルド VM) をデプロイしてイメージをカスタマイズし、ビルド VM を別のサブネットに配置する必要があります。 イメージをカスタマイズして検証するには、ACI にビルド VM へのネットワーク接続が必要です。 ネットワーク要件と組織のポリシーに基づいて、さまざまなネットワーク トポロジを使用するように AIB を構成できます。 両方のサブネット、1 つのサブネット、またはサブネットなしを選択できます。 推奨事項については、 Azure VM Image Builder のベスト プラクティスに関するページを参照してください。
ネットワーク トポロジ
独自のビルド VM サブネットまたは ACI サブネットを持ち込まない
- このトポロジを選択するには、イメージ テンプレートで
vnetConfigフィールドを指定しないか、フィールドを指定しますが、サブフィールドsubnetIdおよびcontainerInstanceSubnetIdを指定しません。 - サブネットを指定しない場合、AIB は、Azure コンテナー インスタンス用とビルド VM 用の 2 つのサブネットを持つ Azure 仮想ネットワーク (VNet) をステージング リソース グループにデプロイします。 どちらのサブネットも、既定の規則を含む ネットワーク セキュリティ グループ (NSG) に関連付けられますが、カスタマイズに必要な直接の見通し線接続は引き続き許可されます。 また、ビルド VM は 、ネットワーク インターフェイス リソース (およびマネージド ディスクなど、ネットワークに直接関連しないその他のリソース) と共にデプロイされます。 ビルドが完了すると、ビルド VM とネットワーク リソースが削除されます。
独自のビルド VM サブネットを持ち込み、独自の ACI サブネットを持ち込む
- このトポロジを選択するには、イメージ テンプレートの
vnetConfigとsubnetIdサブフィールドを含むcontainerInstanceSubnetIdフィールドを指定します。 このオプション (containerInstanceSubnetIdサブフィールドを含む) は、API バージョン 2024-02-01 以降で使用できます。 このトポロジを使用するように既存のテンプレートを更新することもできます。 - このトポロジでは、AIB は、指定したビルド VM サブネットにビルド VM をデプロイし、ACI を指定した ACI サブネットにデプロイします。 サブネットは既に提供されているため、AIB は仮想ネットワーク、サブネット、またはネットワーク セキュリティ グループをデプロイしません。 このトポロジは、クォータ制限またはポリシーによってこれらのリソースのデプロイが妨げる場合に便利です。 ビルド VM は、仮想ネットワークから到達可能なリソースにアクセスできます。また、他の仮想ネットワークに接続されていないサイロ化された仮想ネットワークを作成することもできます。 ACI サブネットは、分離イメージ ビルドの前提条件を満たす必要があります。 これらのフィールドの詳細については、テンプレート リファレンスを 参照してください。
- このトポロジは、両方のサブネットを完全に制御し、セットアップとネットワーク構成を簡素化し、全体的な展開コストを削減し、ネットワークを組織のセキュリティとガバナンスの要件に合わせるのに役立つため、ほとんどのシナリオで推奨されるオプションです。
独自のビルド VM サブネットを持ち込むが、独自の ACI サブネットは持ち込まない
- このトポロジを選択するには、イメージ テンプレートの
vnetConfigサブフィールドを省略しながら、subnetIdサブフィールドを持つcontainerInstanceSubnetIdフィールドを指定します。 - このトポロジでは、AIB は、それぞれネットワーク セキュリティ グループ (NSG) に関連付けられた 2 つのサブネットを持つ一時的な仮想ネットワークをステージング リソース グループにデプロイします。 一方のサブネットは ACI をホストし、もう 1 つはプライベート エンドポイント リソースをホストします。 ビルド VM は、指定したサブネットにデプロイされます。 ACI サブネットとビルド VM サブネットの間の通信を有効にするために、AIB では、プライベート エンドポイント、Private Link Service、Azure Load Balancer、ネットワーク インターフェイス、プロキシ仮想マシンを含む、Private Link ベースの通信パスもステージング リソース グループにデプロイされます。 正確なリソースと構成は、Windows イメージと Linux イメージのどちらをカスタマイズするかによって若干異なります。
- 通常、このトポロジは、デプロイ コストの増加、セットアップと運用の構成の増加、およびエンド ツー エンド パイプラインの障害に対する機密性を高めることができる追加のコンポーネントを導入する可能性があるため、ほとんどのシナリオでは推奨されません。
このトポロジの例については、次の記事を参照してください。
- Windows VM の Azure VM Image Builder を使用して、既存の Azure 仮想ネットワークへのアクセスを許可する
- Linux VM の Azure VM Image Builder を使用して、既存の Azure 仮想ネットワークへのアクセスを許可する
Azure Private Link とは
Azure Private Link は、仮想ネットワークから Azure のサービスとしてのプラットフォーム (PaaS)、または顧客所有、または Microsoft パートナー サービスにプライベート接続を提供します。 パブリック インターネットへのデータ公開を排除することで、ネットワーク アーキテクチャが簡素化され、Azure エンドポイント間の接続がセキュリティで保護されます。 Private Link には、指定された仮想ネットワークとサブネットからの IP アドレスが必要です。 現在、Azure はこれらの IP アドレスのネットワーク ポリシーをサポートしていないため、サブネットのネットワーク ポリシーを無効にする必要があります。 詳細については、「Private Link のドキュメント」をご覧ください。
プロキシ VM をデプロイする理由は?
パブリック IP のない VM が内部ロード バランサーの背後にある場合、インターネット にアクセスできません。 仮想ネットワークに使用されるロード バランサーは内部ロード バランサーです。 プロキシ VM はビルド中にビルド VM のインターネット アクセスを許可し、AIB はプロキシ VM を使用してサービスとビルド VM の間でコマンドを送信します。 関連付けられているネットワーク セキュリティ グループを使用して、ビルド VM のアクセスを制限できます。 ACI からのトラフィックは、プライベート リンクを経由してロード バランサーに送信されます。 ロード バランサーは、Linux の場合はポート 60001、Windows の場合はポート 60000 でプロキシ VM と通信します。 プロキシは、Linux の場合はポート 22 のビルド VM、Windows の場合はポート 5986 にコマンドを転送します。 既定では、デプロイされたプロキシ VM のサイズは Standard A1_v2ですが、サイズは変更できます。 詳細については、 テンプレート リファレンスを参照してください。
仮想ネットワークを使用するためのチェックリスト
- Azure Load Balancer がネットワーク セキュリティ グループ内のプロキシ VM と通信できるようにします。
- サブネットでプライベート サービス ポリシーを無効にします。
- VM Image Builder でロード バランサーを作成し、仮想ネットワークに VM を追加できるようにします。
- VM Image Builder にソース イメージの読み取りと書き込みや、イメージの作成を許可します。
- VM Image Builder サービス リージョンと同じリージョンで仮想ネットワークを使用していることを確認します。
その他の考慮事項
既存の仮想ネットワークに必要なアクセス許可
VM Image Builder には、既存の仮想ネットワークを使用するための特定のアクセス許可が必要です。 詳細については、「Azure CLI を使用して Azure VM Image Builder のアクセス許可を構成する」または「PowerShell を使用して Azure VM Image Builder のアクセス許可を構成する」をご覧ください。
注意
仮想ネットワークは、VM Image Builder サービス リージョンと同じリージョンである必要があります。
重要
Azure VM Image Builder サービスは、既定の HTTP ポート 5985 ではなく、ポート 5986 で HTTPS を使用するように、すべての Windows ビルドの WinRM 接続構成を変更します。 この構成の変更は、WinRM 通信に依存するワークフローに影響を与える可能性があります。
接続モデル
AIB は直接接続用のパブリック IP をデプロイせず、プラットフォーム サブスクリプションで実行される AIB サービス コンポーネントは、ACI またはビルド VM へのネットワーク接続を持っていません。 カスタマイズを実行するためにビルド VM に接続できるのは、ACI で実行されている AIB コンポーネントだけです。
サポートされているサブネットの組み合わせ
サブネット (subnetId と containerInstanceSubnetId) の両方を構成することも、ビルド VM サブネット (subnetId) のみを構成することもできます。 ACI サブネット (containerInstanceSubnetId) のみを指定する構成はサポートされていません。