Azure CLI를 사용하여 Container Apps 환경에서 워크로드 프로필을 관리하는 방법을 알아봅니다.
프로필에서 컨테이너 앱 만들기
기본적으로 Container Apps 환경은 자동으로 생성되는 관리형 가상 네트워크를 사용하여 만들어집니다. 생성된 가상 네트워크는 Microsoft 테넌트에서 생성되므로 액세스할 수 없습니다.
또는 사용자 지정 가상 네트워크를 사용하여 환경을 만들 수 있습니다. 다음 기능이 필요한 경우 이 옵션을 사용합니다.
- 사용자 정의 경로
- Application Gateway와 통합
- 네트워크 보안 그룹
- 가상 네트워크의 프라이빗 엔드포인트 뒤에 있는 리소스와 통신
Container Apps 환경을 만듭니다.
az containerapp env create \ --resource-group "<RESOURCE_GROUP>" \ --name "<NAME>" \ --location "<LOCATION>"이 명령이 완료되려면 최대 10분이 소요될 수 있습니다.
환경의 상태를 확인합니다. 다음 명령은 환경이 성공적으로 만들어졌는지 여부를 보고합니다.
az containerapp env show \ --name "<ENVIRONMENT_NAME>" \ --resource-group "<RESOURCE_GROUP>"provisioningState에서Succeeded를 보고한 후에 다음 명령으로 이동해야 합니다.새 컨테이너 앱을 만듭니다.
이 명령은 애플리케이션을 기본 제공 사용량 워크로드 프로필에 배포합니다. 전용 프로필에서 앱을 만들려면 먼저 환경에 프로필을 추가해야 합니다.
이 명령은 특정 워크로드 프로필을 사용하여 환경에 새 애플리케이션을 만듭니다.
사용자 지정 가상 네트워크를 사용하여 환경을 만들 때 가상 네트워크 구성을 완전히 제어할 수 있습니다. 이 컨트롤은 다음 기능을 구현하는 옵션을 제공합니다.
- 사용자 정의 경로
- Application Gateway와 통합
- 네트워크 보안 그룹
- 가상 네트워크의 프라이빗 엔드포인트 뒤에 있는 리소스와 통신
다음 명령을 사용하여 Container Apps 환경을 만듭니다.
가상 네트워크를 만듭니다.
az network vnet create \ --address-prefixes 13.0.0.0/23 \ --resource-group "<RESOURCE_GROUP>" \ --location "<LOCATION>" \ --name "<VNET_NAME>"Microsoft.App/environments에 위임된 서브넷을 만듭니다.az network vnet subnet create \ --address-prefixes 13.0.0.0/23 \ --delegations Microsoft.App/environments \ --name "<SUBNET_NAME>" \ --resource-group "<RESOURCE_GROUP>" \ --vnet-name "<VNET_NAME>" \ --query "id"ID 값을 복사하여 다음 명령에 붙여넣습니다.
Container Apps 환경에서 워크로드 프로필을 실행하려면
Microsoft.App/environments위임이 필요하며, 이를 통해 Container Apps 런타임에 가상 네트워크에 대해 필요한 제어 권한을 부여할 수 있습니다.서브넷 크기는 최소
/27CIDR(IP 32개 중 8개 예약)까지 지정할 수 있습니다./27CIDR을 지정하려는 경우 다음 항목을 고려합니다.Container Apps 인프라용으로 예약된 IP 주소는 11개입니다. 따라서
/27CIDR에는 최대 21개의 사용 가능한 IP 주소가 있습니다.IP 주소는 소비 전용 플랜과 전용 플랜 간에 다르게 할당됩니다.
사용량 기준만 전용 모든 복제본에는 하나의 IP가 필요합니다. 사용자는 모든 앱에서 복제본이 21개가 넘는 앱을 소유할 수 없습니다. 가동 중지 시간이 없는 배포의 경우 새 수정 버전이 성공적으로 배포될 때까지 이전 수정 버전이 실행되므로 두 배의 IP가 필요합니다. 모든 인스턴스(VM 노드)에는 하나의 IP가 필요합니다. 모든 워크로드 프로필에서 최대 21개의 인스턴스를 소유할 수 있으며, 이러한 워크로드 프로필에서 실행되는 복제본은 수백 개 이상 소유할 수 있습니다.
Container Apps 환경을 만듭니다.
참고
컨테이너 앱이 공용 수신을 허용하는지 아니면 환경 수준에서 가상 네트워크 내에서만 수신을 허용하는지 구성할 수 있습니다. 가상 네트워크로만 수신을 제한하려면 플래그를
--internal-only설정합니다.az containerapp env create \ --resource-group "<RESOURCE_GROUP>" \ --name "<NAME>" \ --location "<LOCATION>"이 명령이 완료되려면 최대 10분이 소요될 수 있습니다.
환경의 상태를 확인합니다. 다음 명령은 환경이 성공적으로 만들어졌는지 여부를 보고합니다.
az containerapp env show \ --name "<ENVIRONMENT_NAME>" \ --resource-group "<RESOURCE_GROUP>"provisioningState에서Succeeded를 보고한 후에 다음 명령으로 이동해야 합니다.새 컨테이너 앱을 만듭니다.
이 명령은 애플리케이션을 기본 제공 사용량 워크로드 프로필에 배포합니다. 전용 프로필에서 앱을 만들려면 먼저 환경에 프로필을 추가해야 합니다.
이 명령은 특정 워크로드 프로필을 사용하여 환경에 새 애플리케이션을 만듭니다.
프로필 추가
기존 환경에 새 워크로드 프로필을 추가합니다. 이 섹션에 설명된 대로 회사 프로필 유형을 지정해야 합니다.
az containerapp env workload-profile add \
--resource-group <RESOURCE_GROUP> \
--name <ENVIRONMENT_NAME> \
--workload-profile-type <WORKLOAD_PROFILE_TYPE> \
--workload-profile-name <WORKLOAD_PROFILE_NAME> \
--min-nodes <MIN_NODES> \
--max-nodes <MAX_NODES>
추가할 워크로드 프로필을 선택하면 지역 가용성을 보장합니다.
<WORKLOAD_PROFILE_NAME> 자리 표시자로 선택하는 값은 워크로드 프로필 식별 이름입니다.
식별 이름을 사용하면 환경에 동일한 유형의 여러 프로필을 추가할 수 있습니다. 식별 이름은 워크로드 프로필에서 컨테이너 앱을 배포하고 유지 관리할 때 사용하는 이름입니다.
회사 프로필 유형은 단일 글로벌 하드 코드된 목록이 아니라 지역별로 다릅니다. 의도한 검색 경로는 다음과 az containerapp env workload-profile list-supported -l <REGION>같습니다. 구현은 해당 위치에서 사용 가능한 워크로드 프로필 형식에 대해 ARM 템플릿 엔드포인트에서 지원되는 값을 확인합니다.
이 명령을 사용하여 해당 지역의 유효한 워크로드 프로필 유형을 확인합니다.
az containerapp env workload-profile list-supported -l <REGION>
반환된 값 --workload-profile-type중 하나를 사용합니다. 예를 들어 해당 형식을 사용할 수 있는 지역에서 사용할 D4 수 있습니다.
다음 동작에 유의하세요.
- 이 명령은 형식 값을 보내기 전에 대문자로 변경합니다.
-
--workload-profile-name을 생략하면 명령은 프로필 이름의 기본값을 형식 값으로 설정합니다. - 워크로드 프로필을 추가하거나 업데이트하는 것은 워크로드 프로필을 지원하는 환경에서만 작동합니다.
프로필 편집
명령을 사용하여 워크로드 프로필에서 사용하는 최소 및 최대 노드 수를 수정할 update 수 있습니다.
az containerapp env workload-profile update \
--resource-group <RESOURCE_GROUP> \
--name <ENV_NAME> \
--workload-profile-type <WORKLOAD_PROFILE_TYPE> \
--workload-profile-name <WORKLOAD_PROFILE_NAME> \
--min-nodes <MIN_NODES> \
--max-nodes <MAX_NODES>
프로필 삭제
워크로드 프로필을 삭제하려면 다음 명령을 사용합니다.
az containerapp env workload-profile delete \
--resource-group "<RESOURCE_GROUP>" \
--name <ENVIRONMENT_NAME> \
--workload-profile-name <WORKLOAD_PROFILE_NAME>
참고
사용량 워크로드 프로필은 삭제할 수 없습니다.
프로필 검사
다음 명령을 사용하면 사용자의 지역에서 사용 가능한 프로필과 특정 환경에서 사용되는 프로필을 나열할 수 있습니다.
사용 가능한 워크로드 프로필 나열
list-supported 명령을 사용하여 사용자의 지역에 지원되는 워크로드 프로필을 나열합니다.
다음 Azure CLI 명령은 결과를 테이블에 표시합니다.
az containerapp env workload-profile list-supported \
--location <LOCATION> \
--query "[].{Name: name, Cores: properties.cores, MemoryGiB: properties.memoryGiB, Category: properties.category}" \
-o table
응답은 다음 예제와 유사한 테이블과 유사합니다.
Name Cores MemoryGiB Category
------------------------- ------- ----------- --------------------
D4 4 16 GeneralPurpose
D8 8 32 GeneralPurpose
D16 16 64 GeneralPurpose
D32 32 128 GeneralPurpose
E4 4 32 MemoryOptimized
E8 8 64 MemoryOptimized
E16 16 128 MemoryOptimized
E32 32 256 MemoryOptimized
Consumption 4 8 Consumption
Consumption-GPU-NC24-A100 24 220 Consumption-GPU-A100
Consumption-GPU-NC8as-T4 8 56 Consumption-GPU-T4
Flex 4 16 Consumption
NC24-A100 24 220 GPU-NC-A100
NC48-A100 48 440 GPU-NC-A100
NC96-A100 96 880 GPU-NC-A100
워크로드 프로필을 선택하고, --workload-profile-type 옵션에 대해 az containerapp env workload-profile add 또는 az containerapp env workload-profile update 명령으로 워크로드 프로필을 추가하거나 업데이트할 때 Name 필드를 사용합니다.
워크로드 프로필 표시
워크로드 프로필의 세부 정보를 표시합니다.
az containerapp env workload-profile show \
--resource-group <RESOURCE_GROUP> \
--name <ENVIRONMENT_NAME> \
--workload-profile-name <WORKLOAD_PROFILE_NAME>