Azure Container Registry 서비스 계층
Azure Container Registry는 다중 서비스 계층(SKU라고도 함)에서 사용 가능합니다. 해당 계층은 예측 가능한 가격 책정과 Azure에서 프라이빗 Docker 레지스트리의 용량 및 사용량 패턴에 맞추기 위한 여러 옵션을 제공합니다.
계층 | Description |
---|---|
기본 | 개발자가 Azure Container Registry에 대해 배울 수 있는 비용 최적화된 진입점입니다. 기본 레지스트리에는 표준 및 프리미엄과 동일한 프로그래밍 기능(예: Microsoft Entra 인증 통합, 이미지 삭제 및 웹후크)이 있습니다. 그렇지만 포함된 스토리지 및 이미지 처리량은 더 낮은 사용량 시나리오에 가장 적합합니다. |
Standard | Standard 레지스트리는 Basic과 동일한 성능을 제공하되, 포함된 스토리지 제한과 이미지 처리량은 더 높습니다. Standard 레지스트리는 대부분의 프로덕션 시나리오 요구를 충족합니다. |
Premium | Premium 레지스트리는 포함된 스토리지 및 동시 작업 수가 가장 높으며 고용량 시나리오를 지원합니다. 프리미엄은 많은 이미지 처리량을 제공하는 것 외에도, 여러 지역에서 단일 레지스트리를 관리하기 위한 지역 복제, 이미지 태그 서명을 위한 콘텐츠 신뢰, 레지스트리에 대한 액세스를 제한하기 위한 프라이빗 엔드포인트를 사용한 프라이빗 링크와 같은 기능을 추가로 제공합니다. |
기본, 표준 및 프리미엄 계층은 모두 동일한 프로그래밍 성능을 제공합니다. 또한 Azure에서 완전히 관리하는 이미지 스토리지를 완벽하게 활용합니다. 더 높은 수준의 계층을 선택하면 향상된 성능과 규모를 제공합니다. 여러 서비스 계층을 사용하여 Basic로 시작한 다음, 레지스트리 사용량 증가에 따라 Standard 및 Premium으로 변환할 수 있습니다.
예:
- 기본 계층 레지스트리를 구매하는 경우 10GB의 스토리지가 포함됩니다. 여기서 지불하는 가격은 하루 $0.167입니다. 가격은 미국 달러를 기준으로 계산됩니다.
- 기본 계층 레지스트리가 있고 25GB 스토리지를 사용하는 경우 추가 15GB에 대해 하루에 $0.003/day*15 = $0.045를 지불하게 됩니다.
- 따라서, 가격 책정 - Container Registry에 따라 25GB 스토리지가 있는 기본 ACR에 대한 가격 책정은 하루 $0.167+$0.045= 0.212(USD)에 네트워킹, 빌드 등과 같은 다른 관련 요금이 더해집니다.
서비스 계층 기능 및 한도
다음 표에서는 기본, 표준 및 프리미엄 서비스 계층의 기능 및 레지스트리 제한에 대해 자세히 설명합니다.
리소스 | Basic | Standard | Premium |
---|---|---|---|
포함된 스토리지1(GiB) | 10 | 100 | 500 |
스토리지 한도(TiB) | 40 | 40 | 40 |
최대 이미지 레이어 크기(GiB) | 200 | 200 | 200 |
최대 매니페스트 크기(MiB) | 4 | 4 | 4 |
분당 ReadOps2, 3 | 1,000 | 3,000 | 10,000 |
분당 WriteOps2, 4 | 100 | 500 | 2,000 |
다운로드 대역폭2(Mbps) | 30 | 60 | 100 |
업로드 대역폭2(Mbps) | 10 | 20 | 50 |
웹후크 | 2 | 10 | 500 |
지역에서 복제 | 해당 없음 | 해당 없음 | 지원됨 |
가용성 영역 | 해당 없음 | 해당 없음 | 지원됨 |
콘텐츠 신뢰 | 해당 없음 | 해당 없음 | 지원됨 |
프라이빗 엔드포인트가 있는 프라이빗 링크 | 해당 없음 | 해당 없음 | 지원됨 |
• 프라이빗 엔드포인트 | 해당 없음 | 해당 없음 | 200 |
공용 IP 네트워크 규칙 | 해당 없음 | 해당 없음 | 100 |
서비스 엔드포인트 VNet 액세스 | 해당 없음 | 해당 없음 | 미리 보기 |
• 가상 네트워크 규칙 | 해당 없음 | 해당 없음 | 100 |
고객 관리형 키 | 해당 없음 | 해당 없음 | 지원됨 |
리포지토리 범위 권한 | 지원됨 | 지원됨 | 지원됨 |
• 토큰 | 100 | 500 | 50,000 |
• 범위 맵 | 100 | 500 | 50,000 |
• 동작 | 500 | 500 | 500 |
• 범위 맵당 리포지토리5 | 500 | 500 | 500 |
익명 끌어오기 액세스 | 해당 없음 | 미리 보기 | 미리 보기 |
1 각 계층의 일별 요금에 포함된 스토리지입니다. 추가 스토리지는 GiB당 일일 추가 요금으로 레지스트리 스토리지 제한까지 사용할 수 있습니다. 요금 정보는 Azure Container Registry 가격 책정을 참조하세요. 레지스트리 스토리지 제한을 초과하는 스토리지가 필요한 경우 Azure 지원에 문의하세요.
2ReadOps, WriteOps 및 Bandwidth는 최소 추정치입니다. Azure Container Registry는 필요한 사용량에 따라 성능을 개선하려고 합니다. 빠른 다운로드 속도를 얻으려면 두 리소스, ACR 및 디바이스가 동일한 지역에 있어야 합니다.
3 docker pull은 이미지의 레이어 수와 매니페스트 검색을 더한 값에 따라 여러 읽기 작업으로 변환됩니다.
4 docker push는 푸시해야 하는 레이어 수에 따라 여러 쓰기 작업으로 변환됩니다. docker push
에는 기존 이미지에 대해 매니페스트를 검색할 ReadOps가 포함되어 있습니다.
5 content/delete
, content/read
, content/write
, metadata/read
, metadata/write
의 개별 작업은 범위 맵당 리포지토리 제한에 해당합니다.
레지스트리 처리량 및 제한
처리량
높은 비율의 레지스트리 작업을 생성할 때 예상되는 최대 처리량에 대한 지침으로 읽기와 쓰기 작업 및 대역폭에 대한 서비스 계층의 제한을 사용합니다. 이러한 제한은 이미지 및 기타 아티팩트 나열, 삭제, 푸시 및 끌어오기와 같은 데이터 평면 작업에 영향을 줍니다.
특히 이미지 끌어오기 및 푸시의 처리량을 예측하려면 레지스트리 제한과 다음 요소를 고려합니다.
- 이미지 계층의 수 및 크기
- 이미지 전체에서 레이어 또는 기본 이미지 다시 사용
- 각 끌어오기 또는 푸시에 필요할 수 있는 추가 API 호출
자세한 내용은 Docker HTTP API V2 설명서를 참조하세요.
레지스트리 처리량을 평가하거나 문제를 해결할 때 클라이언트 환경의 구성도 고려합니다.
- 동시 작업에 대한 Docker 디먼 구성
- 레지스트리의 데이터 엔드포인트(또는 레지스트리가 지역 복제된 경우 엔드포인트)에 대한 네트워크 연결입니다.
레지스트리의 처리량에 문제가 발생하는 경우 레지스트리 성능 문제 해결을 참조하세요.
예시
단일 133MB nginx:latest
이미지를 Azure Container Registry에 푸시하려면 이미지의 5개 계층에 대해 여러 읽기 및 쓰기 작업이 필요합니다.
- 레지스트리에 있는 경우 이미지 매니페스트를 읽기 위한 읽기 작업
- 이미지의 구성 Blob을 작성하는 쓰기 작업
- 이미지 매니페스트를 작성하는 쓰기 작업
제한
레지스트리에서 요청 속도가 레지스트리의 서비스 계층에 허용되는 제한을 초과하는 것으로 확인되면 끌어오기 또는 푸시 작업이 제한될 수 있습니다. Too many requests
와 유사한 HTTP 429 오류가 표시될 수 있습니다.
읽기 및 쓰기 작업의 평균 속도가 레지스트리 제한 내에 있는 경우에도 매우 짧은 기간 내에 이미지 끌어오기 또는 푸시 작업의 버스트를 생성할 때 제한이 일시적으로 발생할 수 있습니다. 코드에서 일부 백오프를 사용하여 재시도 논리를 구현하거나 레지스트리에 대한 최대 요청 속도를 줄여야 할 수 있습니다.
레지스트리 사용량 표시
Azure CLI의 az acr show-usage 명령, Azure PowerShell의 Get-AzContainerRegistryUsage 또는 사용량 나열 REST API를 사용하여 해당 레지스트리의 서비스 계층에 대한 제한과 비교하여 레지스트리의 현재 스토리지 및 기타 리소스 사용량에 대한 스냅샷을 가져옵니다. 스토리지 사용량은 포털의 레지스트리 개요 페이지에도 표시됩니다.
사용량 정보는 레지스트리가 한도에 근접할 때 서비스 계층 변경에 대한 결정을 내리는 데 도움이 됩니다. 이 정보는 소비를 관리하는 데도 도움이 됩니다.
참고 항목
레지스트리의 스토리지 사용량은 지침으로만 사용해야 하며 최근 레지스트리 작업을 반영하지 않을 수 있습니다. 레지스트리의 StorageUsed 메트릭에서 최신 데이터를 모니터링합니다.
레지스트리의 서비스 계층에 따라 사용량 정보에는 해당 계층의 제한과 함께 다음의 일부 또는 전부가 포함됩니다.
- bytes1에서 사용된 스토리지
- 웹후크 수
- 지역 복제 수(홈 복제본 포함)
- 프라이빗 엔드포인트 수
- IP 액세스 규칙 수
- 가상 네트워크 규칙 수
1지리적으로 복제된 레지스트리에서 홈 지역에 대한 스토리지 사용량이 표시됩니다. 사용된 총 스토리지에 대한 복제 수를 곱합니다.
계층 변경
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 cmdlet을 사용합니다. 예를 들어 Premium으로 전환하려면:
Update-AzContainerRegistry -ResourceGroupName myResourceGroup -Name myContainerRegistry -Sku Premium
Azure Portal
Azure Portal의 컨테이너 레지스트리 개요에서 업데이트를 선택한 다음, SKU 드롭다운에서 새로운 SKU를 선택합니다.
가격 책정
각 Azure Container Registry 서비스 계층의 가격 책정 정보는 Container Registry 가격 책정을 참조하세요.
데이터 전송 가격 책정에 대한 자세한 내용은 대역폭 가격 정보를 참조하세요.
다음 단계
Azure Container Registry 로드맵
GitHub에서 ACR 로드맵에 방문하여 예정된 서비스 기능에 대한 정보를 알아 보세요.
Azure Container Registry UserVoice
ACR UserVoice에서 새로운 기능 제안 사항을 제출하고 투표합니다.