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 レプリケーション 該当なし 該当なし サポートされています
可用性ゾーン 該当なし 該当なし プレビュー
コンテンツの信頼 該当なし 該当なし サポートされています
プライベート エンドポイントがあるプライベート リンク 該当なし 該当なし サポートされています
• プライベート エンドポイント 該当なし 該当なし 10
パブリック IP ネットワーク ルール 該当なし 該当なし 100
サービス エンドポイントの VNet アクセス 該当なし 該当なし プレビュー
カスタマー マネージド キー 該当なし 該当なし サポートされています
リポジトリがスコープ指定されたアクセス許可 該当なし 該当なし プレビュー
• トークン 該当なし 該当なし 20,000
• シェイプ マップ 該当なし 該当なし 20,000
• スコープ マップごとのリポジトリ 該当なし 該当なし 500

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

2ReadOpsWriteOps、および "帯域幅" は最小推定値です。 Azure Container Registry は、使用状況で必要とするパフォーマンスの向上に努めます。

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

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

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

スループット

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

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

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

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

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

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

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

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

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

Throttling

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

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

階層の変更

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

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

Azure CLI

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

az acr update --name myregistry --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 で、新機能に関する提案を送信し、投票してください。