この記事では、ゾーン冗長コンテナー レジストリを設定する方法について説明します。
ゾーンの冗長性は、可用性ゾーンをサポートするリージョン内のすべての Azure Container Registries に対して既定で有効になっており、リソースの回復性が自動的に向上し、追加コストはかからなくなります。 この機能強化は、Basic と Standard を含むすべての SKU に適用され、サポートされているリージョンの新規レジストリと既存のレジストリの両方にロールアウトされています。
Important
Azure portal と CLI では、ゾーン冗長更新プログラムがまだ正確に反映されていない可能性があります。 サポートされているリージョンのすべてのレジストリでゾーン冗長がアクティブになっている場合でも、レジストリの構成の zoneRedundancy プロパティは false と表示される場合があります。 この既定の動作をより透過的に反映するように、ポータルと API サーフェスを積極的に更新しています。 以前に有効にしたすべての機能は、引き続き期待どおりに機能します。
可用性ゾーンのサポート要件と機能、および複数リージョンのデプロイ オプションの詳細については、「 Azure Container Registry の信頼性」を参照してください。
Prerequisites
ゾーン冗長レジストリを作成する
Premium サービス レベルでゾーン冗長レジストリを作成するには、Azure portal、Azure CLI、または Bicep ファイルを使用します。
Azure portal にサインインします。
[リソースの作成]>[コンテナー]>[コンテナー レジストリ] の順に選択します。
[基本] タブで、リソース グループを選択または作成し、一意のレジストリ名を入力します。
[場所] で、米国東部などの可用性ゾーンをサポートするリージョンを選択します。
[SKU] で [Premium] を選択します。
[可用性ゾーン] で、 [有効] を選択します。
必要に応じて、その他のレジストリ設定を構成してから、[確認および作成] を選びます。
[作成] を選択して、レジストリ インスタンスをデプロイします。
Azure CLI バージョン 2.17.0 以降または Azure Cloud Shell があることを確認します。 インストールまたはアップグレードする必要がある場合は、Azure CLI のインストールに関するページを参照してください。
可用性ゾーンをサポートするリージョンにリソース グループがない場合は、 az group create を実行してリソース グループを作成します ( <resource-group-name> と <location> を実際の値に置き換えます)。
az group create --name <resource-group-name> --location <location>
eastus などの可用性ゾーンをサポートするリージョンを選択します。
az acr create コマンドを実行して、Premium サービス レベルでゾーン対応レジストリを作成します (<resource-group-name>、<container-registry-name>、<region-name>を実際の値に置き換えます)。
az acr create \
--resource-group <resource-group-name> \
--name <container-registry-name> \
--location <region-name> \
--zone-redundancy enabled \
--sku Premium
コマンドの出力で、レジストリの zoneRedundancy プロパティを確認します。
zoneRedundancyが "Enabled" に設定されている場合、レジストリはゾーン冗長になります。
{
[...]
"zoneRedundancy": "Enabled"
}
可用性ゾーンをサポートするリージョンにリソース グループがない場合は、 az group create を実行してリソース グループを作成します ( <resource-group-name> と <location> を実際の値に置き換えます)。
az group create --name <resource-group-name> --location <location>
ゾーン冗長レジストリを作成するには、次の Bicep ファイルを新しいファイルにコピーし、 registryZone.bicep などのファイル名を使用して保存します。
既定では、Bicep ファイルによってレジストリのゾーン冗長性が有効になります。
@description('Globally unique name of your Azure Container Registry')
@minLength(5)
@maxLength(50)
param containerRegistryName string = 'acr${uniqueString(resourceGroup().id)}'
@description('Location for registry home replica.')
param location string = resourceGroup().location
@description('Enable admin user for registry. This is not recommended for production use.')
param adminUserEnabled bool = false
@description('Enable zone redundancy of registry\'s home replica. Requires the registry\'s region supports availability zones.')
@allowed([
'Enabled'
'Disabled'
])
param containerRegistryZoneRedundancy string = 'Enabled'
// Tier of your Azure Container Registry. Geo-replication and zone redundancy require Premium SKU.
var acrSku = 'Premium'
resource containerRegistry 'Microsoft.ContainerRegistry/registries@2025-04-01' = {
name: containerRegistryName
location: location
sku: {
name: acrSku
}
properties: {
adminUserEnabled: adminUserEnabled
zoneRedundancy: containerRegistryZoneRedundancy
}
}
output containerRegistryLoginServer string = containerRegistry.properties.loginServer
次の az deployment group create コマンドを実行して、上記のテンプレート ファイルを使用してレジストリを作成します ( <resource-group-name> と <registry-name> を実際の値に置き換えます)。
Note
パラメーターを指定せずにテンプレートをデプロイすると、一意の名前が作成されます。
az deployment group create \
--resource-group <resource-group-name> \
--template-file registryZone.json \
--parameters containerRegistryName=<registry-name>