Lambda로 코드 실행

Lambda로 코드 실행 (Running code with Lambda)

Lambda 함수를 작성하면 독특한 서버리스 환경에서 실행되는 코드를 만드는 것입니다. Lambda가 실제로 코드를 어떻게 실행하는지 이해하려면 두 가지 핵심 요소를 알아야 합니다. 하나는 코드가 Lambda와 상호작용하는 방식을 정의하는 프로그래밍 모델이고, 다른 하나는 Lambda가 코드의 런타임 환경을 관리하는 방식을 결정하는 실행 환경 수명주기입니다.

출처: AWS Lambda 개발자 안내서

본문

Lambda 프로그래밍 모델

프로그래밍 모델은 Python, Java 또는 지원되는 다른 어떤 언어로 작성하든 관계없이 Lambda가 코드와 함께 작동하는 방식에 대한 공통 규칙 집합으로 기능합니다. 프로그래밍 모델에는 런타임(runtime)과 핸들러(handler)가 포함됩니다.

표준 함수의 경우:

  • Lambda는 이벤트를 받습니다.
  • Lambda는 런타임을 사용해 이벤트를 코드가 사용할 수 있는 형식으로 준비합니다.
  • 런타임은 형식화된 이벤트를 핸들러로 보냅니다.
  • 핸들러는 작성한 코드를 사용해 이벤트를 처리합니다.

이 모델의 핵심은 핸들러입니다. Lambda는 코드가 처리할 이벤트를 핸들러로 보냅니다. 핸들러를 코드의 진입점으로 생각하세요. Lambda가 이벤트를 받으면 이 이벤트와 일부 컨텍스트 정보를 핸들러로 전달합니다. 그러면 핸들러가 이 이벤트를 처리하기 위해 코드를 실행합니다. 예를 들어 파일이 Amazon S3에 업로드될 때 파일을 읽거나, 이미지를 분석하거나, 데이터베이스를 업데이트할 수 있습니다. 코드가 이벤트 처리를 마치면 핸들러는 다음 이벤트를 처리할 준비가 됩니다.

Lambda 실행 모델

프로그래밍 모델이 Lambda가 코드와 상호작용하는 방식을 정의하는 반면, 실행 환경(Execution environment)은 Lambda가 함수를 실제로 실행하는 곳으로, 함수를 위해 특별히 만들어진 안전하고 격리된 컴퓨팅 공간입니다.

각 환경은 수명주기를 따릅니다:

  • 초기화(Initialization): 환경 설정 및 코드 로드
  • 호출(Invocation): 함수 코드의 단일 실행
  • 종료(Shutdown): 환경 정리

이 환경은 함수 실행의 중요한 측면을 처리합니다. 함수에 메모리와 임시 저장용 /tmp 디렉터리를 제공합니다.

더 알아보기 (Learn more)

  • Lambda 함수 작성 및 배포 개념
  • Lambda 실행 환경 수명주기