Lambda 관리형 인스턴스 실행 환경 이해
Lambda 관리형 인스턴스는 Lambda가 운영 측면을 관리하는 동안 고객 소유 Amazon EC2 인스턴스에서 함수 코드를 실행하는 대체 배포 모델을 제공합니다. 관리형 인스턴스의 실행 환경에는 Lambda(기본값) 함수와 몇 가지 중요한 차이점이 있는데, 특히 동시 간접 호출을 처리하고 컨테이너 수명 주기를 관리하는 방법이 다릅니다.
참고: Lambda(기본값) 실행 환경에 대한 자세한 내용은 ‘Lambda 실행 환경 수명 주기 이해’를 참조하세요.
실행 환경 수명 주기
Lambda 관리형 인스턴스 함수 실행 환경의 수명 주기는 다음과 같은 몇 가지 주요 측면에 있어 Lambda(기본값)와 다릅니다.
초기화 단계
초기화 단계에서 Lambda는 다음 단계를 수행합니다.
-
모든 확장 초기화 및 등록
-
런타임 진입점 부트스트랩. 런타임은 구성된 런타임 작업자 수 생성(구현은 런타임에 따라 다름)
-
함수 초기화 코드 실행(핸들러 외부의 코드)
-
/runtime/invocation/next직접 호출을 통해 하나 이상의 런타임 작업자가 준비 신호를 보낼 때까지 대기
확장이 초기화되고 하나 이상의 런타임 작업자가 /runtime/invocation/next를 직접 호출하면 초기화 단계가 완료된 것으로 간주됩니다. 이후 함수가 간접 호출을 처리할 준비가 됩니다.
참고
Lambda 관리형 인스턴스 함수의 경우 초기화에 최대 15분이 걸릴 수 있습니다. 제한 시간은 130초 또는 구성된 함수 제한 시간(최대 900초) 중 더 높은 값입니다.
간접 호출 단계
Lambda 관리형 인스턴스 함수의 간접 호출 단계에는 다음과 같은 몇 가지 고유한 특성이 있습니다.
연속 작업. Lambda(기본값)와 달리 실행 환경은 지속적으로 활성 상태로 유지되어 간접 호출 간 고정 없이 도착하는 간접 호출을 처리합니다.
병렬 처리. 동일한 실행 환경 내에서 여러 간접 호출을 동시에 실행할 수 있으며, 각각 다른 런타임 작업자가 처리합니다.
독립적 제한 시간. 함수의 구성된 제한 시간은 각 개별 간접 호출에 적용됩니다. 간접 호출 제한 시간이 초과되면 Lambda는 해당 특정 간접 호출을 실패로 표시하지만 실행 중인 다른 간접 호출을 중단하거나 실행 환경을 종료하지 않습니다.
역압 처리. 모든 런타임 작업자가 간접 호출을 처리 중이면 작업자를 사용할 수 있을 때까지 새 간접 호출 요청이 거부됩니다.
오류 처리 및 복구
Lambda 관리형 인스턴스 함수 실행 환경에서의 오류 처리는 Lambda(기본값)와 다릅니다.
간접 호출 제한 시간. 개별 간접 호출의 제한 시간이 초과되면 Lambda는 해당 특정 간접 호출에 대한 제한 시간 초과 오류를 반환하지만 실행 환경을 종료하지는 않습니다. 다른 동시 간접 호출은 정상적으로 계속 처리됩니다.
런타임 작업자 실패. 런타임 작업자 프로세스가 충돌하는 경우 실행 환경에서는 남은 정상 작업자를 계속 운영합니다.
확장 충돌. 초기화 또는 운영 중에 확장 프로세스가 충돌하면 전체 실행 환경이 비정상으로 표시되고 종료됩니다. Lambda는 새 실행 환경을 생성하여 이를 대체합니다.
재설정/복구 불가. Lambda(기본값)와 달리 관리형 인스턴스는 오류 후 실행 환경을 재설정하고 다시 초기화하려고 시도하지 않습니다. 대신 비정상 컨테이너가 종료되고 새 컨테이너로 대체됩니다.