ARM テンプレートを使用してサイトを作成する
Azure Private 5G Core プライベート モバイル ネットワークには、1 つまたは複数のサイトが含まれます。 各サイトは、パケット コア インスタンスをホストする Azure Stack Edge デバイスを含む物理的なエンタープライズの場所 (Contoso Corporation のシカゴ工場など) を表します。 このハウツー ガイドでは、Azure Resource Manager テンプレート (ARM テンプレート) を使用してプライベート モバイル ネットワークにサイトを作成する方法について説明します。
Azure Resource Manager テンプレートは JavaScript Object Notation (JSON) ファイルであり、プロジェクトのインフラストラクチャと構成が定義されています。 このテンプレートでは、宣言型の構文が使用されています。 デプロイしようとしているものを、デプロイを作成する一連のプログラミング コマンドを記述しなくても記述できます。
環境が前提条件を満たしていて、ARM テンプレートの使用に慣れている場合は、 [Azure へのデプロイ] ボタンを選択します。 Azure portal でテンプレートが開きます。
前提条件
- 新しいサイトのために「プライベート モバイル ネットワークをデプロイするために前提となるタスクを完了する」の手順を実行します。
- Azure Stack Edge Pro デバイスのポート 5 と 6 に対応するインターフェイスの名前を識別します。
- Azure Stack Edge Pro デバイスのポート 3 と 4 に対応するインターフェイスの名前を識別します。
- 「サイトに必要な情報を収集する」のすべての情報を収集します。
- プライベート モバイル ネットワークの作成に使用したアクティブなサブスクリプションへのアクセス権を持つアカウントを使用して、Azure portal にサインインできることを確認します。 このアカウントには、サブスクリプション スコープでの組み込み共同作成者または所有者ロールが必要です。
- 新しいサイトで 4G のユーザー機器 (UE) がサポートされる場合、スライス/サービスの種類 (SST) の値が 1 で、空のスライス差別化要因 (SD) を持つネットワーク スライスを作成しておく必要があります。
テンプレートを確認する
このハウツー ガイドで使用されているテンプレートは Azure クイックスタート テンプレートのものです。
{
"$schema": "https://schema.management.azure.com/schemas/2019-04-01/deploymentTemplate.json#",
"contentVersion": "1.0.0.0",
"metadata": {
"_generator": {
"name": "bicep",
"version": "0.28.1.47646",
"templateHash": "6727180129563671192"
}
},
"parameters": {
"location": {
"type": "string",
"metadata": {
"description": "Region where the mobile network will be deployed (must match the resource group region)"
}
},
"existingMobileNetworkName": {
"type": "string",
"metadata": {
"description": "Name of the mobile network to which you are adding a site"
}
},
"existingDataNetworkName": {
"type": "string",
"metadata": {
"description": "Name of the existing data network to which the mobile network connects"
}
},
"siteName": {
"type": "string",
"defaultValue": "myExampleSite",
"metadata": {
"description": "The name for the site"
}
},
"azureStackEdgeDevice": {
"type": "string",
"defaultValue": "",
"metadata": {
"description": "The resource ID of the Azure Stack Edge device to deploy to"
}
},
"controlPlaneAccessInterfaceName": {
"type": "string",
"defaultValue": "",
"metadata": {
"description": "The virtual network name on port 5 on your Azure Stack Edge Pro device corresponding to the control plane interface on the access network. For 5G, this interface is the N2 interface; for 4G, it's the S1-MME interface."
}
},
"controlPlaneAccessIpAddress": {
"type": "string",
"defaultValue": "",
"metadata": {
"description": "The IP address of the control plane interface on the access network. In 5G networks this is called the N2 interface whereas in 4G networks this is called the S1-MME interface."
}
},
"userPlaneAccessInterfaceName": {
"type": "string",
"defaultValue": "",
"metadata": {
"description": "The virtual network name on port 5 on your Azure Stack Edge Pro device corresponding to the user plane interface on the access network. For 5G, this interface is the N3 interface; for 4G, it's the S1-U interface."
}
},
"userPlaneDataInterfaceName": {
"type": "string",
"defaultValue": "",
"metadata": {
"description": "The virtual network name on port 6 on your Azure Stack Edge Pro device corresponding to the user plane interface on the data network. For 5G, this interface is the N6 interface; for 4G, it's the SGi interface."
}
},
"userEquipmentAddressPoolPrefix": {
"type": "string",
"defaultValue": "",
"metadata": {
"description": "The network address of the subnet from which dynamic IP addresses must be allocated to UEs, given in CIDR notation. Optional if userEquipmentStaticAddressPoolPrefix is specified. If both are specified, they must be the same size and not overlap."
}
},
"userEquipmentStaticAddressPoolPrefix": {
"type": "string",
"defaultValue": "",
"metadata": {
"description": "The network address of the subnet from which static IP addresses must be allocated to UEs, given in CIDR notation. Optional if userEquipmentAddressPoolPrefix is specified. If both are specified, they must be the same size and not overlap."
}
},
"coreNetworkTechnology": {
"type": "string",
"defaultValue": "5GC",
"allowedValues": [
"EPC",
"5GC",
"EPC + 5GC"
],
"metadata": {
"description": "The mode in which the packet core instance will run"
}
},
"naptEnabled": {
"type": "string",
"allowedValues": [
"Enabled",
"Disabled"
],
"metadata": {
"description": "Whether or not Network Address and Port Translation (NAPT) should be enabled for this data network"
}
},
"dnsAddresses": {
"type": "array",
"metadata": {
"description": "A list of DNS servers that UEs on this data network will use"
}
},
"customLocation": {
"type": "string",
"defaultValue": "",
"metadata": {
"description": "The resource ID of the custom location that targets the Azure Kubernetes Service on Azure Stack HCI (AKS-HCI) cluster on the Azure Stack Edge Pro device in the site. If this parameter is not specified, the packet core instance will be created but will not be deployed to an ASE. [Collect custom location information](https://docs.microsoft.com/en-gb/azure/private-5g-core/collect-required-information-for-a-site#collect-custom-location-information) explains which value to specify here."
}
},
"desiredState": {
"type": "string",
"defaultValue": "Uninstalled",
"metadata": {
"description": "The desired installation state"
}
},
"ueMtu": {
"type": "int",
"defaultValue": 1440,
"metadata": {
"description": "The MTU (in bytes) signaled to the UE. The same MTU is set on the user plane data links for all data networks. The MTU set on the user plane access link is calculated to be 60 bytes greater than this value to allow for GTP encapsulation. "
}
},
"allowSupportTelemetryAccess": {
"type": "bool",
"defaultValue": true,
"metadata": {
"description": "Provide consent for Microsoft to access non-PII telemetry information from the packet core."
}
}
},
"resources": [
{
"type": "Microsoft.MobileNetwork/packetCoreControlPlanes/packetCoreDataPlanes/attachedDataNetworks",
"apiVersion": "2024-04-01",
"name": "[format('{0}/{1}/{2}', parameters('siteName'), parameters('siteName'), parameters('existingDataNetworkName'))]",
"location": "[parameters('location')]",
"properties": {
"userPlaneDataInterface": {
"name": "[parameters('userPlaneDataInterfaceName')]"
},
"userEquipmentAddressPoolPrefix": "[if(empty(parameters('userEquipmentAddressPoolPrefix')), null(), createArray(parameters('userEquipmentAddressPoolPrefix')))]",
"userEquipmentStaticAddressPoolPrefix": "[if(empty(parameters('userEquipmentStaticAddressPoolPrefix')), null(), createArray(parameters('userEquipmentStaticAddressPoolPrefix')))]",
"naptConfiguration": {
"enabled": "[parameters('naptEnabled')]"
},
"dnsAddresses": "[parameters('dnsAddresses')]"
},
"dependsOn": [
"[resourceId('Microsoft.MobileNetwork/packetCoreControlPlanes/packetCoreDataPlanes', parameters('siteName'), parameters('siteName'))]"
]
},
{
"type": "Microsoft.MobileNetwork/packetCoreControlPlanes/packetCoreDataPlanes",
"apiVersion": "2024-04-01",
"name": "[format('{0}/{1}', parameters('siteName'), parameters('siteName'))]",
"location": "[parameters('location')]",
"properties": {
"userPlaneAccessInterface": {
"name": "[parameters('userPlaneAccessInterfaceName')]"
}
},
"dependsOn": [
"[resourceId('Microsoft.MobileNetwork/packetCoreControlPlanes', parameters('siteName'))]"
]
},
{
"type": "Microsoft.MobileNetwork/mobileNetworks/sites",
"apiVersion": "2024-04-01",
"name": "[format('{0}/{1}', parameters('existingMobileNetworkName'), parameters('siteName'))]",
"location": "[parameters('location')]"
},
{
"type": "Microsoft.MobileNetwork/packetCoreControlPlanes",
"apiVersion": "2024-04-01",
"name": "[parameters('siteName')]",
"location": "[parameters('location')]",
"properties": {
"sites": [
{
"id": "[resourceId('Microsoft.MobileNetwork/mobileNetworks/sites', parameters('existingMobileNetworkName'), parameters('siteName'))]"
}
],
"sku": "G0",
"localDiagnosticsAccess": {
"authenticationType": "Password"
},
"coreNetworkTechnology": "[parameters('coreNetworkTechnology')]",
"platform": {
"type": "AKS-HCI",
"customLocation": "[if(empty(parameters('customLocation')), null(), createObject('id', parameters('customLocation')))]",
"azureStackEdgeDevice": {
"id": "[parameters('azureStackEdgeDevice')]"
}
},
"controlPlaneAccessInterface": {
"ipv4Address": "[parameters('controlPlaneAccessIpAddress')]",
"name": "[parameters('controlPlaneAccessInterfaceName')]"
},
"installation": {
"desiredState": "[parameters('desiredState')]"
},
"ueMtu": "[parameters('ueMtu')]",
"userConsent": {
"allowSupportTelemetryAccess": "[parameters('allowSupportTelemetryAccess')]"
}
},
"dependsOn": [
"[resourceId('Microsoft.MobileNetwork/mobileNetworks/sites', parameters('existingMobileNetworkName'), parameters('siteName'))]"
]
}
]
}
このテンプレートには、次の 4 つの Azure リソースが定義されています。
- Microsoft.MobileNetwork/mobileNetworks/sites: サイト全体を表すリソース。
- Microsoft.MobileNetwork/packetCoreControlPlanes/packetCoreDataPlanes/attachedDataNetworks: データ ネットワークへのパケット コア インスタンスの接続の構成を提供するリソース。
- Microsoft.MobileNetwork/packetCoreControlPlanes/packetCoreDataPlanes: パケット コア インスタンスのユーザー プレーン ネットワーク機能の構成を提供するリソース (アクセス ネットワーク上のユーザー プレーン インターフェイスの IP 構成を含む)。
- Microsoft.MobileNetwork/packetCoreControlPlanes: パケット コア インスタンスのコントロール プレーン ネットワーク機能の構成を提供するリソース (アクセス ネットワーク上のコントロール プレーン インターフェイスの IP 構成を含む)。
テンプレートのデプロイ
「前提条件」で取得した情報を使用して、次の値を選択または入力します。
フィールド 値 サブスクリプション プライベート モバイル ネットワークの作成に使用する Azure サブスクリプションを選択します。 リソース グループ プライベート モバイル ネットワークを表すモバイル ネットワーク リソースを含むリソース グループを選択します。 リージョン プライベート モバイル ネットワークをデプロイしたリージョンを選択します。 場所 プライベート モバイル ネットワークをデプロイしたリージョンのコード名を入力します。 既存のモバイル ネットワーク名 プライベート モバイル ネットワークを表すモバイル ネットワーク リソースの名前を入力します。 既存のデータ ネットワーク名 データ ネットワークの名前を入力します。 この値は、データ ネットワークを作成するときに使用した名前に一致している必要があります。 サイト名 サイトの名前を入力します。 Azure Stack Edge デバイス サイト内の Azure Stack Edge リソースのリソース ID を入力します。 コントロール プレーン アクセス インターフェイス名 アクセス ネットワーク上のコントロール プレーン インターフェイスに対応する、Azure Stack Edge Pro GPU デバイスのポート 5 の仮想ネットワーク名を入力します。 5G の場合、このインターフェイスは N2 インターフェイスです。4G の場合は S1-MME インターフェイスです。4G と 5G を組み合わせる場合は、N2/S1-MME インターフェイスです。 コントロール プレーン アクセスの IP アドレス アクセス ネットワーク上のコントロール プレーン インターフェイスの IP アドレスを入力します。 ユーザー プレーン アクセス インターフェイス名 アクセス ネットワーク上のユーザー プレーン インターフェイスに対応する、Azure Stack Edge Pro GPU デバイスのポート 5 の仮想ネットワーク名を入力します。 5G の場合、このインターフェイスは N3 インターフェイスです。4G の場合は S1-U インターフェイスです。4G と 5G を組み合わせる場合は、N3/S1-U インターフェイスです。 ユーザー プレーン データ インターフェイス名 データ ネットワーク上のユーザー プレーン インターフェイスに対応する、Azure Stack Edge Pro GPU デバイスのポート 6 の仮想ネットワーク名を入力します。 5G の場合、このインターフェイスは N6 インターフェイスです。4G の場合は SGi インターフェイスです。4G と 5G を組み合わせる場合は、N6/SGi インターフェイスです。 ユーザー機器アドレス プールのプレフィックス UE に動的 IP アドレスを割り当てる必要があるサブネットのネットワーク アドレスを CIDR 表記で入力します。 動的 IP アドレスの割り当てをサポートしない場合は、これを省略できます。 ユーザー機器の静的アドレス プールのプレフィックス UE に静的 IP アドレスを割り当てる必要があるサブネットのネットワーク アドレスを CIDR 表記で入力します。 静的 IP アドレスの割り当てをサポートしない場合は、これを省略できます。 コア ネットワーク テクノロジ 5G の場合は「5GC」、4G の場合は「EPC」、4G と 5G を組み合わせる場合は「EPC + 5GC」と入力します。 Napt の有効化 データ ネットワークに対して NAPT (Network Address and Port Translation) を有効にするかどうかに応じて、このフィールドを設定します。 DNS アドレス DNS サーバーのアドレスを入力します。 これは、DNS 解決を実行するために UE が必要ない場合、またはネットワーク内のすべての UE で独自のローカルに構成された DNS サーバーを使用する場合にのみ省略することができます。 カスタムの場所 サイト内の Azure Stack Edge Pro デバイス上の Azure Kubernetes Service on Azure Stack HCI (AKS-HCI) クラスターをターゲットとするカスタムの場所のリソース ID を入力します。
「前提条件」で取得した情報を使用して、次の値を選択または入力します。
フィールド 値 サブスクリプション プライベート モバイル ネットワークの作成に使用する Azure サブスクリプションを選択します。 リソース グループ プライベート モバイル ネットワークを表すモバイル ネットワーク リソースを含むリソース グループを選択します。 リージョン プライベート モバイル ネットワークをデプロイしたリージョンを選択します。 場所 プライベート モバイル ネットワークをデプロイしたリージョンのコード名を入力します。 既存のモバイル ネットワーク名 プライベート モバイル ネットワークを表すモバイル ネットワーク リソースの名前を入力します。 既存のデータ ネットワーク名 データ ネットワークの名前を入力します。 この値は、データ ネットワークを作成するときに使用した名前に一致している必要があります。 サイト名 サイトの名前を入力します。 Azure Stack Edge デバイス サイト内の Azure Stack Edge リソースのリソース ID を入力します。 コントロール プレーン アクセス インターフェイス名 アクセス ネットワーク上のコントロール プレーン インターフェイスに対応する、Azure Stack Edge Pro 2 デバイスのポート 3 の仮想ネットワーク名を入力します。 5G の場合、このインターフェイスは N2 インターフェイスです。4G の場合は S1-MME インターフェイスです。4G と 5G を組み合わせる場合は、N2/S1-MME インターフェイスです。 コントロール プレーン アクセスの IP アドレス アクセス ネットワーク上のコントロール プレーン インターフェイスの IP アドレスを入力します。 ユーザー プレーン アクセス インターフェイス名 アクセス ネットワーク上のユーザー プレーン インターフェイスに対応する、Azure Stack Edge Pro 2 デバイスのポート 3 の仮想ネットワーク名を入力します。 5G の場合、このインターフェイスは N3 インターフェイスです。4G の場合は S1-U インターフェイスです。4G と 5G を組み合わせる場合は、N3/S1-U インターフェイスです。 ユーザー プレーン データ インターフェイス名 データ ネットワーク上のユーザー プレーン インターフェイスに対応する、Azure Stack Edge Pro 2 デバイスのポート 4 の仮想ネットワーク名を入力します。 5G の場合、このインターフェイスは N6 インターフェイスです。4G の場合は SGi インターフェイスです。4G と 5G を組み合わせる場合は、N6/SGi インターフェイスです。 ユーザー機器アドレス プールのプレフィックス UE に動的 IP アドレスを割り当てる必要があるサブネットのネットワーク アドレスを CIDR 表記で入力します。 動的 IP アドレスの割り当てをサポートしない場合は、これを省略できます。 ユーザー機器の静的アドレス プールのプレフィックス UE に静的 IP アドレスを割り当てる必要があるサブネットのネットワーク アドレスを CIDR 表記で入力します。 静的 IP アドレスの割り当てをサポートしない場合は、これを省略できます。 コア ネットワーク テクノロジ 5G の場合は「5GC」、4G の場合は「EPC」、4G と 5G を組み合わせる場合は「EPC + 5GC」と入力します。 Napt の有効化 データ ネットワークに対して NAPT (Network Address and Port Translation) を有効にするかどうかに応じて、このフィールドを設定します。 DNS アドレス DNS サーバーのアドレスを入力します。 これは、DNS 解決を実行するために UE が必要ない場合、またはネットワーク内のすべての UE で独自のローカルに構成された DNS サーバーを使用する場合にのみ省略することができます。 カスタムの場所 サイト内の Azure Stack Edge Pro デバイス上の Azure Kubernetes Service on Azure Stack HCI (AKS-HCI) クラスターをターゲットとするカスタムの場所のリソース ID を入力します。
[Review + create](レビュー + 作成) を選択します。
これで、入力した構成値が Azure によって検証されます。 値が検証に合格したことを示すメッセージが表示されます。
検証に失敗した場合、エラー メッセージが表示され、無効な構成が含まれる [構成] タブにフラグが付きます。 [確認と作成] タブに戻る前に、フラグが付加されたタブを選択し、エラー メッセージを使用して無効な構成を修正してください。
構成が検証されたら、[作成] を選択してサイトを作成できます。 サイトが作成されると、Azure portal で確認画面が表示されます。
デプロイされているリソースを確認する
確認画面で、[リソース グループに移動] を選択します。
リソース グループに次の新しいリソースが含まれていることを確認します。
- サイト全体を表すモバイル ネットワーク サイト リソース。
- サイト内のパケット コア インスタンスのコントロール プレーン機能を表すパケット コア コントロール プレーン リソース。
- サイト内のパケット コア インスタンスのデータ プレーン機能を表すパケット コア データ プレーン リソース。
- データ ネットワークのサイトのビューを表す接続されたデータ ネットワーク リソース。
次のステップ
ローカル監視アクセス用に Microsoft Entra ID を設定する場合は、「サイトのローカル アクセス構成を変更する」および「ローカル監視ツール用に Microsoft Entra ID を有効にする」の手順に従ってください。
これをまだ行っていない場合は、ここでプライベート モバイル ネットワークのポリシー コントロール構成を設計する必要があります。 これにより、パケット コア インスタンスがトラフィックにサービスの品質 (QoS) 特性を適用する方法をカスタマイズできます。 また、特定のフローをブロックまたは制限することもできます。 プライベート モバイル ネットワークのポリシー制御構成の設計の詳細については、「ポリシー制御」を参照してください。