다음을 통해 공유


Azure Functions Flex 사용 계획 호스팅

Flex 사용량은 사용한 만큼 지불하는 서버리스 청구 모델을 기반으로 하는 Linux 기반 Azure Functions 호스팅 계획입니다. 여전히 서버리스 모델을 기반으로 하는 프라이빗 네트워킹, 인스턴스 메모리 크기 선택, 빠른/대규모 스케일 아웃 기능을 도입하여 유연성과 사용자 지정 가능성을 높여줍니다.

Flex 사용량 플랜 샘플 리포지토리에서 Flex 사용량 플랜을 기능으로 하는 전체 샘플을 검토할 수 있습니다.

이점

Flex 소비 계획은 동적 크기 조정 및 실행 기반 청구를 포함하는 서버리스 소비 계획의 장점을 기반으로 합니다. Flex 사용량을 사용하면 다음과 같은 추가 기능도 가져올 수 있습니다.

  • 콜드 시작 시간 단축: 항상 준비된 인스턴스를 사용하도록 설정하여 소비 계획에 비해 콜드 시작 시간을 단축할 수 있습니다.
  • 가상 네트워크 지원: 가상 네트워크 통합 을 통해 서버리스 앱을 가상 네트워크에서 실행할 수 있습니다.
  • Per-Function 크기 조정: 앱의 각 함수 는 워크로드에 따라 독립적으로 확장되어 리소스 할당이 더 효율적일 수 있습니다.
  • 향상된 동시성 처리: 함수당 구성 가능한 동시성 설정을 사용하여 동시 실행을 더 효율적으로 처리합니다.
  • 유연한 메모리 구성: Flex Consumption는 여러 인스턴스 크기 옵션을 제공하므로 특정 워크로드 요구 사항에 맞게 최적화할 수 있습니다.

이 표는 Flex 사용량의 기능을 사용량 호스팅 계획과 직접 비교하는 데 도움이 됩니다.

기능 Consumption Flex 사용량
0으로 조정 ✅ 예 ✅ 예
크기 조정 동작 이벤트 기반 이벤트 기반(빠름)
가상 네트워크 ❌ 지원되지 않음 ✅지원되는 사항
전용 컴퓨팅(콜드 부팅 완화) ❌ 없음 ✅ 상시 준비된 인스턴스(선택 사항)
결제 실행 시간에만 실행 시간 + 상시 준비된 인스턴스
인스턴스 스케일 아웃(최대) 200 1000

사용량 플랜과 기타 모든 계획 및 호스팅 형식에 대한 Flex 사용량 플랜의 전체 비교를 보려면 함수 크기 조정 및 호스팅 옵션을 참조하세요.

가상 네트워크 통합

Flex 사용량은 가상 네트워크 통합에 대한 지원을 추가하여 사용량 플랜의 기존 이점을 확장합니다. 앱이 Flex 사용량 플랜으로 실행되면 가상 네트워크 내에서 보호되는 다른 Azure 서비스에 연결할 수 있습니다. 동시에 Flex 사용량 계획의 크기 조정성 및 처리량 이점과 함께 서버리스 청구 및 크기 조정성을 활용할 수 있습니다. 자세한 내용은 가상 네트워크 통합 사용을 참조하세요.

인스턴스 크기

Flex 사용량 플랜에서 함수 앱을 만들 때 앱이 실행되는 인스턴스의 메모리 크기를 선택할 수 있습니다. 인스턴스 메모리 크기가 함수 앱 비용에 어떤 영향을 미치는지 알아보려면 청구를 참조하세요.

현재 Flex Consumption는 다음과 같은 인스턴스 크기 옵션을 제공합니다.

인스턴스 메모리(MB) CPU 코어
512 0.25
2048 1
4096 2

비고

표시된 CPU 코어 값은 지정된 메모리 크기를 가진 인스턴스에 대한 일반적인 할당입니다. 그러나 성능을 향상시키기 위해 초기 인스턴스에 약간 다른 코어 할당이 부여될 수 있습니다.

앱에 사용할 인스턴스 메모리 크기를 결정할 때 고려해야 할 몇 가지 사항은 다음과 같습니다.

  • 2,048MB 인스턴스 메모리 크기는 기본값이며 대부분의 시나리오에 사용해야 합니다. 512MB 및 4,096MB 인스턴스 메모리 크기는 애플리케이션의 동시성 또는 처리 능력 요구 사항에 가장 적합한 시나리오에 사용할 수 있습니다. 자세한 내용은 인스턴스 메모리 구성을 참조하세요.
  • 인스턴스 메모리 크기는 언제든지 변경할 수 있습니다. 자세한 내용은 인스턴스 메모리 구성을 참조하세요.
  • 인스턴스 리소스는 Functions 코드와 Functions 호스트 간에 공유됩니다.
  • 인스턴스 메모리 크기가 클수록 각 인스턴스는 동시 실행이나 집약적인 CPU 또는 메모리 워크로드까지 더 많이 처리할 수 있습니다. 특정 규모 결정은 워크로드에 따라 다릅니다.
  • HTTP 트리거의 기본 동시성은 인스턴스 메모리 크기에 따라 다릅니다. 자세한 내용은 HTTP 트리거 동시성을 참조하세요.
  • 사용 가능한 CPU 및 네트워크 대역폭은 특정 인스턴스 크기에 비례하여 제공됩니다.

함수별 크기 조정

동시성은 Flex 사용량 함수 앱의 크기 조정 방식을 결정하는 핵심 요소입니다. 다양한 트리거 형식을 사용하여 앱의 크기 조정 성능을 개선하기 위해 Flex 사용량 플랜은 함수별로 앱의 크기를 조정하는 보다 결정적인 방법을 제공합니다.

함수별 크기 조정 동작은 호스팅 플랫폼의 일부이므로 앱을 구성하거나 코드를 변경할 필요가 없습니다. 자세한 내용은 이벤트 기반 크기 조정 문서의 함수별 크기 조정을 참조하세요.

함수별 크기 조정에서는 그룹 집계를 기반으로 특정 함수 트리거에 대한 결정을 내립니다. 다음 표는 정의된 함수 크기 조정 그룹 집합을 보여줍니다.

그룹 크기 조정 그룹 내 트리거 설정 값
HTTP 트리거 HTTP 트리거
SignalR 트리거
http
Blob Storage 트리거
(Event Grid 기반)
Blob Storage 트리거 blob
지속성 함수 오케스트레이션 트리거
작업 트리거
엔터티 트리거
durable

앱의 다른 모든 함수는 function:<NAMED_FUNCTION> 규칙을 사용하여 참조되는 자체 인스턴스 세트에서 개별적으로 크기가 조정됩니다.

상시 준비 인스턴스

Flex 사용량에는 항상 실행되고 각 함수별 크기 조정 그룹 또는 함수에 할당되는 인스턴스를 선택할 수 있는 상시 준비 함수가 포함되어 있습니다. 항상 준비는 요청을 처리할 준비가 된 최소 인스턴스 수가 필요한 시나리오에 적합한 옵션입니다. 예를 들어, 애플리케이션의 콜드 부팅 대기 시간을 줄이는 것입니다. 기본값은 0(영)입니다.

예를 들어, HTTP 함수 그룹에 대해 상시 준비를 2로 설정하면 플랫폼은 앱의 HTTP 함수에 대해 항상 두 개의 인스턴스를 실행하고 앱에 할당된 상태를 유지합니다. 이러한 인스턴스는 함수 실행을 처리하고 있지만 동시성 설정에 따라 플랫폼은 주문형 인스턴스를 사용하여 두 인스턴스 이상으로 크기 조정됩니다.

영역 중복을 사용하도록 설정하는 동안 함수 또는 함수 그룹별로 항상 준비된 인스턴스를 두 개 이상 구성할 수 있습니다.

상시 준비된 인스턴스를 구성하는 방법을 알아보려면 상시 준비된 인스턴스 수 설정을 참조하세요.

동시성

동시성은 앱 인스턴스에서 함수의 병렬 실행 횟수를 나타냅니다. 각 인스턴스가 특정 시간에 처리해야 하는 최대 동시 실행 수를 설정할 수 있습니다. 동시성은 앱 크기 조정 방식에 직접적인 영향을 미칩니다. 동시성 수준이 낮을수록 함수에 대한 이벤트 중심 수요를 처리하기 위해 더 많은 인스턴스가 필요하기 때문입니다. 동시성을 제어하고 미세 조정할 수 있지만 대부분의 경우에 작동하는 기본값을 제공합니다.

HTTP 트리거 함수에 대한 동시성 제한을 설정하는 방법을 알아보려면 HTTP 동시성 제한 설정을 참조하세요. HTTP가 아닌 트리거 함수에 대한 동시성 제한을 설정하는 방법을 알아보려면 대상 기반 크기 조정을 참조하세요.

배포

Flex 사용 플랜의 배포는 단일 경로를 따르므로 더 이상 앱 설정이 배포 동작에 영향을 줄 필요가 없습니다. 프로젝트 코드가 빌드되어 애플리케이션 패키지로 압축된 후 Blob Storage 컨테이너에 배포됩니다. 시작할 때 앱은 패키지를 가져오고 이 패키지에서 함수 코드를 실행합니다. 기본적으로 내부 호스트 메타데이터(AzureWebJobsStorage)를 저장하는 데 사용되는 것과 동일한 스토리지 계정이 배포 컨테이너로도 사용됩니다. 그러나 대체 스토리지 계정을 사용하거나 앱 배포 설정을 구성하여 기본 인증 방법을 선택할 수 있습니다.

가동 중지 시간 0개 배포

비고

가동 중단 없는 배포와 롤링 업데이트가 현재 공개 프리뷰로 제공됩니다.

Flex Consumption는 사이트 업데이트 전략으로 롤링 업데이트를 통한 가동 중지 시간 배포를 제공하지 않으며, 이를 통해 함수 실행을 중단하지 않고도 인스턴스 간에 코드 배포 및 구성 변경 내용을 점진적으로 적용할 수 있습니다. 다른 호스팅 계획은 배포 슬롯을 사용하여 배포 중 가동 중지 시간을 최소화합니다. 모든 호스팅 계획에서 배포 옵션은 배포 최적화를 참조하세요.

결제

Flex 사용량 플랜에서 앱을 실행할 때 비용이 결정되는 두 가지 모드가 있습니다. 각 모드는 인스턴스별로 결정됩니다.

청구 모드 설명
주문형 주문형 모드로 실행하면 사용 가능한 인스턴스에서 함수 코드가 실행되는 시간에 대해서만 요금이 청구됩니다. 주문형 모드에서는 최소 인스턴스 수가 필요하지 않습니다. 다음 항목에 대해 요금이 청구됩니다.

• 각 주문형 인스턴스가 함수를 적극적으로 실행하는 동안 프로비전된 총 메모리 양(GB-초)에서 매월 무료로 제공되는 GB-초를 뺀 값입니다.
• 총 실행 수에서 월별 무료 실행 허용(수)을 뺀 값입니다.
상시 준비 특정 트리거 유형(HTTP/Durable/Blob)과 개별 함수에 할당된 하나 이상의 인스턴스를 구성하여 항상 요청을 처리할 수 있습니다. 상시 준비 인스턴스를 사용하도록 설정하면 다음 비용이 청구됩니다.

• 모든 상시 준비 인스턴스에 걸쳐 프로비전된 총 메모리 양, 기준(GB-초)이라고 합니다.
• 각각의 상시 준비 인스턴스가 적극적으로 함수를 실행하는 동안 프로비전된 총 메모리 양(GB-초).
• 총 실행 횟수.

상시 준비 청구에는 무료 보조금이 없습니다.

실행 가격 책정, 상시 준비 초기 비용, 주문형 실행에 대한 무료 보조금에 대한 최신 정보를 보려면 Azure Functions 가격 책정 페이지를 참조하세요.

두 실행 모드 모두에 대해 청구 가능한 최소 실행 기간은 1,000ms입니다. 그 이후에는 청구 가능한 작업 기간이 가장 가까운 100ms로 반올림됩니다. 모니터링 참조에서 Flex 사용량 플랜 청구 기준에 대한 세부 정보를 확인할 수 있습니다.

예를 포함하여 Flex Consumption 계획에서 실행할 때 비용을 계산하는 방법에 대한 자세한 내용은 소비 기반 비용비용 관련 데이터 보기를 참조하세요.

지원되는 언어 스택 버전

이 표는 현재 Flex 사용량 앱에 지원되는 언어 스택 버전을 보여 줍니다.

언어 스택 필수 버전
C#(격리 프로세스 모드)1 .NET 82, .NET 93
자바 Java 11, Java 17, Java 21
Node.js Node.js 20, Node.js 22
PowerShell PowerShell 7.4
파이썬 Python 3.10, Python 3.11, Python 3.12
  1. C# In-process 모드 는 지원되지 않습니다. 대신 격리된 작업자 모델에서 실행되도록 .NET 코드 프로젝트를 마이그레이션해야 합니다.
  2. 1.20.0 Microsoft.Azure.Functions.Worker 버전 이상 및 1.16.2 버전 이상이 필요합니다.
  3. 2.0.0Microsoft.Azure.Functions.Worker.Sdk의 버전 이상이 필요합니다.

지역 구독 메모리 할당량

Flex Consumption 계획에는 특정 지역 및 구독에서 동시에 사용할 수 있는 모든 Flex Consumption 앱의 컴퓨팅 양을 제한하는 메모리 기반 할당량이 있습니다. 한 지역의 전체 구독에 대해 GB 또는 CPU 코어로 측정된 메모리 버킷이 있다고 상상해 보세요. 해당 지역의 모든 Flex Consumption 앱은 이 버킷을 공유합니다. Flex Consumption 앱이 허용되는 할당량을 초과하여 사용하려고 하면 일부 실행이 지연되거나 크기 조정에서 제한될 수 있지만 앱을 만들거나 배포하는 것은 차단되지 않습니다.

현재 지정된 구독의 각 지역에는 Flex Consumption 계획에서 실행되는 앱의 모든 인스턴스에 대해 250개 코어 이하 512,000 MB 의 기본 할당량이 있습니다. 이러한 할당량은 지정된 구독 및 지역에서 인스턴스 메모리 크기 및 개수의 조합이 할당량 한도 미만으로 유지된다는 것을 의미합니다. 예를 들어 이러한 각 시나리오에서 할당량에 도달하고 지역의 앱은 크기 조정을 중지합니다.

  • 하나의 512MB 앱이 250개의 인스턴스로 확장되고 두 번째 512MB 앱이 750개 인스턴스로 확장되었습니다.
  • 하나의 512MB 앱이 1,000개의 인스턴스로 확장되었습니다.
  • 하나의 2,048MB 앱이 100으로 확장되고 두 번째 2,048MB 앱이 150개 인스턴스로 확장되었습니다.
  • 250개 인스턴스로 확장된 2,048MB 앱이 하나 있습니다.
  • 125개의 인스턴스로 확장된 4,096MB 앱이 하나 있습니다.
  • 하나의 4,096MB 앱이 100으로 확장되고 2,048MB 앱 하나가 50개 인스턴스로 확장되었습니다.

0으로 크기 조정된 Flex 사용 앱이나 크기 조정되도록 표시되어 삭제된 인스턴스는 할당량에 포함되지 않습니다. 이 할당량은 요구 사항에 따라 Flex Consumption 앱의 크기를 더 확장할 수 있도록 늘릴 수 있습니다. 앱에 더 큰 할당량이 필요한 경우 지원 티켓을 만듭니다.

더 이상 사용되지 않는 속성 및 설정

Flex 소비 계획에서 대부분의 표준 애플리케이션 설정 및 사이트 구성 속성은 더 이상 사용되지 않거나 이동되었으므로 함수 앱 리소스 생성을 자동화할 때 사용하면 안 됩니다. 자세한 내용은 Flex 사용량 플랜 사용 중단을 참조하세요.

고려 사항

Flex 사용 플랜을 사용할 때 다음과 같은 사항을 염두에 둡니다.

  • 계획당 앱: Flex 소비 계획당 하나의 앱만 허용됩니다.
  • 호스트: 앱 초기화를 위한 30초 제한 시간이 있습니다. 함수 앱이 시작하는 데 30초 이상 걸리는 경우 gRPC 관련 System.TimeoutException 항목이 기록될 수 있습니다. 현재 이 시간 제한은 구성할 수 없습니다. 자세한 내용은 이 호스트 작업 항목을 참조하세요.
  • Durable Functions: Azure Storage는 현재 Flex 사용 플랜에서 호스트되는 경우 Durable Functions에 지원되는 유일한 스토리지 공급자입니다. Flex 사용 플랜에서 Durable Functions를 호스팅할 때 권장 사항을 참조하세요.
  • 가상 네트워크 통합Microsoft.App에 따라 Azure 리소스 공급자가 구독에 대해 사용하도록 설정되었는지 확인합니다. Flex 사용량 앱에 필요한 서브넷 위임은 Microsoft.App/environments입니다.
  • 트리거: 모든 트리거는 Flex 소비 계획에서 완전히 지원되지만 Blob Storage 트리거는 Event Grid 원본만 지원합니다. C#이 아닌 함수 앱은 [4.0.0, 5.0.0) 버전 이상을 사용해야 합니다.
  • 지역: 현재 일부 지역은 지원되지 않습니다. 자세한 내용은 현재 지원되는 지역 보기를 참조하세요.
  • 배포: 배포 슬롯은 현재 지원되지 않습니다.
  • 배율: 현재 가장 낮은 최대 배율은 40입니다. 현재 지원되는 가장 높은 값은 1000입니다.
  • 관리 종속성: PowerShell의 관리되는 종속성은 Flex Consumption에서 지원되지 않습니다. 대신 앱 콘텐츠가 포함된 모듈을 업로드해야 합니다.
  • 인증서: WEBSITE_LOAD_CERTIFICATES 앱 설정, 관리되는 인증서, 앱 서비스 인증서 및 endToEndEncryptionEnabled와 같은 기타 플랫폼 인증서 기반 기능을 사용하여 인증서를 로드하는 것은 현재 지원되지 않습니다.
  • 표준 시간대: Flex 사용 플랜을 실행할 때 현재 WEBSITE_TIME_ZONETZ 앱 설정이 지원되지 않습니다.

Azure Functions 호스팅 옵션Flex 사용량 플랜에서 함수 앱 만들기 및 관리