Azure Container Registry の geo レプリケーションGeo-replication in Azure Container Registry

ローカル プレゼンスやホット バックアップを必要とする企業は、複数の Azure リージョンからサービスを実行しています。Companies that want a local presence, or a hot backup, choose to run services from multiple Azure regions. ベスト プラクティスとして、イメージが実行されている各リージョンにコンテナー レジストリを配置してネットワーク上の近い場所での操作を可能にすることで、高速で信頼性の高いイメージ レイヤー転送を実現します。As a best practice, placing a container registry in each region where images are run allows network-close operations, enabling fast, reliable image layer transfers. geo レプリケーションにより、Azure コンテナー レジストリが単一のレジストリとして機能することが可能になり、マルチマスター リージョン レジストリで複数のリージョンに対応できます。Geo-replication enables an Azure container registry to function as a single registry, serving multiple regions with multi-master regional registries.

geo レプリケートされたレジストリには次の利点があります。A geo-replicated registry provides the following benefits:

  • 複数のリージョンで 1 つのレジストリ/イメージ/タグ名を使用できるSingle registry/image/tag names can be used across multiple regions
  • リージョン デプロイからネットワーク上の近い場所のレジストリにアクセスできるNetwork-close registry access from regional deployments
  • コンテナー ホストと同じリージョンにあるレプリケートされたローカルのレジストリからイメージがプルされるので、追加のエグレス料金が発生しないNo additional egress fees, as images are pulled from a local, replicated registry in the same region as your container host
  • 複数のリージョンにまたがってレジストリを一元管理できるSingle management of a registry across multiple regions

注意

コンテナー イメージのコピーを複数の Azure コンテナー レジストリに保持する必要がある場合、Azure Container Registry もイメージのインポートをサポートします。If you need to maintain copies of container images in more than one Azure container registry, Azure Container Registry also supports image import. たとえば DevOps ワークフローでは、Docker コマンドを使用する必要なしに、開発レジストリから運用レジストリにイメージをインポートできます。For example, in a DevOps workflow, you can import an image from a development registry to a production registry, without needing to use Docker commands.

ユース ケースの例Example use case

Contoso では、米国、カナダ、ヨーロッパにまたがる パブリック プレゼンスの Web サイトを運用しています。Contoso runs a public presence website located across the US, Canada, and Europe. Contoso は、ネットワーク上の近い場所にあるローカルのコンテンツでこれらの市場に対応するために、米国西部、米国東部、カナダ中部、西ヨーロッパで Azure Kubernetes Service (AKS) クラスターを実行しています。To serve these markets with local and network-close content, Contoso runs Azure Kubernetes Service (AKS) clusters in West US, East US, Canada Central, and West Europe. Docker イメージとしてデプロイされた Web サイト アプリケーションでは、すべてのリージョンで同じコードとイメージを使用します。The website application, deployed as a Docker image, utilizes the same code and image across all regions. リージョンのローカルのコンテンツは、各リージョンに独自にプロビジョニングされたデータベースから取得されます。Content, local to that region, is retrieved from a database, which is provisioned uniquely in each region. 各リージョン デプロイには、ローカル データベースなどのリソースの独自の構成があります。Each regional deployment has its unique configuration for resources like the local database.

開発チームは、米国西部データ センターを利用するワシントン州シアトルを拠点としています。The development team is located in Seattle WA, utilizing the West US data center.

複数のレジストリへのプッシュPushing to multiple registries
複数のレジストリへのプッシュPushing to multiple registries

Contoso では、geo レプリケーション機能を使用する前は、米国西部では米国ベースのレジストリを使用し、西ヨーロッパでは追加のレジストリを使用していました。Prior to using the geo-replication features, Contoso had a US-based registry in West US, with an additional registry in West Europe. これらの異なるリージョンに対応するために、開発チームは 2 つの異なるレジストリにイメージをプッシュしていました。To serve these different regions, the development team pushed images to two different registries.

docker push contoso.azurecr.io/public/products/web:1.2
docker push contosowesteu.azurecr.io/public/products/web:1.2

複数のレジストリからのプルPulling from multiple registries
複数のレジストリからのプルPulling from multiple registries

複数のレジストリの一般的な課題は次のとおりです。Typical challenges of multiple registries include:

  • 米国東部、米国西部、カナダ中部のクラスターは、いずれも米国西部のレジストリからプルします。これらのリモート コンテナー ホストはそれぞれ米国西部データセンターからイメージをプルするため、エグレス料金が発生します。The East US, West US, and Canada Central clusters all pull from the West US registry, incurring egress fees as each of these remote container hosts pull images from West US data centers.
  • 開発チームは、米国西部と西ヨーロッパのレジストリにイメージをプッシュする必要があります。The development team must push images to West US and West Europe registries.
  • 開発チームは、ローカル レジストリを参照するイメージ名で各リージョン デプロイを構成し、管理する必要があります。The development team must configure and maintain each regional deployment with image names referencing the local registry.
  • レジストリ アクセスをリージョンごとに構成する必要があります。Registry access must be configured for each region.

geo レプリケーションのメリットBenefits of geo-replication

geo レプリケートされたレジストリからのプル

Azure Container Registry の geo レプリケーション機能を使用すると、次のメリットが実現されます。Using the geo-replication feature of Azure Container Registry, these benefits are realized:

  • すべてのリージョンにまたがる 1 つのレジストリ (contoso.azurecr.io) を管理すれば済む。Manage a single registry across all regions: contoso.azurecr.io
  • すべてのリージョンで同じイメージ URL (contoso.azurecr.io/public/products/web:1.2) が使用されるので、イメージのデプロイの 1 つの構成を管理すれば済む。Manage a single configuration of image deployments as all regions used the same image URL: contoso.azurecr.io/public/products/web:1.2
  • 1 つのレジストリにプッシュすれば済む。geo レプリケーションは、ACR が管理する。Push to a single registry, while ACR manages the geo-replication. 特定のレプリカ内のイベントを通知するように、リージョン Webhook を構成できます。You can configure regional webhooks to notify of you events in specific replicas.

geo レプリケーションの構成Configure geo-replication

geo レプリケーションは、マップ上でリージョンをクリックして簡単に構成できます。Configuring geo-replication is as easy as clicking regions on a map. Azure CLI の az acr replication コマンドなどのツールを使用して、geo レプリケーションを管理することもできます。You can also manage geo-replication using tools including the az acr replication commands in the Azure CLI.

geo レプリケーションは、Premium レジストリ限定の機能です。Geo-replication is a feature of Premium registries only. レジストリがまだ Premium でない場合は、Azure Portal で Basic および Standard から Premium に変更できます。If your registry isn't yet Premium, you can change from Basic and Standard to Premium in the Azure portal:

Azure Portal での SKU の切り替え

Premium レジストリの geo レプリケーションを構成するには、Azure Portal (https://portal.azure.com) にログインします。To configure geo-replication for your Premium registry, log in to the Azure portal at https://portal.azure.com.

Azure Container Registry に移動し、 [レプリケーション] を選択します。Navigate to your Azure Container Registry, and select Replications:

Azure Portal のコンテナー レジストリ UI の [レプリケーション]

現在のすべての Azure リージョンを示すマップが表示されます。A map is displayed showing all current Azure Regions:

Azure Portal のリージョン マップ

  • 青色の六角形は、現在のレプリカを表します。Blue hexagons represent current replicas
  • 緑色の六角形は、レプリカを構成可能なリージョンを表します。Green hexagons represent possible replica regions
  • 灰色の六角形は、レプリケーションをまだ利用できない Azure リージョンを表します。Gray hexagons represent Azure regions not yet available for replication

レプリカを構成するには、緑色の六角形を選択し、 [作成] をクリックします。To configure a replica, select a green hexagon, then select Create:

Azure Portal の [レプリケーションの作成] UI

追加のレプリカを構成するには、他のリージョンの緑色の六角形を選択し、 [作成] をクリックします。To configure additional replicas, select the green hexagons for other regions, then click Create.

ACR は、構成済みのレプリカ間でイメージの同期を開始します。ACR begins syncing images across the configured replicas. 同期が完了すると、ポータルに [準備完了] と表示されます。Once complete, the portal reflects Ready. ポータルのレプリカの状態は自動的に更新されるわけではありません。The replica status in the portal doesn't automatically update. 最新の状態を表示するには、更新ボタンを使用します。Use the refresh button to see the updated status.

geo レプリケーションされたレジストリの使用に関する注意点Considerations for using a geo-replicated registry

  • geo レプリケーションされたレジストリの各リージョンは、設定後は独立しています。Each region in a geo-replicated registry is independent once set up. Azure Container Registry の SLA は、geo レプリケーションされた各リージョンに適用されます。Azure Container Registry SLAs apply to each geo-replicated region.
  • geo レプリケーションされたレジストリからイメージをプッシュまたはプルすると、バックグラウンドの Azure Traffic Manager は最も近いリージョンにあるレジストリに要求を送信します。When you push or pull images from a geo-replicated registry, Azure Traffic Manager in the background sends the request to the registry located in the region closest to you.
  • イメージまたはタグの更新を最も近いリージョンにプッシュした後、Azure Container Registry がマニフェストとレイヤーを、選択された残りのリージョンにレプリケートするまでに、少し時間がかかります。After you push an image or tag update to the closest region, it takes some time for Azure Container Registry to replicate the manifests and layers to the remaining regions you opted into. 大きいイメージは、小さいイメージよりもレプリケートに時間がかかります。Larger images take longer to replicate than smaller ones. イメージとタグは、最終的な整合性モデルを使用して、レプリケーションのリージョン間で同期されます。Images and tags are synchronized across the replication regions with an eventual consistency model.
  • geo レプリケーションされたレジストリへのプッシュ更新に依存するワークフローを管理するには、プッシュ イベントに応答するように Webhook を構成することをお勧めします。To manage workflows that depend on push updates to a geo-replicated registry, we recommend that you configure webhooks to respond to the push events. geo レプリケーションされたレジストリ内にリージョンの Webhook を設定して、geo レプリケーションされたすべてのリージョンにわたってプッシュ イベントが完了したときにそれを追跡できます。You can set up regional webhooks within a geo-replicated registry to track push events as they complete across the geo-replicated regions.

geo レプリケーションの価格Geo-replication pricing

geo レプリケーションは、Azure Container Registry の Premium SKU の機能です。Geo-replication is a feature of the Premium SKU of Azure Container Registry. レジストリを目的のリージョンにレプリケートすると、リージョンごとに Premium レジストリ料金が発生します。When you replicate a registry to your desired regions, you incur Premium registry fees for each region.

前の例では、Contoso は、米国東部、カナダ中部、西ヨーロッパにレプリカを追加して、2 つのレジストリを 1 つに統合しました。In the preceding example, Contoso consolidated two registries down to one, adding replicas to East US, Canada Central, and West Europe. Contoso には、1 か月あたり 4 倍の Premium 料金が課金されます。追加の構成や管理は不要です。Contoso would pay four times Premium per month, with no additional configuration or management. 各リージョンではイメージをローカルでプルできるようになったため、米国西部からカナダおよび米国東部へのネットワーク エグレス料金が発生することなく、パフォーマンスと信頼性が向上します。Each region now pulls their images locally, improving performance, reliability without network egress fees from West US to Canada and East US.

次の手順Next steps

Azure Container Registry の geo レプリケーションに関する 3 部構成のチュートリアル シリーズを確認します。Check out the three-part tutorial series, Geo-replication in Azure Container Registry. これらのチュートリアルでは、geo レプリケートされたレジストリを作成する方法、コンテナーをビルドする方法、1 つの docker push コマンドを使用してリージョンの複数の Web App for Containers インスタンスにデプロイする方法を説明します。Walk through creating a geo-replicated registry, building a container, and then deploying it with a single docker push command to multiple regional Web Apps for Containers instances.