다음을 통해 공유


Azure Container Apps에서 프리미엄 인그레스 사용

이 문서에서는 Azure Container Apps에서 프리미엄 인그레스를 사용하는 방법을 알아봅니다. 프리미엄 인그레스를 사용하면 높은 수요가 있는 워크로드를 더 잘 처리하기 위해 인그레스를 어떻게 확장 및 구성할지 정의할 수 있습니다.

필수 조건

리소스 그룹 만들기

  1. Azure에 로그인합니다.
az login
  1. Azure CLI를 최신 버전으로 업그레이드합니다.
az upgrade
  1. 필요한 리소스 공급자를 등록합니다.
az provider register --namespace Microsoft.App
az provider register --namespace Microsoft.OperationalInsights
  1. 다음 명령을 사용하여 리소스 그룹을 만듭니다.
az group create --name my-container-apps --location centralus

환경 만들기

컨테이너 앱 환경을 만들려면 다음 명령을 실행합니다.

az containerapp env create \
  --name my-container-apps-env \
  --resource-group my-resource-group \
  --location centralus

워크로드 프로필 구성

환경에 워크로드 프로필을 추가합니다(프리미엄 인그레스에 필요함).

az containerapp env workload-profile add \
  --resource-group my-resource-group \
  --name my-container-apps-env \
  --workload-profile-name Ingress-D4 \
  --workload-profile-type D4 \

프리미엄 인그레스를 사용하려면 워크로드 프로필에 노드가 두 개 이상 있어야 합니다.

프리미엄 인그레스 구성

다음 명령을 사용하여 환경에 프리미엄 인그레스 설정을 추가합니다.

az containerapp env premium-ingress add \
  --resource-group my-resource-group \
  --name my-container-apps-env \
  --workload-profile-name Ingress-D4 \
  --termination-grace-period 500 \
  --request-idle-timeout 4 \
  --header-count-limit 100

다음 표에서는 Container Apps 환경에 대한 프리미엄 수신 설정을 구성할 때 설정할 수 있는 매개 변수에 대해 설명합니다.

매개 변수 Description Default 최소 최대
termination-grace-period 수신을 종료하기 전에 활성 연결을 닫을 수 있는 시간(초)입니다. n/a 0 3600
request-idle-limit 연결이 끊기기 전에 요청이 유휴 상태로 유지될 수 있는 시간(분)입니다. 4 4 30
header-count-limit 요청당 허용되는 최대 HTTP 헤더 수입니다. 100 1 n/a

구성되면 방금 적용한 설정의 출력이 표시됩니다.

{
  "headerCountLimit": 100,
  "requestIdleTimeout": 4,
  "terminationGracePeriodSeconds": 500,
  "workloadProfileName": "Ingress-D4"
}

프리미엄 인그레스 업데이트 및 관리

환경에 대한 프리미엄 인그레스 설정을 업데이트하려면 다음 명령을 실행합니다.

az containerapp env premium-ingress update \
  --resource-group my-resource-group \
  --name my-container-apps-env \
  --workload-profile-name Ingress-D4 \
  --termination-grace-period 500 \
  --request-idle-timeout 4 \
  --header-count-limit 100

환경의 프리미엄 인그레스 설정을 표시하려면 다음 명령어를 실행하세요.

az containerapp env premium-ingress show \
  --resource-group my-resource-group \
  --name my-container-apps-env

환경에 대한 프리미엄 인그레스 설정을 제거하려면 다음 명령을 실행합니다.

az containerapp env premium-ingress remove \
  --resource-group my-resource-group \
  --name my-container-apps-env

환경에서 워크로드 프로필을 제거하려면 다음 명령을 실행합니다.

az containerapp env workload-profile delete \
  --resource-group my-resource-group \
  --name my-container-apps-env \
  --workload-profile-name Ingress-D4

필수 조건

Bicep을 사용하여 배포

다음 Bicep 파일을 만들어 ingress.bicep로 저장합니다.

resource containerAppsEnvironment 'Microsoft.App/managedEnvironments@2025-07-01' = {
  name: 'my-container-app-env'
  location: 'centralus'
  tags: tags
  properties: {
    workloadProfiles: [
      {
        name: 'Ingress-D4'
        workloadProfileType: 'D4'
        minimumCount: 2
        maximumCount: 4
      }
    ]
    ingressConfiguration: {
      workloadProfileName: 'Ingress-D4'
      terminationGracePeriodSeconds: 600
      headerCountLimit: 101
      requestIdleTimeout: 5
    }
  }
}              

이 단계에서는 다음 설정을 포함하여 프리미엄 수신 구성을 사용하여 Container Apps 환경을 배포합니다.

이름 Description
name 프리미엄 인그레스에 사용되는 워크로드 프로필의 이름입니다.
workloadProfileType 크기 조정 및 리소스 할당을 위한 워크로드 프로필의 형식/크기(예: D4)입니다.
minimumCount 워크로드 프로필에 대한 최소 인스턴스 수입니다. 최소: 2.
maximumCount 워크로드 프로필의 최대 인스턴스 수입니다. 최대: 50.
workloadProfileName 인그레스 구성과 연결된 워크로드 프로필 이름입니다.
terminationGracePeriodSeconds 수신을 종료하기 전에 활성 연결을 닫을 수 있는 시간(초)입니다. 최소: 0, 최대: 60.
headerCountLimit 요청당 허용되는 최대 HTTP 헤더 수입니다. 기본값: 100, 최소: 1.
requestIdleTimeout 연결이 끊기기 전에 요청이 유휴 상태로 유지될 수 있는 시간(분)입니다. 기본값: 4, 최소: 4, 최대: 30.

Azure에 배포

ingress.bicep 파일을 저장한 디렉터리로 이동한 다음, 다음 명령을 실행하여 Bicep 파일을 배포합니다.

# Login to Azure (if not already logged in)
azd auth login

# Provision and deploy the infrastructure
azd up

배포 관리

다음 명령을 사용하여 컨테이너 앱의 상태 및 로그를 볼 수 있습니다.

# Check deployment status
azd show

# Clean up all resources
azd down

# View deployment logs
azd logs

환경을 만든 후 사용자 환경에 대한 수신을 구성할 수 있습니다.

  1. Azure Portal에서 Container Apps 환경으로 이동합니다.

  2. 설정에서 네트워킹을 선택합니다.

  3. 수신 설정 탭을 선택합니다.

  4. 다음 설정에 따라 인그레스 설정을 구성하십시오.

    Setting 가치
    수신 모드 프리미엄선택합니다.
    워크로드 프로필 크기 D4에서 D32까지의 크기를 선택합니다.
    최소 노드 인스턴스 최소 워크로드 프로필 노드 인스턴스를 입력합니다.
    최대 노드 인스턴스 최대 워크로드 프로필 노드 인스턴스를 입력합니다.
    종료 유예 기간 종료 유예 기간을 분 단위로 입력합니다.
    유휴 요청 시간 초과 유휴 요청 제한 시간(분)을 입력합니다.
    요청 헤더 수 요청 헤더 수를 입력합니다.
  5. 적용을 선택합니다.

모니터링 및 메트릭

수신 메트릭은 Container Apps 환경 인스턴스의 Azure Portal을 통해 사용할 수 있습니다. 모니터링에서 메트릭을 선택합니다. 이러한 메트릭은 디폴트 또는 프리미엄 수신이 활성화된 상태에서 사용할 수 있습니다. 추가 메트릭이 진행 중입니다.

  • 수신 CPU 사용량
  • 인그레스 메모리 사용 바이트

벤치마크 결과에 따르면, 인그레스를 통해 CPU 코어당 초당 약 3,000개의 요청을 처리할 수 있지만, 용량은 애플리케이션의 사용 방식에 따라 달라질 수 있습니다. 애플리케이션이 환경이 처리할 수 있는 것보다 더 빨리 요청을 수신하고 수신 계층에서 요청이 큐에 대기되는 경우에만 메모리가 병목 상태가 되는 경향이 있습니다.

각 모드에서 수신에 할당된 리소스는 다음과 같습니다.

Mode Instances CPU (중앙 처리 장치) Memory CPU 스케일 임계값 메모리 배율 임계값
기본값 2-10 1 코어 2GB 75% 50%
프리미엄 노드당 1개(최소 2) 노드 코어의 90% 노드 메모리의 90% 노드의 코어 50% 노드 메모리의 50%

자원을 정리하세요

이 애플리케이션을 계속 사용하지 않으려면 다음 명령을 실행하여 이 빠른 시작에서 만든 모든 리소스와 함께 리소스 그룹을 삭제합니다.

주의

다음 명령은 지정된 리소스 그룹과 그 안에 포함된 모든 리소스를 삭제합니다. 이 빠른 시작의 범위를 벗어난 리소스가 지정된 리소스 그룹에 있으면 해당 리소스도 삭제됩니다.

az group delete --name my-container-apps