Amazon Lambda
AWS Lambda은 서버 없이도 코드를 실행할 수 있게 해주는 서버리스 컴퓨팅 서비스
- 코드를 돌리기 위한 리소스를 임의로 지정할 수 있으며, 사용 리소스 x 사용 시간에 따라 과금(ex. 메모리 용량 / 코어 갯수)
- 24시간 서버가 돌아가는 AWS EC2와 달리, AWS Lambda는 사용자가 함수를 호출했을 때만 코드가 실행되는 서비스
Amazon Lambda 장점
1. 확장성 : 자동으로 확장이 가능(오토 스케일링) - 갑작스러운 트래픽 급증이나 애플리케이션 수요 변화를 쉽게처리 가능
2. 비용 절감 : 선불 비용이나 최소 요금이 없고, 컴퓨팅 시간(필요할때만 람다함수 호출, 요청수, 실행시간 등)에 대해서만 비용을 지불
3. 낮은 인프라 운영 유지 관리 : 서버리스이므로 서버, 운영 체제 또는 기타 인프라 관리에 대해 걱정할 필요 없음. 애플리케이션을 보다 쉽고 효율적으로 개발하고 배포할 수 있음
Amazon Lambda 단점
1. 리소스 제한(제한된 런타임 옵션, 실행시간) : 최대 15분 / 최대 10GB / 최대 6개의 Core 등
함수 구성, 배포 및 실행 참고
2. 콜드 스타트 지연 시간: 람다 함수가 처음 호출되면 필요한 리소스가 할당되는 동안 지연이 발생할 수 있음. 이렇게 하면 첫 번째 요청에 대한 응답 시간이 길어짐
사용 예시
- 비동기 처리 (이미지 썸네일 생성)
- 예측이 불가능 한 리소스 사용 (대용량 처리 / 머신러닝)
Lambda 기능
- 동시성 및 크기 조정 컨트롤
- 컨테이너 이미지로 정의된 함수
- 코드 서명
- Lambda 익스텐션
- 함수 블루프린트
- 데이터베이스 액세스
- 파일 시스템 액세스
Cold Start / Warm Start
- 기본적으로 EC2와 같은 인스턴스보다는 Latency가 높음
- Cold Start : 최초로 함수를 실행할 때 발생하는 현상. 배포 패키지의 크기와 코드 실행 시간 및 코드의 초기화 시간에 따라 새 실행 환경으로 호출을 라우팅할 때 지연 시간이 발생하는 람다 호출 시작
Cold Start가 발생하는 이유
1. 인프라 사전 구성: AWS Lambda는 최초 실행 시 함수를 실행하기 위한 인프라를 사전구성해야 함
2. 함수 코드 로딩: 함수 코드가 처음 실행될 때 AWS Lambda는 함수 코드를 로드함
3. 환경 초기화: 함수 실행에 필요한 환경 변수를 설정하고 초기화해야 함
- Warm Start : 함수를 최초로 실행한 후, 그 이후로 다시 실행될 때 발생하는 상태. 이미 실행준비가 완료된 상태, 즉 이미 생성되어 있던 컨테이너의 코드를 재실행
AWS Lambda는 Warm Start를 활용하여 Cold Start 시간을 최소화해야 함. 자주 사용되는 함수를 자동으로 Warm Start 상태로 유지하며, 일정 주기로 함수를 주기적으로 실행하여 Warm Start 상태를 유지해야 함
* 참고
'AWS > 서비스' 카테고리의 다른 글
[AWS] AWS RDS, AWS Aurora, AWS DynamoDB, AWS ElastiCache 기본 개념 (0) | 2023.05.14 |
---|---|
[AWS] AWS SQS, AWS Kinesis 개념 (0) | 2023.05.10 |
[AWS] AWS EC2, AWS Elastic Beanstalk, AWS Fargate 개념 (0) | 2023.05.04 |
[AWS] AWS 인프라 (0) | 2023.05.02 |
[AWS] ECS 설정 방법 (ECR, Cluster, VPC, Fargate) (0) | 2023.04.22 |
댓글