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

Lambda를 사용하여 코드 실행

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

Lambda 프로그래밍 모델

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

표준 함수:

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

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

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

  4. 핸들러는 작성한 코드를 사용하여 이벤트를 처리합니다.

지속성 함수:

  1. Lambda의 이벤트 수신

  2. 런타임은 이벤트와 DurableContext를 모두 준비

  3. 핸들러가 수행할 수 있는 작업은 다음과 같습니다.

    • 자동 체크포인트 지정을 통한 단계 처리

    • 리소스를 사용하지 않고 실행 일시 중지

    • 마지막으로 성공한 체크포인트에서 재개

    • 단계 사이에 상태 유지

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

Lambda 실행 모델

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

각 환경은 표준 함수와 지속성 함수에 따라 달라지는 수명 주기를 따릅니다.

표준 함수(최대 15분):

  1. 초기화: 환경 설정 및 코드 로드

  2. 간접 호출: 함수 코드의 단일 실행

  3. 종료: 환경 정리

지속성 함수(최대 1년):

  1. 초기화: 환경 및 지속성 상태 설정

  2. 간접 호출: 자동 체크포인트 지정을 포함한 여러 단계

  3. 대기 상태: 리소스 소비 없이 실행 일시 중지

  4. 재개: 마지막 체크포인트에서 다시 시작

  5. 종료: 지속성 상태 정리

이 환경은 함수 실행의 중요한 측면을 처리합니다. 이는 함수에 메모리와 임시 스토리지용 /tmp 디렉터리를 제공합니다. 지속성 함수의 경우 다음도 관리합니다.

  • 단계 간 자동 상태 지속성

  • 체크포인트 스토리지 및 복구

  • 대기 상태 조정

  • 장기 실행에서의 진행 상황 추적