Lambda란
AWS Lambda은 서버를 프로비저닝하거나 관리하지 않고도 코드를 실행할 수 있게 해주는 컴퓨팅 서비스이다.
즉 서버와 운영 체제 유지 관리, 용량 프로비저닝 및 자동 조정, 코드 및 보안 패치 배포, 로깅 등 모든 컴퓨팅 리소스 관리를 알아서 수행해주고 사용자는 단순하게 프로그램이 실행되는 코드만 작성하면 된다.
Lambda는 함수의 인스턴스를 실행하여 이벤트를 처리하기 때문에 Lambda API를 사용하여 함수를 직접 호출하거나, 함수를 호출하도록 AWS 서비스 또는 리소스를 구성할 수 있다.
구조
- Handler(event,context) function
- 람다 호출시에 실행 되는 함수로 1개의 람다는 1개의 handler를 가지고 있어야한다.
- event object는 람다 호출시 전달되는 데이터
- context object는 람다에 대한 runtime 정보를 가지고 있다. (requestId, log gruop 등)
- handler 함수 외부로 기본 환경 설정 들을 셋팅 해두는 것이 좋다. 초기화 작업들 재활용 가능하다.
AWS SAM(serverless application model)
- 오픈소스 프레임웍
- 여러 리소스들을 간단하게 정의하는 매커니즘 제공
- json/yaml 등으로 정의
- 정의를 하고 deployment을 하면 cloudFormation stack이 만들어지고 그 형태로 배포가 이루어 지게 된다.