Share via


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

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

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

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

또는 다음 기능이 필요한 경우 사용자 지정 VNet을 사용하여 환경을 만들 수 있습니다.

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

사용자 지정 VNet을 사용하여 환경을 만들 때 VNet 구성을 완전히 제어할 수 있습니다. 이 정도의 컨트롤을 사용하면 다음 기능을 구현할 수 있습니다.

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

다음 명령을 사용하여 워크로드 프로필 환경을 만듭니다.

  1. VNet 만들기

    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 값을 복사하여 다음 명령에 붙여넣습니다.

    Microsoft.App/environments 위임은 Container Apps 환경에서 워크로드 프로필을 실행하는 데 필요한 VNet 제어를 Container Apps 런타임에 제공하는 데 필요합니다.

    서브넷은 /27 CIDR(IP 32개-8개 예약)만큼 작게 지정할 수 있습니다. /27 CIDR을 지정하려는 경우 다음 항목을 고려합니다.

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

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

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

    참고 항목

    컨테이너 앱이 환경 수준에서 공개 수신을 허용할지 아니면 VNet 내에서만 수신을 허용할지 여부를 구성할 수 있습니다. VNet으로만 수신을 제한하려면 --internal-only 플래그를 설정합니다.

    az containerapp env create \
      --enable-workload-profiles \
      --resource-group "<RESOURCE_GROUP>" \
      --name "<NAME>" \
      --location "<LOCATION>"
    
    az containerapp env create \
      --enable-workload-profiles \
      --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"
    

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

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

프로필 추가

기존 환경에 새 워크로드 프로필을 추가합니다.

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> 자리 표시자로 선택하는 값은 워크로드 프로필 식별 이름입니다.

식별 이름을 사용하면 환경에 동일한 유형의 여러 프로필을 추가할 수 있습니다. 식별 이름은 워크로드 프로필에서 컨테이너 앱을 배포하고 유지 관리할 때 사용하는 이름입니다.

프로필 편집

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
E4           4        32           MemoryOptimized
E8           8        64           MemoryOptimized
E16          16       128          MemoryOptimized
E32          32       256          MemoryOptimized
Consumption  4        8            Consumption

워크로드 프로필을 선택하고 --workload-profile-type 옵션에 대해 az containerapp env workload-profile set를 실행할 때 이름 필드를 사용합니다.

워크로드 프로필 표시

워크로드 프로필의 세부 정보를 표시합니다.

az containerapp env workload-profile show \
  --resource-group <RESOURCE_GROUP> \
  --name <ENVIRONMENT_NAME> \
  --workload-profile-name <WORKLOAD_PROFILE_NAME> 

다음 단계