AWS가 제공하는 서버리스 FaaS 솔루션으로 함수의 인스턴스를 실행하여 이벤트 처리를 함
➕ 서버리스 컴퓨팅
애플리케이션을 실행하기 위해 별도의 서버 셋업 없이 곧바로 코드를 실행해주는 서비스
➕ 프로비저닝
사용자의 요구에 맞게 시스템 자원을 할당, 배치, 배포 해두었다가 필요 시 시스템을 즉시 사용할 수 있는 상태로 미리 준비해두는 것
코드를 계속 실행시키기보다는 특정한 시기에만 실행시키는 경우에 사용하면 유용
Lambda 함수는 호출당 최대 15분 동안 실행되므로 더 짧은 이벤트 기반 워크로드에 적합
ex) 서버를 띄우지 않고 간단한 코드를 실행시키고 싶을 때
특정 기간 또는 특정 주기로 코드를 실행시켜야 할 때
트리거가 실행될 때만 코드를 실행시키고 싶은 경우
서버 응답 시간
- 계속해서 돌아가는 것이 아니라 요청이 올때 AWS가 Lambda를 깨우는데 시간을 사용하기 때문에 응답속도에 차이가 있음
- 요청이 적을때는 의미가 없지만 요청이 많을 경우 차이가 나타남
AWS에 의존
- 백엔드를 AWS Lambda에 배포했을 때 다른 곳으로 옮기고 싶을때 한 서버리스에서 다른쪽 서버리스로 마이그레이션 하는것이 어려움
- EC2의 경우에는 실행되는 WAS 프로그램을 다른 클라우드 사업자의 컴퓨팅 리소스로 옮겨 실행하면 되지만 서버리스는 클라우드 사업자의 요구사항에 맞는 코드가 작성되어야함
코드 용량이 작음
- 용량이 최대 250MB
처음 함수 호출 시 Cold Start를 하게되고 초기지연시간 발생
AWS Lambda에서 실행하는 코드는 Lambda 함수로 업로드 된다.
각 함수에는 이름과 설명, 진입점, 리소스 요구사항 등 구성정보가 포함되어 있다. 코드는 stateless 스타일로 작성되어야하는데 즉 기본 컴퓨팅 인프라에 대한 선호도가 없다고 가정해야합니다.
📑 References
- [AWS 홈페이지] https://docs.aws.amazon.com/ko_kr/lambda/latest/dg/welcome.html
- [람다 사용시기]
https://seoyeonhwng.medium.com/aws-lambda%EB%9E%80-%EB%AC%B4%EC%97%87%EC%9D%B8%EA%B0%80-44df535d5487- [람다 사용사례]
https://usefultoknow.tistory.com/entry/AWS-Lambda%EB%9E%80-%EB%AC%B4%EC%97%87%EC%9D%BC%EA%B9%8C- [람다 동작]
https://dayzen.medium.com/how-aws-lambda-work-internally-77f7fecd6d71