Lambda 관리형 인스턴스 규모 조정 - AWS Lambda

Lambda 관리형 인스턴스 규모 조정

Lambda 관리형 인스턴스는 간접 호출이 도착할 때 규모가 조정되지 않고 콜드 스타트를 지원하지 않습니다. 대신 리소스 소비 신호를 사용하여 비동기식으로 규모를 조정합니다. 관리형 인스턴스는 현재 CPU 리소스 사용률 및 다중 동시성 포화에 따라 규모가 조정됩니다.

주요 차이점:

  • Lambda(기본값): 수신하는 간접 호출을 처리할 수 있는 무료 실행 환경이 없는 경우 규모 조정(콜드 스타트)

  • Lambda 관리형 인스턴스: 실행 환경의 CPU 리소스 사용률 및 다중 동시성 포화를 기반으로 비동기식으로 규모 조정

5분 이내에 트래픽이 2배를 초과하는 경우 Lambda가 수요에 맞춰 인스턴스 및 실행 환경을 스케일 업함에 따라 스로틀링이 발생할 수 있습니다.

조정 수명 주기

Lambda 관리형 인스턴스는 분산 아키텍처를 사용하여 규모 조정을 관리합니다.

구성 요소:

  • 관리형 인스턴스 - 제공한 서브넷의 계정에서 실행

  • 라우터 및 스케일러 - 간접 호출을 라우팅하고 조정을 관리하는 공유 Lambda 구성 요소

  • Lambda 에이전트 - 각 관리형 인스턴스에서 실행되어 실행 환경 수명 주기를 관리하고 리소스 소비량을 모니터링

작동 방식:

  1. 용량 공급자와 함께 함수 버전을 게시하면 Lambda는 계정에서 관리형 인스턴스를 시작합니다. 기본적으로 AZ 복원력을 위해 인스턴스 3개를 시작하고 실행 환경 3개를 시작한 다음 함수 버전을 ACTIVE로 표시합니다.

  2. 각 관리형 인스턴스는 동일한 용량 공급자에 매핑된 여러 개의 함수에 대한 실행 환경을 실행할 수 있습니다.

  3. 트래픽이 애플리케이션으로 유입되면 실행 환경에서 리소스를 소비합니다. Lambda 에이전트는 새 실행 환경 또는 관리형 인스턴스의 규모 조정 여부를 결정하는 스케일러에 알림을 보냅니다.

  4. 라우터가 리소스 사용량이 많은 실행 환경에 간접 호출을 보내려고 하면 해당 인스턴스의 Lambda 에이전트가 다른 인스턴스에서 다시 시도하도록 알림을 보냅니다.

  5. 트래픽이 감소하면 Lambda 에이전트는 스케일러에 알림을 보내고, 스케일러는 실행 환경과 관리형 인스턴스를 스케일 다운하기로 결정합니다.

규모 조정 동작 수정

다음 4가지 제어를 통해 관리형 인스턴스의 규모 조정 동작을 사용자 지정할 수 있습니다.

함수 수준 제어

1. 함수 메모리 및 vCPU

함수의 메모리 크기와 vCPU 할당을 선택합니다. 지원되는 가장 작은 함수 크기는 2GB 및 1개의 vCPU입니다.

고려 사항:

  • 함수의 다중 동시 실행을 지원하는 메모리 및 vCPU 설정을 선택합니다.

  • 관리형 인스턴스에서 실행되는 함수가 다중 동시 워크로드를 지원해야 하기에 vCPU가 1개 미만인 함수는 구성할 수 없습니다.

  • 비율이 가장 낮은 c 인스턴스의 vCPU에 대한 2:1 메모리 비율과 일치하므로 2GB 미만을 선택할 수 없습니다.

  • Python 애플리케이션의 경우 Python이 다중 동시성을 처리하는 방식으로 인해 vCPU에 대한 메모리 비율을 4:1 또는 8:1로 더 높게 선택해야 할 수 있습니다.

  • CPU 집약적 작업을 실행하거나 IO를 거의 수행하지 않는 경우 vCPU를 2개 이상으로 선택해야 합니다.

2. 최대 동시성

실행 환경당 최대 동시성을 설정합니다.

기본 동작: Lambda는 다양한 애플리케이션에서 작동하는 리소스 소비량과 처리량의 균형을 맞추는 합리적인 기본값을 선택합니다.

조정 지침:

  • 동시성 증가: 함수 간접 호출에서 CPU를 거의 사용하지 않는 경우 최대 동시성을 vCPU당 최대 64까지 늘릴 수 있습니다.

  • 동시성 감소: 애플리케이션에서 대량의 메모리와 매우 적은 CPU를 사용하는 경우 최대 동시성을 줄일 수 있습니다.

중요: Lambda 관리형 인스턴스는 다중 동시 애플리케이션에 사용하므로 동시성이 매우 낮은 실행 환경에서는 규모 조정 시 스로틀링이 발생할 수 있습니다.

용량 공급자 수준 제어

3. 리소스 사용률 목표

CPU 사용률 소비 목표를 선택합니다.

기본 동작: Lambda는 트래픽이 스로틀링 없이 5분 이내에 2배가 될 수 있도록 충분한 여유 공간을 유지합니다.

최적화 옵션:

  • 워크로드가 매우 안정적이거나 애플리케이션이 스로틀링에 민감하지 않은 경우 목표를 높은 수준으로 설정하여 사용률을 높이고 비용을 절감할 수 있습니다.

  • 트래픽 급증에 대한 여유 공간을 유지하려면 더 많은 용량이 필요하도록 리소스 목표를 낮게 설정할 수 있습니다.

4. 인스턴스 유형 선택

허용 또는 제외된 인스턴스 유형을 설정합니다.

기본 동작: Lambda는 워크로드에 가장 적합한 인스턴스 유형을 선택합니다. 가능한 인스턴스 유형 수를 제한하면 가용성이 낮아질 수 있으므로 Lambda 관리형 인스턴스가 인스턴스 유형을 자동으로 선택하도록 하는 것이 좋습니다.

사용자 지정 구성:

  • 특정 하드웨어 요구 사항: 허용되는 인스턴스 유형을 호환되는 인스턴스 목록으로 설정합니다. 예를 들어 애플리케이션에서 높은 네트워크 대역폭이 필요한 경우 여러 인스턴스 유형을 선택할 수 있습니다.

  • 비용 최적화: 테스트 또는 개발 환경의 경우 m7a.large 인스턴스 유형과 같은 더 작은 인스턴스 유형을 선택할 수 있습니다.

다음 단계