Lambda 호출 모드 - AWS Lambda 보안 개요

Lambda 호출 모드

호출 API는 이벤트 모드와 요청-응답 모드의 두 가지 모드로 호출할 수 있습니다.

  • 이벤트 모드는 비동기식 호출에 대한 페이로드를 대기열에 넣습니다.

  • 요청-응답 모드에서는 제공된 페이로드와 동시에 함수를 호출하고 즉시 응답을 반환합니다.

두 경우 모두 함수 실행은 항상 Lambda 실행 환경에서 이루어지지만 페이로드의 경로는 다릅니다. 자세한 내용은 이 문서의 “Lambda 실행 환경”을 참조하세요.

사용자를 대신하여 호출을 수행하는 다른 AWS 서비스를 사용할 수도 있습니다. 사용되는 호출 모드는 사용 중인 AWS 서비스 및 해당 서비스의 구성 방법에 따라 다릅니다. 다른 AWS 서비스가 Lambda와 통합되는 방법에 대한 자세한 내용은 다른 서비스와 함께 AWS Lambda 사용 단원을 참조하세요.

Lambda가 요청-응답 호출을 수신하면 호출 서비스로 직접 전달됩니다. 호출 서비스를 사용할 수 없는 경우, 호출자는 페이로드 클라이언트 측을 일시적으로 대기시켜 지정된 횟수만큼 호출을 재시도할 수 있습니다. 호출 서비스가 페이로드를 수신하면 서비스는 요청에 대해 사용 가능한 실행 환경을 식별하려고 시도하고 페이로드를 해당 실행 환경에 전달하여 호출을 완료합니다. 기존 또는 적절한 실행 환경이 없는 경우, 요청에 따라 실행 환경이 동적으로 생성됩니다. 전송 중에 호출 서비스로 전송된 호출 페이로드는 TLS 1.2+로 보호됩니다. Lambda 서비스 내 트래픽(로드 밸런서에서 하향)은 요청이 전송된 AWS 리전 내에서 Lambda 서비스 소유의 격리된 내부 Virtual Private Cloud(VPC)를 통과합니다.

AWS Lambda 요청-응답에 대한 호출 모델을 보여 주는 다이어그램입니다.

그림 2 - AWS Lambda 요청-응답의 호출 모델

이벤트 호출 모드 페이로드는 호출 전에 처리를 위해 항상 대기열에 있습니다. 모든 페이로드는 Amazon Simple Queue Service(Amazon SQS) 대기열에서 처리하도록 배치됩니다. 대기 중인 이벤트는 항상 TLS 1.2+를 통해 전송 중에 보호되지만, 현재 저장된 상태에서는 암호화되지 않습니다. Lambda에 사용되는 Amazon SQS 대기열은 Lambda 서비스에 의해 관리되며 고객에게 표시되지 않습니다. 대기 중인 이벤트는 공유 대기열에 저장할 수 있지만 고객이 직접 제어할 수 없는 여러 요소(예: 호출 속도, 이벤트 크기 등)에 따라 전용 대기열에 마이그레이션되거나 할당될 수 있습니다.

대기 중인 이벤트는 Lambda의 폴러 플릿에 의해 일괄적으로 검색됩니다. 폴러 플릿은 아직 처리되지 않은 대기 중인 이벤트 호출을 처리하는 것을 목적으로 하는 EC2 인스턴스 그룹입니다. 폴러 플릿에서 처리해야 하는 대기 중인 이벤트를 검색할 때 고객이 요청-응답 모드에서 호출하는 것처럼 호출 서비스에 전달하여 처리합니다.

호출을 수행할 수 없는 경우, 폴러 플릿은 실행을 완료할 수 있거나 실행 재시도 횟수가 초과될 때까지 이벤트를 일시적으로 메모리 내 호스트에 저장합니다. 폴러 플릿 자체의 디스크에 페이로드 데이터가 기록되지 않습니다. AWS 고객 전체에서 폴링 플릿을 처리할 수 있으므로 호출 시간이 가장 짧습니다. 이벤트 호출 모드를 사용할 수 있는 서비스에 대한 자세한 내용은 다른 서비스 함께 AWS Lambda 사용을 참조하세요.