Lambda 관리형 인스턴스 규모 조정
Lambda 관리형 인스턴스는 간접 호출이 도착할 때 규모가 조정되지 않고 콜드 스타트를 지원하지 않습니다. 대신 리소스 소비 신호를 사용하여 비동기식으로 규모를 조정합니다. 관리형 인스턴스는 현재 CPU 리소스 사용률 및 다중 동시성 포화에 따라 규모가 조정됩니다.
주요 차이점:
-
Lambda(기본값): 수신하는 간접 호출을 처리할 수 있는 무료 실행 환경이 없는 경우 규모 조정(콜드 스타트)
-
Lambda 관리형 인스턴스: 실행 환경의 CPU 리소스 사용률 및 다중 동시성 포화를 기반으로 비동기식으로 규모 조정
5분 이내에 트래픽이 2배를 초과하는 경우 Lambda가 수요에 맞춰 인스턴스 및 실행 환경을 스케일 업함에 따라 스로틀링이 발생할 수 있습니다.
조정 수명 주기
Lambda 관리형 인스턴스는 분산 아키텍처를 사용하여 규모 조정을 관리합니다.
구성 요소:
-
관리형 인스턴스 - 제공한 서브넷의 계정에서 실행
-
라우터 및 스케일러 - 간접 호출을 라우팅하고 조정을 관리하는 공유 Lambda 구성 요소
-
Lambda 에이전트 - 각 관리형 인스턴스에서 실행되어 실행 환경 수명 주기를 관리하고 리소스 소비량을 모니터링
작동 방식:
-
용량 공급자와 함께 함수 버전을 게시하면 Lambda는 계정에서 관리형 인스턴스를 시작합니다. 기본적으로 AZ 복원력을 위해 인스턴스 3개를 시작하고 실행 환경 3개를 시작한 다음 함수 버전을 ACTIVE로 표시합니다.
-
각 관리형 인스턴스는 동일한 용량 공급자에 매핑된 여러 개의 함수에 대한 실행 환경을 실행할 수 있습니다.
-
트래픽이 애플리케이션으로 유입되면 실행 환경에서 리소스를 소비합니다. Lambda 에이전트는 새 실행 환경 또는 관리형 인스턴스의 규모 조정 여부를 결정하는 스케일러에 알림을 보냅니다.
-
라우터가 리소스 사용량이 많은 실행 환경에 간접 호출을 보내려고 하면 해당 인스턴스의 Lambda 에이전트가 다른 인스턴스에서 다시 시도하도록 알림을 보냅니다.
-
트래픽이 감소하면 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 인스턴스 유형과 같은 더 작은 인스턴스 유형을 선택할 수 있습니다.
다음 단계
-
런타임별 다중 동시성 처리 가이드 검토
-
규모 조정 지표를 모니터링하여 규모 조정 동작 최적화