Azure Functions 호스팅 옵션 비교

완료됨

Azure에서 함수 앱을 만들 때는 앱의 호스팅 계획을 선택해야 합니다. Azure Functions에 사용할 수 있는 세 가지 기본 호스팅 계획인 소비 계획, 프리미엄 계획App Service 계획(전용)이 있습니다. 모든 호스팅 계획은 Linux 및 Windows 가상 머신 모두에서 GA(일반 제공) 대상입니다.

선택한 호스팅 계획에 따라 다음 동작이 결정됩니다.

  • 함수 앱의 크기 조정 방법
  • 각 함수 앱 인스턴스에 사용 가능한 리소스
  • Azure Virtual Network 연결 등의 고급 기능 지원

다음은 Functions의 세 가지 주요 호스팅 계획이 가지는 이점에 대한 요약입니다.

계획 이점
사용 플랜 이것은 기본 호스팅 계획입니다. 기본 호스팅 계획은 크기를 자동으로 조정하며 사용자는 함수가 실행 중일 때만 컴퓨팅 리소스에 대한 비용을 지불합니다. Functions 호스트의 인스턴스는 들어오는 이벤트의 수를 기준으로 동적으로 추가 및 제거됩니다.
프리미엄 계획 유휴 상태 후 지연 없이 애플리케이션을 실행하고, 더 강력한 인스턴스에서 실행되고, 가상 네트워크에 연결하는 사전 준비가 된 작업자를 사용하여 수요에 따라 크기가 자동으로 조정됩니다.
전용 계획 App Service 계획 내에서 함수를 정기적인 App Service 계획 요금으로 실행합니다. Durable Functions를 사용할 수 없는 장기 실행 시나리오에 적합합니다.

가장 높은 수준의 제어와 격리를 바탕으로 함수 앱을 실행할 수 있는 다른 두 가지 호스팅 옵션이 있습니다.

호스팅 옵션 세부 정보
ASE ASE(Azure App Service Environment)는 App Service 앱을 높은 확장성으로 안전하게 실행하기 위해 완전히 격리된 전용 환경을 제공하는 App Service 기능입니다.
Kubernetes(직접 또는 Azure Arc) Kubernetes는 Kubernetes 플랫폼을 기반으로 실행되는 완전히 격리된 전용 환경을 제공합니다.

호스팅 계획 및 크기 조정

다음 테이블에서는 다양한 호스팅 계획의 크기 조정 동작을 비교합니다. 달리 명시되지 않는 한, 최대 인스턴스는 함수 앱(소비) 또는 플랜(프리미엄/전용) 기준으로 제공됩니다.

계획 확장 최대 인스턴스 수
사용 계획 이벤트 기반 높은 부하 기간 동안에도 자동으로 규모 확장 Azure Functions 인프라는 들어오는 트리거 이벤트의 수를 기반으로 Functions 호스트의 더 많은 인스턴스를 추가하여 CPU 및 메모리 리소스의 크기를 조정합니다. Windows: 200, Linux: 100
프리미엄 계획 이벤트 기반 높은 부하 기간 동안에도 자동으로 규모 확장 Azure Functions 인프라는 해당 함수가 트리거되는 이벤트의 수를 기반으로 Functions 호스트의 더 많은 인스턴스를 추가하여 CPU 및 메모리 리소스의 크기를 조정합니다. Windows: 100, Linux: 20~100
전용 계획 크기 수동/자동 조정 10-20
ASE 크기 수동/자동 조정 100
Kubernetes KEDA를사용하여 Kubernetes 클러스터에 대한 이벤트 기반 자동 크기 조정 클러스터에 따라 다름

참고

최대 스케일 아웃은 지역 및 호스팅 계획에 따라 달라질 수 있습니다. 자세한 내용은 프리미엄 계획 문서App Service 계획 제한을 참조하세요.

함수 앱 시간 제한 기간

host.json 프로젝트 파일의 functionTimeout 속성은 함수 앱에서 함수의 시간 제한 기간을 지정합니다. 이 속성은 특히 함수 실행에 적용됩니다. 트리거가 함수 실행을 시작한 후 함수는 시간 제한 기간 내에 반환/응답해야 합니다.

아래의 표에는 특정 플랜에 대한 기본값과 최댓값(분)이 나와 있습니다.

계획 기본값 최대
소비 계획 5 10
프리미엄 플랜 30 제한 없음
전용 계획 30 제한 없음

Storage 계정 요구 사항

어떤 플랜에서든 함수 앱에는 Azure Blob, Queue, Files 및 Table 스토리지를 지원하는 일반 Azure Storage 계정이 필요합니다. Functions는 트리거 관리 및 함수 실행 기록과 같은 작업에 Azure Storage를 사용하지만 일부 스토리지 계정은 큐와 테이블을 지원하지 않기 때문입니다.

함수 앱에서 사용하는 것과 동일한 스토리지 계정을 트리거와 바인딩에서 사용하여 애플리케이션 데이터를 저장할 수도 있습니다. 그러나 스토리지를 많이 사용하는 작업의 경우에는 별도의 스토리지 계정을 사용해야 합니다.