Azure CLI를 사용하여 워크로드 프로필 관리

Azure CLI를 사용하여 Container Apps 환경에서 워크로드 프로필을 관리하는 방법을 알아봅니다.

프로필에서 컨테이너 앱 만들기

기본적으로 Container Apps 환경은 자동으로 생성되는 관리형 가상 네트워크를 사용하여 만들어집니다. 생성된 가상 네트워크는 Microsoft 테넌트에서 생성되므로 액세스할 수 없습니다.

또는 사용자 지정 가상 네트워크를 사용하여 환경을 만들 수 있습니다. 다음 기능이 필요한 경우 이 옵션을 사용합니다.

  • 사용자 정의 경로
  • Application Gateway와 통합
  • 네트워크 보안 그룹
  • 가상 네트워크의 프라이빗 엔드포인트 뒤에 있는 리소스와 통신
  1. Container Apps 환경을 만듭니다.

    az containerapp env create \
      --resource-group "<RESOURCE_GROUP>" \
      --name "<NAME>" \
      --location "<LOCATION>"
    

    이 명령이 완료되려면 최대 10분이 소요될 수 있습니다.

  2. 환경의 상태를 확인합니다. 다음 명령은 환경이 성공적으로 만들어졌는지 여부를 보고합니다.

    az containerapp env show \
      --name "<ENVIRONMENT_NAME>" \
      --resource-group "<RESOURCE_GROUP>"
    

    provisioningState에서 Succeeded를 보고한 후에 다음 명령으로 이동해야 합니다.

  3. 새 컨테이너 앱을 만듭니다.

    az containerapp create \
      --resource-group "<RESOURCE_GROUP>" \
      --name "<CONTAINER_APP_NAME>" \
      --target-port 80 \
      --ingress external \
      --image mcr.microsoft.com/k8se/quickstart:latest \
      --environment "<ENVIRONMENT_NAME>" \
      --workload-profile-name "Consumption"
    

이 명령은 애플리케이션을 기본 제공 사용량 워크로드 프로필에 배포합니다. 전용 프로필에서 앱을 만들려면 먼저 환경에 프로필을 추가해야 합니다.

이 명령은 특정 워크로드 프로필을 사용하여 환경에 새 애플리케이션을 만듭니다.

사용자 지정 가상 네트워크를 사용하여 환경을 만들 때 가상 네트워크 구성을 완전히 제어할 수 있습니다. 이 컨트롤은 다음 기능을 구현하는 옵션을 제공합니다.

  • 사용자 정의 경로
  • Application Gateway와 통합
  • 네트워크 보안 그룹
  • 가상 네트워크의 프라이빗 엔드포인트 뒤에 있는 리소스와 통신

다음 명령을 사용하여 Container Apps 환경을 만듭니다.

  1. 가상 네트워크를 만듭니다.

    az network vnet create \
      --address-prefixes 13.0.0.0/23 \
      --resource-group "<RESOURCE_GROUP>" \
      --location "<LOCATION>" \
      --name "<VNET_NAME>"
    
  2. 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 런타임에 가상 네트워크에 대해 필요한 제어 권한을 부여할 수 있습니다.

    서브넷 크기는 최소 /27 CIDR(IP 32개 중 8개 예약)까지 지정할 수 있습니다. /27 CIDR을 지정하려는 경우 다음 항목을 고려합니다.

    • Container Apps 인프라용으로 예약된 IP 주소는 11개입니다. 따라서 /27 CIDR에는 최대 21개의 사용 가능한 IP 주소가 있습니다.

    • IP 주소는 소비 전용 플랜과 전용 플랜 간에 다르게 할당됩니다.

      사용량 기준만 전용
      모든 복제본에는 하나의 IP가 필요합니다. 사용자는 모든 앱에서 복제본이 21개가 넘는 앱을 소유할 수 없습니다. 가동 중지 시간이 없는 배포의 경우 새 수정 버전이 성공적으로 배포될 때까지 이전 수정 버전이 실행되므로 두 배의 IP가 필요합니다. 모든 인스턴스(VM 노드)에는 하나의 IP가 필요합니다. 모든 워크로드 프로필에서 최대 21개의 인스턴스를 소유할 수 있으며, 이러한 워크로드 프로필에서 실행되는 복제본은 수백 개 이상 소유할 수 있습니다.
  3. Container Apps 환경을 만듭니다.

    참고

    컨테이너 앱이 공용 수신을 허용하는지 아니면 환경 수준에서 가상 네트워크 내에서만 수신을 허용하는지 구성할 수 있습니다. 가상 네트워크로만 수신을 제한하려면 플래그를 --internal-only 설정합니다.

    az containerapp env create \
      --resource-group "<RESOURCE_GROUP>" \
      --name "<NAME>" \
      --location "<LOCATION>"
    

    이 명령이 완료되려면 최대 10분이 소요될 수 있습니다.

  4. 환경의 상태를 확인합니다. 다음 명령은 환경이 성공적으로 만들어졌는지 여부를 보고합니다.

    az containerapp env show \
      --name "<ENVIRONMENT_NAME>" \
      --resource-group "<RESOURCE_GROUP>"
    

    provisioningState에서 Succeeded를 보고한 후에 다음 명령으로 이동해야 합니다.

  5. 새 컨테이너 앱을 만듭니다.

    az containerapp create \
      --resource-group "<RESOURCE_GROUP>" \
      --name "<CONTAINER_APP_NAME>" \
      --target-port 80 \
      --ingress external \
      --image mcr.microsoft.com/k8se/quickstart:latest \
      --environment "<ENVIRONMENT_NAME>" \
      --workload-profile-name "Consumption"
    

이 명령은 애플리케이션을 기본 제공 사용량 워크로드 프로필에 배포합니다. 전용 프로필에서 앱을 만들려면 먼저 환경에 프로필을 추가해야 합니다.

이 명령은 특정 워크로드 프로필을 사용하여 환경에 새 애플리케이션을 만듭니다.

프로필 추가

기존 환경에 새 워크로드 프로필을 추가합니다. 이 섹션에 설명된 대로 회사 프로필 유형을 지정해야 합니다.

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> 

다음 단계: