Azure Container Registry サービス階層
Azure Container Registry は、複数のサービス階層 (別名 SKU) で使用できます。 これらの階層は、Azure におけるプライベート Docker レジストリの容量と使用パターンに合ったさまざまなオプションと予測可能な価格を提供します。
レベル | 説明 |
---|---|
Basic | Azure Container Registry について学習する開発者向けのコスト最適化エントリ ポイント。 Basic レジストリには Standard および Premium と同じプログラム機能があります (Microsoft Entra 認証の統合、イメージ削除、Webhook など)。 ただし、含まれているストレージとイメージのスループットは、使用率が低いシナリオに最も適しています。 |
Standard | Standard レジストリは、Basic と同じ機能を提供しますが、含まれているストレージとイメージ スループットが拡大されています。 Standard レジストリは、ほとんどの運用シナリオのニーズを満たすはずです。 |
Premium | Premium レジストリは、含まれているストレージが最も大きく、同時実行操作数も最大であり、大容量シナリオに対応できます。 イメージのスループットの増加に加え、Premium では、複数のリージョン間で 1 つのレジストリを管理するための geo レプリケーション、イメージ タグに署名するためのコンテンツの信頼、レジストリへのアクセスを制限するプライベート エンドポイントがあるプライベート リンクなどの機能が追加されています。 |
Basic、Standard、および Premium 階層は、すべて同じプログラム機能を提供しています。 また、これらすべては、Azure によって完全に管理されているイメージ ストレージから恩恵を受けられます。 上位の階層を選択するほど、パフォーマンスとスケールが向上します。 複数のサービス レベルがあることで、最初は Basic を導入し、その後、レジストリの使用量の増加に伴って Standard や Premium に切り替えることができます。
例:
- Basic レベルのレジストリを購入すると、10 GB のストレージが含まれます。 ここで支払う価格は 1 日あたり $0.167 です。 価格は米ドルに基づいて計算されます。
- Basic レベルのレジストリがあり、25 GB のストレージを使用する場合は、追加の 15 GB に対して 1 日あたり $0.003/日 * 15 = $0.045 を支払います。
- そのため、25 GB ストレージを備えた Basic ACR の価格は、1 日あたり $0.167 + $0.045 = 0.212 USD で、価格 - コンテナー レジストリに従って、ネットワーク、ビルドなどの他の関連料金が適用されます。
サービス階層の機能と制限
次の表に、Basic、Standard、および Premium サービス レベルの機能とレジストリの制限について説明します。
リソース | Basic | Standard | Premium |
---|---|---|---|
含まれている記憶域1 (GiB) | 10 | 100 | 500 |
ストレージの制限 (TiB) | 40 | 40 | 40 |
イメージ レイヤーの最大サイズ (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 |
カスタマー マネージド キー | 該当なし | 該当なし | サポートあり |
リポジトリがスコープ指定されたアクセス許可 | サポートあり | サポートあり | サポートあり |
• トークン | 100 | 500 | 50,000 |
• スコープ マップ | 100 | 500 | 50,000 |
• アクション | 500 | 500 | 500 |
• スコープ マップあたりのリポジトリ数5 | 500 | 500 | 500 |
匿名プル アクセス | 該当なし | プレビュー | プレビュー |
1 各サービス レベルの 1 日あたりの料金に含まれるストレージ。 ストレージの上限に達するまで追加のストレージを使用できますが、GiB あたりの追加料金が日単位で課金されます。 詳細については、Azure Container Registry の価格に関するページを参照してください。 レジストリのストレージの上限を超えるストレージが必要な場合は、Azure サポートまでお問い合わせください。
2ReadOps、WriteOps、および "帯域幅" は最小推定値です。 Azure Container Registry は、使用状況で必要とするパフォーマンスの向上に努めます。 ダウンロードを高速化するには、両方のリソース、ACR、デバイスが同じリージョンに存在する必要があります。
3docker pull は、イメージ内のレイヤー数とマニフェストの取得に基づいて、複数の読み取り操作に変換します。
4docker push は、プッシュする必要があるレイヤーの数に基づいて、複数の書き込み操作に変換します。 docker push
には、docker push
が含まれ、既存のイメージのマニフェストを取得します。
5content/delete
、content/read
、content/write
、metadata/read
、metadata/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 メトリックを監視すれば、最新のデータを確認できます。
レジストリのサービス レベルに応じて、使用状況に関する情報には、次の内容の一部またはすべてと、そのサービス レベルの制限が含まれます。
- 使用されているストレージ (バイト単位) 1
- Webhook の数
- geo レプリケーションの数 (ホーム レプリカを含む)
- プライベート エンドポイントの数
- IP アクセス規則の数
- 仮想ネットワーク規則の数
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 Container Registry サービス階層の価格については、「Container Registry の価格」を参照してください。
データ転送の価格に関する詳細については、「帯域幅の料金詳細」を参照してください。
次のステップ
Azure Container Registry ロードマップ
GitHub の ACR ロードマップを参照して、サービスの今後の機能に関する情報を確認してください。
Azure Container Registry UserVoice
ACR UserVoice で、新機能に関する提案を送信し、投票してください。