이 글은 AWS Lambda로 시작하는 서버리스를 참고하여 작성하였습니다.
작성자 : 임나경
Ch5. AWS Lambda
2. Amazon Lambda의 동작
이벤트를 감지 -> Micro VM 띄움 -> 함수 실행 -> 결과 처리
* 런타임 : 함수가 실행될 때 필요한 환경. 언어 마다 환경이 다름. 환경에 따라 성능 차이
AWS Lambda의 내부 정보
- Compute substrate : 함수가 실행될 Micro VM
- Execution Environment : 환경 변수 등의 실행환경
- Language runtime : 언어별 런타임
- Function : 함수
- Compute substrate ⊃ Execution Environment ⊃ Language runtime ⊃ Function
람다 실행 -> Micro VM 실행 -> 환경 변수 등 실행환경 맞추기 -> 지정 언어별 런타임 환경 준비 -> 작성한 함수 실행
3. Cold Start와 Warm Start
라이프사이클
1. Full cold start : 람다 실행 -> 내가 작성한 코드 다운로드 -> 실행 환경을 구성
2. Partial cold start : 런타임 준비 과정
3. Warm start : 함수 실행
Cold Start가 발생하면 딜레이가 존재한다.
함수 실행 시 순서가 정해져 있고, 지연시간이 발생한다.
ex1) Micro VM 올라갔다가 내려간 뒤 다시 실행 -> Full cold start부터 시작
ex2) Micro VM이 유지되는 시간 이전에 재요청 -> Partial cold start부터 시작 => 지연시간 감소
Cold Start 줄일 수 있는 방법은?
1. (5분마다) 지속적인 호출을 통해, 구동되어 있는 Micro VM 유지
2. Provisioned Concurrency : 브로비저닝의 동시성. 함수를 지속적으로 초기화하고 아주 빠르게 준비하기
* cold start time은 언어/런타임, 리소스 양(mb), 함수 실행 시 갖고 오는 패키지/종속성에 따라 다르다.
4. AWS Lambda의 런타임
런타임이란?
람다와 작성한 함수코드 사이에 위치해서 (이벤트, 컨텍스트 정보 등) 응답을 중계해주는 역할
런타임을 이용하여 각각 다른 언어들로 작성한 코드도 동일한 기본 실행환경에서 실행 가능
런타임 환경 : Amazon Linux (default)
-> 런타임 환경에 여러 언어 지원
런타임 환경의 운영체제 수명이 60일 이내로 예정될 때, 마이그레이션 안내 메일을 발송해준다.
사용 중단된 런타임은 보안 업데이트 기술지원을 받을 수 없기 때문에 마이그레이션이 필수적이다!
5. AWS Lambda의 Event
람다 함수로 서비스를 호출하는 방법은 2가지이다.
1. 동기식
클라이언트 -------이벤트--------> 람다 함수
클라이언트 <------응답----------- 람다함수
동기식 호출 시 파라미터 값을 invoke로 실행
2. 비동기식
클라이언트 요청 이벤트 - 람다 함수 사이에 대기열을 이용. 클라이언트는 성공 응답만 받음.
비동기식 호출 시 파라미터 값을 Event로 설정
오류 발생 시 계속해서 재시도를 함
대기열은 백업이 되기도 함
** 오류를 잘 컨트롤 하기 위해서는 : 오류 처리를 구성, 재시도 횟수 줄이기, 처리되지 않은 이벤트 체크 !
+ 다른 서비스(Amazon SQS, Amazon SNS 등) 함께 사용
동시성 : 동시에 요청을 처리할 수 있는 함수의 수
동시성은 리전에 따라 한도가 다르다.
동시성 설정이 중요한 이유? 병목현상을 예상하고 최대 인스턴스 수를 지정함으로서 안전한 서비스 유지 가능
6. 메모리 할당과 실행 제한 시간
람다
- 설정한 1개의 인스턴스를 동일하게 사용
- 메모리 제한 직접 설정 : 128MB ~ 3008MB, 64MB단위로
- 실행 제한 시간 직접 설정 : ~ 900ms(15분)
구현 목표에 따라 리소스를 결정하기!
메모리만 설정하고 다른 리소스(cpu성능, 네트워크 대역폭, 디스크 I/O)는 설정한 메모리 값에 따라 자동적으로 할당됨.
메모리를 할당할수록 더 빠른 속도를 보인다.
상황에 따라 EC2같은 인스턴스 서버를 사용하는 것이 더 좋을 수도 있다.
-> 람다는 상황에 따라 비싸기도, 저렴하기도 하다.
람다는 요청 수와 실행 시간을 기준으로 요금이 청구된다.
'GDSC HUFS 3기 > Cloud Computing' 카테고리의 다른 글
[AWS] AWS Lambda (0) | 2022.05.18 |
---|---|
[AWS] AWS 네트워크 (0) | 2022.05.12 |
[AWS] 서버리스란 무엇인가 (0) | 2022.05.12 |
[AWS] Amazon VPC/서브넷/인터넷 게이트웨이/네트워크 ACL/보안 그룹/피어링 (0) | 2022.05.12 |
[AWS] ch01 서버리스 | ch02 AWS란 | ch03 권한관리 (0) | 2022.05.06 |