Lambda 함수 크기 조정 - AWS Lambda

Lambda 함수 크기 조정

함수를 최초로 호출하면 AWS Lambda는 함수의 인스턴스를 생성하고 핸들러 메서드를 실행하여 이벤트를 처리합니다. 함수가 응답을 반환하면 활성 상태를 유지하고 추가 이벤트를 처리하기 위해 대기합니다. 첫 번째 이벤트가 처리되는 동안 함수를 다시 호출하면 Lambda는 다른 인스턴스를 초기화하고 함수는 두 이벤트를 동시에 처리합니다. 이벤트가 추가로 수신되면 Lambda는 이 이벤트를 사용 가능한 인스턴스로 라우팅하고 필요 시 새 인스턴스를 생성합니다. 요청의 수가 감소하면 Lambda는 미사용 인스턴스를 중단하여 다른 함수를 위한 용량 조정에 필요한 여유를 확보합니다.

기본 리전별 동시성 제한값은 1,000에서 시작합니다. 자세한 내용이나 이 제한값을 늘리기 위한 요청 방법은 Lambda 할당량을 참조하십시오. 함수별로 용량을 할당하기 위해 예약된 동시성으로 함수를 구성할 수 있습니다.

함수의 동시성은 특정 시각에 요청을 처리하는 인스턴스의 수입니다. 초기 트래픽 버스트의 경우, 리전에서 함수의 누적 동시성은 500 ~ 3000의 최초 레벨에 도달할 수 있으며, 이는 리전에 따라 달라집니다. 버스트 동시성 할당량은 함수별로 할당되지 않으며 리전의 모든 함수에 적용됩니다.

버스트 동시성 할당량

  • 3,000 – 미국 서부(오리건), 미국 동부(버지니아 북부), 유럽(아일랜드)

  • 1,000 – 아시아 태평양(도쿄), 유럽(프랑크푸르트), 미국 동부(오하이오)

  • 500 – 기타 리전

최초 버스트 이후 함수의 동시성은 매분 500개의 추가 인스턴스까지 확장될 수 있습니다. 이러한 확장은 모든 요청을 처리할 만큼 인스턴스가 충분해질 때까지 또는 동시성 한도에 이를 때까지 계속됩니다. 함수가 확장하는 속도보다 더 빠르게 요청이 수신되거나 함수가 최대 동시성에 도달한 경우 추가 요청은 조절 오류(429 상태 코드)로 인해 실패합니다.

다음 예제에서는 트래픽 급증을 처리하는 함수를 보여 줍니다. 호출이 기하 급수적으로 증가하면 함수가 확장됩니다. 사용 가능한 인스턴스로 라우팅할 수 없는 요청에 대해 새 인스턴스를 초기화합니다. 버스트 동시성 한도에 도달하면 함수는 선형으로 확장되기 시작합니다. 이것으로 모든 요청을 동시에 처리하기에 충분하지 않을 경우, 추가 요청에서 병목이 발생하므로 다시 시도해야 합니다.


      버스트 한도에 도달하면 동시성은 선형으로 확장됩니다. 추가 요청은 제한됩니다.

Legend

  • 함수 인스턴스

  • 미결 요청

  • 제한 가능

함수는 함수의 리전에 대한 계정의 동시성 한도에 도달할 때까지 계속 확장됩니다. 이 함수는 수요를 따라잡고 요청이 감소하면 잠시 유휴 상태가 된 이후에 함수의 미사용 인스턴스가 중지됩니다. 미사용 인스턴스는 요청을 기다리는 동안 정지되어 요금이 부과되지 않습니다.

함수가 확장될 때 각 인스턴스에서 처리되는 첫 번째 요청은 코드를 로드하고 초기화하는 데 걸리는 시간에 의해 영향을 받습니다. 초기화 코드에 오랜 시간이 걸리는 경우, 평균 및 백분위수 지연 시간에 미치는 영향이 상당히 클 수 있습니다. 지연 시간의 변동 없이 함수를 확장할 수 있도록 하려면 프로비저닝된 동시성을 사용하세요. 다음 예제에서는 프로비저닝된 동시성을 사용해 트래픽 급증을 처리하는 함수를 보여 줍니다.


      프로비저닝된 동시성을 통해 확장됩니다.

Legend

  • 함수 인스턴스

  • 미결 요청

  • 프로비저닝된 동시성

  • 표준 동시성

프로비저닝된 동시성을 할당하면 함수는 매우 짧은 지연 시간으로 수신되는 요청 버스트를 처리할 수 있는 준비가 됩니다. 프로비저닝된 모든 동시성이 사용 중이면 함수는 추가 요청을 처리하기 위해 정상적으로 확장됩니다.

Application Auto Scaling은 프로비저닝된 동시성에 자동 크기 조정을 제공하여 한 단계 더 나아갑니다. Application Auto Scaling을 사용하여 Lambda가 내보내는 사용률 지표에 따라 프로비저닝된 동시성 수준을 자동으로 조정하는 대상 추적 크기 조정 정책을 생성할 수 있습니다. Application Auto Scaling API를 사용하여 별칭을 조정 가능한 대상으로 등록하고 크기 조정 정책을 생성합니다.

다음 예제에서는 프로비저닝된 동시성의 최소 양과 최대 양 사이에서 함수 크기가 사용률에 따라 조정됩니다. 미결 요청 수가 증가하면 구성된 최대값에 도달할 때까지 Application Auto Scaling이 프로비저닝된 동시성을 큰 폭으로 늘립니다. 사용률이 떨어지기 시작할 때까지 표준 동시성에서 함수 크기가 계속 조정됩니다. 사용률이 계속 낮아지면 Application Auto Scaling은 프로비저닝된 동시성을 주기적인 작은 단계로 줄입니다.


      Application Auto Scaling 대상 추적으로 프로비저닝된 동시성 자동 조정.

Legend

  • 함수 인스턴스

  • 미결 요청

  • 프로비저닝된 동시성

  • 표준 동시성

이벤트 소스 매핑이나 다른 AWS 서비스를 사용하여 함수를 비동기식으로 호출하는 경우, 조정 동작이 달라집니다. 예를 들어 스트림에서 읽기를 수행하는 이벤트 소스 매핑은 스트림 내 샤드 수에 의해 제한됩니다. 이벤트 소스에서 사용하지 않는 조정 용량은 다른 클라이언트 및 이벤트 소스에서 사용할 수 있습니다. 자세한 내용은 다음 항목을 참조하세요.

다음 지표를 사용하여 계정 내 동시성 수준을 모니터링할 수 있습니다.

동시성 지표

  • ConcurrentExecutions

  • UnreservedConcurrentExecutions

  • ProvisionedConcurrentExecutions

  • ProvisionedConcurrencyInvocations

  • ProvisionedConcurrencySpilloverInvocations

  • ProvisionedConcurrencyUtilization

자세한 내용은 AWS Lambda 함수 지표 작업 섹션을 참조하세요.