Azure Functions 크기 조정

완료됨

사용 및 프리미엄 계획에서 Azure Functions는 함수 호스트의 추가 인스턴스를 추가하여 CPU 및 메모리 리소스의 크기를 조정합니다. 인스턴스의 수는 함수를 트리거하는 이벤트의 수에 따라 결정됩니다.

사용 계획에 있는 함수 호스트의 각 인스턴스는 1.5 GB의 메모리와 하나의 CPU로 제한됩니다. 호스트의 인스턴스는 전체 함수 앱입니다. 즉, 함수 앱 내에 있는 모든 기능은 인스턴스 내에서 리소스를 공유하고 동시에 크기 조정됩니다. 동일한 사용 계획을 공유하는 함수 앱은 독립적으로 크기를 조정합니다. 프리미엄 계획에서 계획 크기는 해당 인스턴스에서 해당 계획의 모든 앱에 대해 사용 가능한 메모리와 CPU를 결정합니다.

함수 코드 파일은 함수의 주 스토리지 계정에 있는 Azure Files 공유에 저장됩니다. 함수 앱의 주 스토리지 계정을 삭제하면 함수 코드 파일이 삭제되고 복구할 수 없습니다.

런타임 크기 조정

Azure Functions는 크기 조정 컨트롤러라는 구성 요소를 사용하여 이벤트의 비율을 모니터링하고 규모를 확장하거나 감축할 것인지 결정합니다. 크기 조정 컨트롤러는 각 트리거 유형에 대해 추론을 사용합니다. 예를 들어 Azure Queue Storage 트리거를 사용하는 경우 큐 길이 및 가장 오래된 큐 메시지의 기간에 따라 트리거가 조정됩니다.

Azure Functions 확장 단위는 함수 앱입니다. 함수 앱을 확장하는 경우 Azure Functions 호스트의 여러 인스턴스를 실행하기 위해 더 많은 리소스가 할당됩니다. 반대로, 컴퓨팅 수요가 감소하면 크기 조정 컨트롤러에서 함수 호스트 인스턴스를 제거합니다. 함수 앱 내에서 실행 중인 함수가 없으면 인스턴스 수는 결국 0으로 "스케일 인"됩니다.

Scale controller monitoring events and creating instances

참고 항목

함수 앱이 몇 분 동안 유휴 상태가 된 후 플랫폼은 앱이 실행되는 인스턴스 수를 0으로 크기 조정할 수 있습니다. 다음 요청에는 0에서 1로 크기를 조정하는 추가 대기 시간이 있습니다. 이 대기 시간을 콜드 부팅이라고 합니다.

크기 조정 동작

크기 조정은 여러 요인에 따라 다르고, 선택한 트리거 및 언어에 따라 달라질 수 있습니다. 유의해야 할 몇 가지 확장 동작은 다음과 같습니다.

  • 최대 인스턴스: 단일 함수 앱은 최대 200개의 인스턴스로 스케일 아웃할 수 있습니다. 단일 인스턴스는 동시에 둘 이상의 메시지 또는 요청을 처리할 수 있지만 동시 실행 수를 제한하지 않습니다.

  • 새 인스턴스율: HTTP 트리거의 경우 새 인스턴스는 최대 1초당 한 번씩 할당됩니다. HTTP가 아닌 트리거의 경우 새 인스턴스는 최대 30초마다 한 번씩 할당됩니다.

스케일 아웃 제한

앱을 스케일 아웃하는 데 사용되는 최대 인스턴스 수를 제한할 수 있습니다. 이는 데이터베이스와 같은 다운스트림 구성 요소의 처리량이 제한되는 경우에 가장 일반적입니다. 기본적으로 사용 계획 함수는 최대 200개의 인스턴스까지, 프리미엄 계획 함수는 최대 100개의 인스턴스까지 스케일 아웃됩니다. functionAppScaleLimit 값을 수정하여 특정 앱에 대해 더 낮은 최댓값을 지정할 수 있습니다. functionAppScaleLimit는 무제한으로 0 또는 null로 설정하거나, 1과 앱의 최댓값 사이의 값으로 설정할 수 있습니다.