Azure Container Registry サービス階層

Azure Container Registry は、複数のサービス階層 (別名 SKU) で使用できます。 これらの階層は、Azure におけるプライベート Docker レジストリの容量と使用パターンに合ったさまざまなオプションと予測可能な価格を提供します。

レベル 説明
Basic Azure Container Registry について学習する開発者向けのコスト最適化エントリ ポイント。 Basic レジストリには Standard および Premium と同じプログラム機能があります (Azure Active Directory 認証の統合イメージ削除Webhook など)。 ただし、含まれているストレージとイメージのスループットは、使用率が低いシナリオに最も適しています。
Standard Standard レジストリは、Basic と同じ機能を提供しますが、含まれているストレージとイメージ スループットが拡大されています。 Standard レジストリは、ほとんどの運用シナリオのニーズを満たすはずです。
Premium Premium レジストリは、含まれているストレージが最も大きく、同時実行操作数も最大であり、大容量シナリオに対応できます。 イメージのスループットの増加に加え、Premium では、複数のリージョン間で 1 つのレジストリを管理するための geo レプリケーション、イメージ タグに署名するためのコンテンツの信頼、レジストリへのアクセスを制限するプライベート エンドポイントがあるプライベート リンクなどの機能が追加されています。

Basic、Standard、および Premium 階層は、すべて同じプログラム機能を提供しています。 また、これらすべては、Azure によって完全に管理されているイメージ ストレージから恩恵を受けられます。 上位の階層を選択するほど、パフォーマンスとスケールが向上します。 複数のサービス レベルがあることで、最初は Basic を導入し、その後、レジストリの使用量の増加に伴って Standard や Premium に切り替えることができます。

サービス階層の機能と制限

次の表に、Basic、Standard、および Premium サービス レベルの機能とレジストリの制限について説明します。

リソース Basic Standard Premium
含まれている記憶域1 (GiB) 10 100 500
ストレージの制限 (TiB) 20 20 20
イメージ レイヤーの最大サイズ (GiB) 200 200 200
最大マニフェスト サイズ (MiB) 4 4 4
1 分あたりの ReadOps2、3 1,000 3,000 10,000
1 分あたりの WriteOps2、4 100 500 2,000
ダウンロード帯域幅2 (Mbps) 30 60 100
アップロード帯域幅 2 (Mbps) 10 20 50
Webhooks 2 10 500
geo レプリケーション 該当なし 該当なし サポートされています
可用性ゾーン 該当なし 該当なし サポートされています
コンテンツの信頼 該当なし 該当なし サポートされています
プライベート エンドポイントがあるプライベート リンク 該当なし 該当なし サポートされています
• プライベート エンドポイント 該当なし 該当なし 200
パブリック IP ネットワーク ルール 該当なし 該当なし 100
サービス エンドポイントの VNet アクセス 該当なし 該当なし プレビュー
• 仮想ネットワーク規則 該当なし 該当なし 100
カスタマー マネージド キー 該当なし 該当なし サポートされています
リポジトリがスコープ指定されたアクセス許可 該当なし 該当なし プレビュー
• トークン 該当なし 該当なし 20,000
• スコープ マップ 該当なし 該当なし 20,000
• スコープ マップあたりのリポジトリ数5 該当なし 該当なし 500
匿名プル アクセス 該当なし プレビュー プレビュー

1 各サービス レベルの 1 日あたりの料金に含まれるストレージ。 ストレージの上限に達するまで追加のストレージを使用できますが、GiB あたりの追加料金が日単位で課金されます。 詳細については、Azure Container Registry の価格に関するページを参照してください。 レジストリのストレージの上限を超えるストレージが必要な場合は、Azure サポートまでお問い合わせください。

2ReadOpsWriteOps、および "帯域幅" は最小推定値です。 Azure Container Registry は、使用状況で必要とするパフォーマンスの向上に努めます。 ダウンロードを高速化するには、両方のリソース、ACR、デバイスが同じリージョンに存在する必要があります。

3docker pull は、イメージ内のレイヤー数とマニフェストの取得に基づいて、複数の読み取り操作に変換します。

4docker push は、プッシュする必要があるレイヤーの数に基づいて、複数の書き込み操作に変換します。 docker push には、docker push が含まれ、既存のイメージのマニフェストを取得します。

5content/deletecontent/readcontent/writemetadata/readmetadata/write の個々の "アクション" は、スコープ マップあたりのリポジトリの制限に対応します。

レジストリ スループットと調整

スループット

高いレートでレジストリ操作が生成されている場合、予想される最大スループットのガイドとして、読み取りおよび書き込み操作と帯域幅に対して、サービス レベルの制限を使用します。 これらの制限は、イメージやその他の成果物の一覧表示、削除、プッシュ、プルなどのデータプレーン操作に影響します。

イメージのプルとプッシュのスループットを具体的に推定するには、レジストリの制限と次の要因を考慮します。

  • イメージ レイヤーの数とサイズ
  • イメージ間でレイヤーまたは基本イメージを再利用する
  • プルまたはプッシュごとに必要になる可能性がある追加の API 呼び出し

詳細については、Docker HTTP API V2 のドキュメントを参照してください。

レジストリ スループットの評価またはトラブルシューティングを行う場合は、クライアント環境の構成も考慮してください。

  • 同時実行操作のための Docker デーモン構成
  • レジストリのデータ エンドポイント (レジストリが geo レプリケートされている場合は複数のエンドポイント) へのネットワーク接続。

レジストリへのスループットに関する問題が発生した場合は、レジストリのパフォーマンスのトラブルシューティング」を参照してください。

1 つの 133 MB の nginx:latest イメージを Azure コンテナー レジストリにプッシュするには、イメージの 5 つのレイヤーに対して複数の読み取りおよび書き込み操作が必要です。

  • イメージ マニフェストがレジストリに存在する場合、それを読み取るための読み取り操作
  • イメージの構成 BLOB を書き込むための書き込み操作
  • イメージ マニフェストを書き込むための書き込み操作

Throttling

レジストリで、要求のレートがレジストリのサービス レベルで許可されている制限を超えたと判断されると、プルまたはプッシュ操作の調整が発生することがあります。 Too many requests のような HTTP 429 エラーが表示されることがあります。

読み取り操作と書き込み操作の平均レートがレジストリ制限内である場合でも、きわめて短期間でイメージのプルまたはプッシュ操作のバーストを生成すると、一時的に調整が発生する可能性があります。 コードに何らかのバックオフによる再試行ロジックを実装するか、レジストリへの要求の最大レートを引き下げる必要がある場合があります。

レジストリの使用状況を表示する

Azure CLI の az acr show-usage コマンド、Azure PowerShell の Get-AzContainerRegistryUsage、または List Usages REST API を使用して、ご利用のレジストリのストレージおよびその他のリソースの現在の使用量を、そのレジストリのサービス レベルの制限と比較したスナップショットを取得します。 ストレージの使用状況は、ポータルにあるレジストリの [概要] ページにも表示されます。

使用状況に関する情報は、ご利用のレジストリが制限に近づいたときにサービス レベルを変更するかどうかを決めるのに役立ちます。 この情報はまた、使用量を管理するのにも役立ちます。

Note

レジストリのストレージの使用状況は、ガイドとしての使用に限定すべきであり、最近のレジストリ操作を反映していない場合があります。 レジストリの StorageUsed メトリックを監視すれば、最新のデータを確認できます。

レジストリのサービス レベルに応じて、使用状況に関する情報には、次の内容の一部またはすべてと、そのサービス レベルの制限が含まれます。

1geo レプリケートされたレジストリでは、ホーム リージョンのストレージ使用量が表示されます。 使用されたストレージの合計は、レプリケーション数をかけ算して求めます。

階層の変更

レジストリのサービス階層の変更は、Azure CLI または Azure portal で行うことができます。 切り替え先の階層が最大記憶域容量の要件を満たしていれば、階層間で自由に切り替えを行うことができます。

サービス階層間を移動しても、レジストリのダウンタイムやレジストリ操作への影響はありません。

Azure CLI

Azure CLI でサービス階層を切り替えるには、az acr update コマンドを使用します。 たとえば Premium への切り替えは、次のようにして行います。

az acr update --name myContainerRegistry --sku Premium

Azure PowerShell

Azure PowerShell でサービス階層を切り替えるには、Update-AzContainerRegistry コマンドレットを使用します。 たとえば Premium への切り替えは、次のようにして行います。

Update-AzContainerRegistry -ResourceGroupName myResourceGroup -Name myContainerRegistry -Sku Premium

Azure portal

Azure Portal のコンテナー レジストリの [Overview](概要) で、 [Update](更新) を選択し、[SKU] ドロップダウン リストから新しい SKU を選択します。

Azure Portal でのコンテナー レジストリ SKU の更新

価格

各 Azure Container Registry サービス階層の価格については、「Container Registry の価格」を参照してください。

データ転送の価格に関する詳細については、「帯域幅の料金詳細」を参照してください。

次のステップ

Azure Container Registry ロードマップ

GitHub の ACR ロードマップを参照して、サービスの今後の機能に関する情報を確認してください。

Azure Container Registry UserVoice

ACR UserVoice で、新機能に関する提案を送信し、投票してください。