AWS/Lambda

[AWS] Lambda - 1

Ate1es 2022. 6. 23. 10:50

AWS Lambda(람다) 는 FaaS 서비스의 일종으로, 이벤트를 감지해 아마존 리눅스 VM에서 함수를 실행해주는 서비스이다. 

 

Lambda 의 동작 과정을 간단하게 아래와 같이 그릴 수 있다.

Lambda의 동작 과정

AWS Lambda Event

우선 함수 실행을 위한 AWS에서 제공하는 Event 를 보면, 동기적으로 호출하는 서비스와 비동기적으로 호출하는 서비스 두가지가 존재한다.

 

동기식 서비스

Elastic Load Balancing

Amazon Cognito

Amazon Lex

Amazon Alexa

Amazon API Gateway

...

 

비동기식 서비스

Amazon Simple Storage Service

Amazon Simple notification Service

Amazon Simple Email Service

AWS CloudFormation

...

 

동기식은 클라이언트가 람다 함수에 이벤트를 보내고 클라이언트는 함수의 응답을 받을 수 있다. 동기식으로 호출할 경우 파라미터 값을 invoke로 실행한다.

비동기식은 클라이언트의 요청 이벤트와 람다 함수 사이에 대기열을 이용하는 것이다. 비동기식으로 호출할 경우에는 호출유형 파라미터 값을 Event로 설정해야 한다. 

 

메모리 할당, 실행 제한 시간

 

AWS Lambda는 설정한 1개의 인스턴스를 동일하게 사용하는 것이다. 메모리와 실행 제한 시간을 직접적으로 설정이 가능하다. 

만약 128MB의 메모리, 동시성 3개, 3번을 동시에 호출하면

1번 인스턴스 (128MB)

2번 인스턴스 (128MB)

3번 인스턴스 (128MB) 이 3개가 동시에 동작하는 것이다.

 

환경 변수(Environment varilables)

AWS Lambda에서는 환경 변수를 제공한다. 환경 변수를 사용하면 함수코드를 배포하지 않고 보안 암호를 저장하고 사용할 수 있다. 키/값 형식으로 저장하며, 4KB로 크기제한이 걸려있다.

 

런타임에 기본적으로 제공되는 환경 변수 목록 중에 몇가지만 가져옴.

제공 환경 변수 의미
_HANDLER 함수에 구성된 핸들러 위치
AWS_REGION 함수가 실행되는 리전
AWS_EXECUTION_ENV 런타임 ID, 앞에 AWS_Lambda_ 가 붙는다.
AWS_LAMBDA_FUNTION_NAME 함수 명
AWS_LAMBDA_FUNCTION_MEMORY_SIZE 함수가 사용하능한 총 메모링의 size