AWS Lambda - Hello world
AWS 쓰면 주로 ec2, rdb, route53, s3 정도만 토이프로젝트로 쓰다가 이번에 Lambda에 대해서 공부를 하고자 한다.
1. Lambda란 무엇인가?
AWS에서 제공하는 Faas 서비스이다. Lambda는 이벤트를 감지해서 아마존 리눅스 환경의 Micro VM을 띄우고 함수를 실행한다. 그리고 DB 연동, 메시지 등 결과를 처리한다.
Lambda의 실행순서는 내가 작성한 코드를 다운하고 실행환경(환경변수, 언어 등)을 셋팅, 런타임 준비, 마지막으로 함수 실행을 한다. 이러한 실행과정에는 Cold Start가 발생하면서 딜레이가 생긴다. 최초 실행 시 이 Cold Start가 생기며 Micro VM이 유지되는 기간에는 딜레이를 줄일 수 있다. 언어와 메모리 사이즈에 속도의 영향을 받는다.
2. 그렇다면 ec2와 차이점이 무엇인가...??
Lambda는 서버를 프로비저닝하거나 고나리하지 않고도 코드를 실행하게 해주는 서비스다. 필요 시에만 코드를 실행하며, 하루에 0개에서 많은 수의 요청까지 자동으로 확장이 가능하다. 즉 사용한 만큼 이용요금이 부과되는것이다. 반면 ec2는 하루종일 돈다. 이는 곧 정책에 따라서 획기적인 비용절감이 가능하다.
3. 서비스 호출 방식
Lambda의 서비스 호출 방식은 동기식과 비동기식이 있다.
동기식은 클라이언트가 람다로 이벤트를 보내고 응답한 것을 받는다. 비동기식은 요청 이벤트와 람다 사이에 대기열을 이용하며 클라이언트는 성공 응답만 받는다.
4. 실행 방법
1) 람다 접근 -> 함수 생성 클릭
2) 함수 이름, 런타임 종류 선정( 나는 자바 8 amazon open jdk)
3. 함수 생성 클릭 후 아래와 같은 화면이 뜸.. 보기와 같이 코드 편집기가 없네...^^
4. 우측 상단에 테스트 클릭하면 테스트 이벤트 구성이 나온다. 이름 입력해주고 생성하자.
5. 그리고 다시 우측 상단에 테스트 클릭하면 아래처럼 나온다.
** aws 람다 java 샘플 파일은 아래에 있다.
docs.aws.amazon.com/ko_kr/lambda/latest/dg/java-samples.html
참고
docs.aws.amazon.com/ko_kr/lambda/latest/dg/welcome.html