この記事では、仮想ネットワーク内にゾーン冗長コンテナー アプリを作成する方法について説明します。 Azure Container Apps 環境を作成し、ゾーン冗長性のために有効にし、インフラストラクチャ サブネットを持つ新規または既存の仮想ネットワークを使用して構成します。
Container Apps がゾーン冗長をサポートする方法の詳細については、「 Container Apps の信頼性」を参照してください。
[前提条件]
ゾーンの冗長性は、Container Apps と可用性ゾーンをサポートするすべてのリージョンで使用できます。
可用性ゾーンをサポートするリージョンを確認するには、可用性 ゾーンがサポートされている Azure リージョンを参照してください。
Container Apps をサポートするリージョンについては、「 リージョン別の製品の可用性」を参照してください。
ゾーン冗長コンテナー アプリを作成する
Azure Portal、Azure CLI、または PowerShell を使用して、ゾーン冗長コンテナー アプリを作成します。
-
Azure ポータルに移動します。
- 上部の検索ボックスで「Container Apps」と検索します。
-
[Container Apps] を選択します。
- "Container Apps 環境" フィールドで [新規作成] を選択して、"Container Apps 環境の作成" パネルを開きます。
- 環境名を入力します。
- "ゾーン冗長" フィールドで [有効] を選択します。
ゾーン冗長には、インフラストラクチャ サブネットを持つ仮想ネットワークが必要です。 既存の仮想ネットワークを選択することも、新しいものを作成することもできます。 新しい仮想ネットワークを作成するときは、提供された値をそのまま使用するか、設定をカスタマイズできます。
-
[ネットワーク] タブを選択します。
- カスタム仮想ネットワーク名を割り当てるには、"仮想ネットワーク" フィールドで [新規作成] を選択します。
- カスタム インフラストラクチャ サブネット名を割り当てるには、"インフラストラクチャ サブネット" フィールドで [新規作成] を選択します。
- "仮想 IP" には、[内部] または [外部] を選択できます。
-
を選択してを作成します。
Container Apps 環境に含める仮想ネットワークとインフラストラクチャ サブネットを作成します。
これらのコマンドを使用する場合は、<PLACEHOLDERS> を実際の値に置き換えます。
注
従量課金のみの環境では、CIDR 範囲が /23 以上の専用サブネットが必要です。 ワークロード プロファイル環境では、CIDR 範囲が /27 以上の専用サブネットが必要です。 サブネットのサイズ設定の詳細については、「ネットワーク アーキテクチャの概要」を参照してください。
az network vnet create \
--resource-group <RESOURCE_GROUP_NAME> \
--name <VNET_NAME> \
--location <LOCATION> \
--address-prefix 10.0.0.0/16
az network vnet subnet create \
--resource-group <RESOURCE_GROUP_NAME> \
--vnet-name <VNET_NAME> \
--name infrastructure \
--address-prefixes 10.0.0.0/21
インフラストラクチャ サブネット ID のクエリ。
INFRASTRUCTURE_SUBNET=`az network vnet subnet show --resource-group <RESOURCE_GROUP_NAME> --vnet-name <VNET_NAME> --name infrastructure --query "id" -o tsv | tr -d '[:space:]'`
--zone-redundant パラメーターを使用して環境を作成します。 この場所は、仮想ネットワークの作成時に使用した場所と同じである必要があります。
az containerapp env create \
--name <CONTAINER_APP_ENV_NAME> \
--resource-group <RESOURCE_GROUP_NAME> \
--location "<LOCATION>" \
--infrastructure-subnet-resource-id $INFRASTRUCTURE_SUBNET \
--zone-redundant
Container Apps 環境に含める仮想ネットワークとインフラストラクチャ サブネットを作成します。
これらのコマンドを使用する場合は、<PLACEHOLDERS> を実際の値に置き換えます。
注
従量課金のみの環境では、CIDR 範囲が /23 以上の専用サブネットが必要です。 ワークロード プロファイル環境では、CIDR 範囲が /27 以上の専用サブネットが必要です。 サブネットのサイズ設定の詳細については、「ネットワーク アーキテクチャの概要」を参照してください。
$SubnetArgs = @{
Name = 'infrastructure-subnet'
AddressPrefix = '10.0.0.0/21'
}
$subnet = New-AzVirtualNetworkSubnetConfig @SubnetArgs
$VnetArgs = @{
Name = <VNetName>
Location = <Location>
ResourceGroupName = <ResourceGroupName>
AddressPrefix = '10.0.0.0/16'
Subnet = $subnet
}
$vnet = New-AzVirtualNetwork @VnetArgs
インフラストラクチャ サブネット ID のクエリ。
$InfrastructureSubnet=(Get-AzVirtualNetworkSubnetConfig -Name $SubnetArgs.Name -VirtualNetwork $vnet).Id
--zone-redundant パラメーターを使用して環境を作成します。 この場所は、仮想ネットワークの作成時に使用した場所と同じである必要があります。
Container Apps 環境には Log Analytics ワークスペースが必要です。 次のコマンドを実行すると、Log Analytics ワークスペースが作成され、ワークスペース ID とプライマリ共有キーが環境変数に保存されます。
$WorkspaceArgs = @{
Name = 'myworkspace'
ResourceGroupName = <ResourceGroupName>
Location = <Location>
PublicNetworkAccessForIngestion = 'Enabled'
PublicNetworkAccessForQuery = 'Enabled'
}
New-AzOperationalInsightsWorkspace @WorkspaceArgs
$WorkspaceId = (Get-AzOperationalInsightsWorkspace -ResourceGroupName <ResourceGroupName> -Name $WorkspaceArgs.Name).CustomerId
$WorkspaceSharedKey = (Get-AzOperationalInsightsWorkspaceSharedKey -ResourceGroupName <ResourceGroupName> -Name $WorkspaceArgs.Name).PrimarySharedKey
次のコマンドを実行して、環境を作成します。
$EnvArgs = @{
EnvName = <EnvironmentName>
ResourceGroupName = <ResourceGroupName>
Location = <Location>
AppLogConfigurationDestination = "log-analytics"
LogAnalyticConfigurationCustomerId = $WorkspaceId
LogAnalyticConfigurationSharedKey = $WorkspaceSharedKey
VnetConfigurationInfrastructureSubnetId = $InfrastructureSubnet
VnetConfigurationInternal = $true
ZoneRedundant = $true
}
New-AzContainerAppManagedEnv @EnvArgs
ゾーンの冗長性を確認する
Container Apps 環境でゾーン冗長が有効になっていることを確認するには:
Azure ポータルに移動します。
上部の検索ボックスで Container Apps 環境 を検索します。
[Container Apps Environment]\(コンテナー アプリ環境\) を選択します。
環境を選択します。
[JSON ビューの選択]: ![環境を示す Azure portal のスクリーンショット。[JSON ビュー] ボタンが強調表示されています。](media/how-to-zone-redundancy/portal-json-view.png)
応答に "zoneRedundant": trueが含まれていることを確認します。 
az container app env show コマンドを実行します。
このコマンドを使用する場合は、 <PLACEHOLDERS> を実際の値に置き換えます。
az containerapp env show \
--name <CONTAINER_APP_ENV_NAME> \
--resource-group <RESOURCE_GROUP_NAME> \
--subscription <SUBSCRIPTION_ID>
このコマンドからは JSON 応答が返されます。 応答に "zoneRedundant": trueが含まれていることを確認します。
az container app env show コマンドを実行します。
このコマンドを使用する場合は、 <PLACEHOLDERS> を実際の値に置き換えます。
$Env = Get-AzContainerAppManagedEnv `
-Name <EnvironmentName> `
-ResourceGroupName <ResourceGroupName>
$Env.ZoneRedundant
このコマンドは、環境がゾーン冗長であるかどうかを True 表示し、そうでない場合は False します。