Lambda 개념 - AWS Lambda

기계 번역으로 제공되는 번역입니다. 제공된 번역과 원본 영어의 내용이 상충하는 경우에는 영어 버전이 우선합니다.

Lambda 개념

Lambda는 함수의 인스턴스를 실행하여 이벤트를 처리합니다. Lambda API를 사용하여 함수를 직접 호출하거나, 함수를 호출하도록 AWS 서비스 또는 리소스를 구성할 수 있습니다.

함수

함수는 Lambda에서 코드를 실행하기 위해 호출할 수 있는 리소스입니다. 함수에는 사용자가 함수에 전달하거나 다른 AWS 서비스가 함수에 보내는 이벤트를 처리하는 코드가 있습니다.

트리거

트리거는 Lambda 함수를 호출하는 리소스 또는 구성입니다. 트리거에는 함수 및 이벤트 소스 매핑을 호출하도록 구성할 수 있는 AWS 서비스가 포함됩니다. 이벤트 소스 매핑은 스트림 또는 대기열에서 항목을 읽고 함수를 호출하는 Lambda의 리소스입니다. 자세한 내용은 Lambda 함수 호출다른 서비스와 함께 AWS Lambda 사용 섹션을 참조하세요.

Event

이벤트는 처리할 Lambda 함수에 대한 데이터가 포함된 JSON 형식 문서입니다. 런타임은 이벤트를 객체로 변환한 후 함수 코드에 전달합니다. 함수를 호출할 때, 이벤트의 구조와 내용을 결정합니다.

예 사용자 지정 이벤트 - 날씨 데이터
{ "TemperatureK": 281, "WindKmh": -3, "HumidityPct": 0.55, "PressureHPa": 1020 }

AWS 서비스가 함수를 호출할 때 서비스가 이벤트의 형태를 정의합니다.

예 서비스 이벤트 - Amazon SNS 알림
{ "Records": [ { "Sns": { "Timestamp": "2019-01-02T12:45:07.000Z", "Signature": "tcc6faL2yUC6dgZdmrwh1Y4cGa/ebXEkAi6RibDsvpi+tE/1+82j...65r==", "MessageId": "95df01b4-ee98-5cb9-9903-4c221d41eb5e", "Message": "Hello from SNS!", ...

AWS 서비스의 이벤트에 대한 자세한 내용은 다른 서비스와 함께 AWS Lambda 사용 단원을 참조하세요.

실행 환경

실행 환경은 Lambda 함수를 위한 안전하고 격리된 런타임 환경을 제공합니다. 실행 환경은 함수를 실행하는 데 필요한 프로세스와 리소스를 관리합니다. 실행 환경은 함수 및 함수와 관련된 모든 익스텐션에 대한 수명 주기 지원을 제공합니다.

자세한 설명은 Lambda 실행 환경 섹션을 참조하세요.

명령 세트 아키텍처

명령 세트 아키텍처에 따라 Lambda가 함수를 실행하는 데 사용하는 컴퓨터 프로세서의 유형이 결정됩니다. Lambda는 다음과 같은 명령 세트 아키텍처를 선택할 수 있는 옵션을 제공합니다.

  • arm64 - AWS Graviton2 프로세서에 사용되는 64비트 ARM 아키텍처입니다.

  • x86_64 - x86 기반 프로세서에 사용되는 64비트 x86 아키텍처입니다.

자세한 설명은 Lambda 명령 세트 아키텍처(ARM/x86) 섹션을 참조하세요.

배포 패키지

배포 패키지를 사용하여 Lambda 함수 코드를 배포합니다. Lambda는 다음과 같은 두 가지 유형의 배포 패키지를 지원합니다.

  • 함수 코드 및 종속 항목이 포함된 .zip 파일 아카이브. Lambda는 함수를 위한 운영 체제 및 런타임을 제공합니다.

  • Open Container Initiative(OCI) 사양과 호환되는 컨테이너 이미지. 함수 코드와 종속 항목을 이미지에 추가합니다. 운영 체제와 Lambda 런타임도 포함해야 합니다.

자세한 설명은 Lambda 배포 패키지 섹션을 참조하세요.

런타임

런타임은 실행 환경에서 실행되는 언어별 환경을 제공합니다. 런타임은 Lambda와 함수 간의 호출 이벤트, 컨텍스트 정보 및 응답을 전달합니다. Lambda에서 제공하는 런타임을 사용하거나 나만의 런타임을 빌드할 수 있습니다. 코드를 .zip 파일 아카이브로 패키징하는 경우 프로그래밍 언어와 일치하는 런타임을 사용하도록 함수를 구성해야 합니다. 컨테이너 이미지의 경우 이미지를 빌드할 때 런타임을 포함합니다.

자세한 설명은 Lambda 런타임 섹션을 참조하세요.

계층

Lambda 계층은 추가 코드 또는 기타 콘텐츠를 포함할 수 있는 .zip 파일 아카이브입니다. 계층에는 라이브러리, 사용자 정의 런타임, 데이터 또는 구성 파일이 포함될 수 있습니다.

계층은 Lambda 함수와 함께 사용할 수 있는 라이브러리 및 기타 종속성을 패키징하는 편리한 방법을 제공합니다. 계층을 사용하면 업로드된 배포 아카이브의 크기가 줄어들고 코드를 더 빠르게 배포할 수 있습니다. 계층은 또한 코드 공유 및 책임 분리를 촉진하므로 비즈니스 로직 작성시 더 빠르게 반복할 수 있습니다.

함수당 최대 5개의 계층을 포함할 수 있습니다. 계층은 표준 Lambda 배포 크기 할당량에 포함됩니다. 함수에 계층을 포함하면 실행 환경의 /opt 디렉터리로 콘텐츠가 추출됩니다.

기본적으로 생성하는 계층은 AWS 계정에 비공개입니다. 계층을 다른 계정과 공유하거나 계층을 공개하도록 선택할 수 있습니다. 함수가 다른 계정에서 발행한 계층을 사용하는 경우 함수가 계층 버전을 삭제한 후 또는 계층에 대한 액세스 권한이 취소된 후에도 해당 계층 버전을 계속 사용할 수 있습니다. 그러나 삭제된 계층 버전을 사용하여 새 함수를 작성하거나 함수를 업데이트할 수는 없습니다.

컨테이너 이미지로 배포된 함수는 계층을 사용하지 않습니다. 대신 이미지를 빌드할 때 기본 설정 런타임, 라이브러리 및 기타 종속 항목을 컨테이너 이미지로 패키징합니다.

자세한 설명은 Lambda 계층 작업 섹션을 참조하세요.

확장

Lambda 익스텐션을 사용하면 함수를 보강할 수 있습니다. 예를 들어 익스텐션을 사용하여 원하는 모니터링, 관찰, 보안 및 거버넌스 도구와 함수를 통합할 수 있습니다. AWS Lambda 파트너가 제공하는 다양한 도구 중에서 선택하거나 자체적인 Lambda 익스텐션을 만들 수 있습니다.

내부 익스텐션은 런타임 프로세스에서 실행되며 런타임과 동일한 수명 주기를 공유합니다. 외부 익스텐션은 실행 환경에서 별도의 프로세스로 실행됩니다. 외부 익스텐션은 함수가 호출되기 전에 초기화되고 함수의 런타임과 동시에 실행되며 함수 호출이 완료된 후에도 계속 실행됩니다.

자세한 설명은 Lambda 확장 섹션을 참조하세요.

동시성

동시성은 특정 시각에 함수가 제공하는 요청의 수입니다. 함수가 호출되면 이벤트를 처리하도록 Lambda가 인스턴스를 프로비저닝합니다. 함수 코드가 실행을 마치면, 다른 요청을 처리할 수 있습니다. 요청이 처리되는 동안 함수가 다시 호출되면, 다른 인스턴스가 프로비저닝되어 함수의 동시성이 증가합니다.

동시성에는 AWS 리전 수준의 할당량이 적용됩니다. 동시성을 제한하거나 특정 수준의 동시성에 도달할 수 있도록 개별 함수를 구성할 수 있습니다. 자세한 설명은 예약된 동시성 구성 섹션을 참조하세요.

Qualifier

함수를 호출하거나 조회할 때 버전 또는 별칭을 지정하는 한정자를 포함할 수 있습니다. 버전은 숫자 한정자가 있는 함수 코드 및 구성의 변경 불가능한 스냅샷입니다. 예: my-function:1. 별칭은 다른 버전에 매핑하거나 두 버전 간에 트래픽을 분할하도록 업데이트할 수 있는 버전에 대한 포인터입니다. 예: my-function:BLUE. 버전 및 별칭을 함께 사용하여 클라이언트가 함수를 호출할 수 있는 안정적인 인터페이스를 제공할 수 있습니다.

자세한 설명은 Lambda 함수 버전 섹션을 참조하세요.

대상

대상은 Lambda가 동기식 호출의 이벤트를 전송할 수 있는 AWS 리소스입니다. 사용자는 처리에 실패한 이벤트의 대상을 구성할 수 있습니다. 일부 서비스는 성공적으로 처리된 이벤트의 대상도 지원합니다.

자세한 내용은 비동기식 호출에 대한 대상 구성 섹션을 참조하세요.