Lambda를 사용하여 코드 실행 - AWS Lambda

Lambda를 사용하여 코드 실행

Lambda 함수를 작성할 경우, 고유한 서버리스 환경에서 실행되는 코드를 생성하게 됩니다. Lambda가 실제로 코드를 실행하는 방법을 이해하려면 두 가지 주요 측면, 즉 코드가 Lambda와 상호 작용하는 방식을 정의하는 프로그래밍 모델과 Lambda가 코드의 런타임 환경을 관리하는 방법을 결정하는 실행 환경 수명 주기를 알아야 합니다.

Lambda 프로그래밍 모델

프로그래밍 모델은 Python, Java로 작성하거나 지원되는 다른 언어로 작성하는 경우와 관계없이 Lambda가 코드와 작동하는 방식에 대한 공통 규칙 세트로 작동합니다. 프로그래밍 모델에는 런타임과 핸들러가 포함됩니다.

  1. Lambda는 이벤트를 수신합니다.

  2. Lambda는 런타임(예: Python 또는 Java)을 사용하여 코드가 사용할 수 있는 형식으로 이벤트를 준비합니다.

  3. 런타임은 형식이 지정된 이벤트를 핸들러로 전송합니다.

  4. 핸들러는 Lambda 함수에 작성된 코드를 사용하여 이벤트를 처리합니다.

이 모델의 필수 요소는 Lambda가 코드에서 처리할 이벤트를 보내는 핸들러입니다. 이를 코드의 진입점으로 생각하세요. Lambda가 이벤트를 수신하면 이 이벤트와 일부 컨텍스트 정보가 핸들러에 전달됩니다. 그런 다음, 핸들러는 코드를 실행하여 이러한 이벤트를 처리합니다. 예를 들어 Amazon S3에 업로드되면 파일을 읽거나, 이미지를 분석하거나, 데이터베이스를 업데이트할 수 있습니다. 코드가 이벤트 처리를 마치면 핸들러가 다음 이벤트를 처리할 준비가 된 것입니다.

Lambda 실행 모델

프로그래밍 모델은 Lambda가 코드와 상호 작용하는 방식을 정의하지만, 실행 환경은 Lambda가 함수를 실제로 실행하는 곳입니다. 이는 함수에 사용하도록 특별히 생성된 안전하고 격리된 컴퓨팅 공간입니다. 각 환경은 3가지 단계의 수명 주기를 따릅니다.

  1. 초기화: Lambda는 환경을 생성하며 함수를 실행하는 데 필요한 모든 요소를 준비합니다. 여기에는 선택한 런타임 설정, 코드 로드, 작성한 스타트업 코드 실행이 포함됩니다.

  2. 간접 호출: 이벤트가 도착하면 Lambda는 이 환경을 사용하여 함수를 실행합니다. 환경은 시간 경과에 따라 여러 이벤트를 차례로 처리할 수 있습니다. 더 많은 이벤트가 들어오면 Lambda는 늘어난 수요를 처리할 수 있는 추가 환경을 생성합니다. 수요가 감소하면 Lambda는 더 이상 필요하지 않은 환경을 중지합니다.

  3. 종료: 최종적으로 Lambda는 환경을 종료합니다. 이 작업을 수행하기 전에, 함수가 남은 태스크를 정리할 수 있는 기회가 제공됩니다.

이 환경은 함수 실행의 중요한 측면을 처리합니다. 이는 함수에 메모리와 임시 스토리지용 /tmp 디렉터리를 제공합니다. 간접 호출 간 데이터베이스 연결 같은 리소스를 유지 관리하므로 함수가 리소스를 재사용할 수 있습니다. Lambda가 성능을 개선하기 위해 환경을 미리 준비하는 프로비저닝된 동시성 같은 기능을 제공합니다.