[AWS] Lambda - 1
AWS Lambda(람다) 는 FaaS 서비스의 일종으로, 이벤트를 감지해 아마존 리눅스 VM에서 함수를 실행해주는 서비스이다.
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 |