송민준의 개발노트

AWS Lambda - Hello world 본문

AWS/Lambda

AWS Lambda - Hello world

송민준 2020. 12. 16. 00:07

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

 

AWS Lambda용 Java 샘플 애플리케이션 - AWS Lambda

AWS Lambda용 Java 샘플 애플리케이션 이 안내서의 GitHub 리포지토리는 AWS Lambda에서 Java를 사용하는 방법을 보여주는 샘플 애플리케이션을 제공합니다. 각 샘플 애플리케이션에는 간편한 배포 및 정

docs.aws.amazon.com

 

 

참고

docs.aws.amazon.com/ko_kr/lambda/latest/dg/welcome.html

 

AWS Lambda란 무엇입니까? - AWS Lambda

AWS Lambda란 무엇입니까? AWS Lambda는 서버를 프로비저닝하거나 관리하지 않고도 코드를 실행할 수 있게 해주는 컴퓨팅 서비스입니다. AWS Lambda는 필요 시에만 코드를 실행하며, 하루에 몇 개의 요청

docs.aws.amazon.com