본문 바로가기
AWS/lambda

aws lambda 입문기

by devebucks 2020. 11. 3.
728x90

안녕하세요.

11월 10일부터 이직한 회사로 첫 출근을 앞두고 있습니다.

아무 대비도 안하고, 머리가 빈 상태로 회사에 들어가기에는 너무 제 마음이 불안합니다. 그래서, 회사 기술블로그에서 많이 언급되는 AWS Lambda와 Python에 대해서 조금 학습하고 가려고 합니다. 

유튜브 영상과 AWS 가이드를 참고하면서 공부했습니다.

 

일단 결과적으로 이번 글을 따라오시면 다음과 같은 결과물을 얻을 수 있습니다. ㅋ

결과.

이번 글에서 구현한 구성도는 다음과 같습니다.

구성도

클라이언트 -> API 게이트 웨이 -> AWS 람다

AWS Lambda?

- Lambda는 aws의 Serveless Flatform입니다.

- 동작할 코드만 Lambda에 올리면, Lambda가 그 코드를 실행시켜 줍니다.

Lambda 초기 함수 핸들러

- Lambda는 오로지 함수이기 때문에 이 함수를 호출시켜 줄 '트리거 장치'가 필요합니다. 그것이 바로 'Amazon API Gateway' 입니다.

- Lambda에서는 lambda_function.py를 사용해서 함수를 실행합니다. 아래 코드가 기본적인 틀이라고 보시면 됩니다.

API Gateway

- 클라이언트의 요청을 받아서 해당 요청을 처리하는 Lambda를 호출하는 역할을 해줍니다.(=Trigger)

- Front-Controller 또는 DispatchServlet정로라고 생각하면 될 것 같습니다.

 

사용방법

1. aws lambda 콘솔 접근

람다 콘솔에 들어가시면, 처음 사용하시는 분들은 아래처럼 텅 빈 콘솔을 확인할 수 있습니다.

람다를 새로 생성하기 위해서 콘솔 우측 상단에 [함수 생성]을 클릭합니다.

처음 람다 콘솔

2. 람다 생성

다음을 작성합니다.

- 함수이름

- 런타임(함수 실행 언어) 선택

- 권한

Lambda 생성 콘솔

 

 

3. 람다 생성 후, 디자이너 칸을 보시면, 아래 처럼 방금 생성한 람다가 있고, '트리거 추가'와 '대상 추가'가 있습니다.

- 트리거 추가는 위에서 설명했듯이 lambda를 실행시키기 위한 요청을 받는 구간입니다.

- 대상추가는 Lambda를 실행한 후의 처리를 DB 또는 별도의 서버 인스턴스로 사후 처리를 하는 구간입니다. 

 

이제, 디자이너 칸의 [+트리거 추가]버튼을 눌러서 트리거를 추가해보겠습니다.

 

4. 트리거 추가 선택

- API 게이트웨이 선택

- API 생성 선택

- HTTP API 선택

- 보안 - 열기 선택  : 접근 권한을 얘기 하는 겁니다. Open(열기)으로 해야 어느 IP에서나 접근 가능한 Gateway가 됩니다.

- [추가] 버튼 클릭

생성이 완료되면 트리거에 [API 게이트웨이]가 추가된 것을 확인할 수 있습니다. 

API게이트 웨이의 엔트포인트 주소도 확인할 수 있습니다.

 

 

API게이트웨이의 엔트포인트를 들어가보면, 아래처럼 Hello from Lambda!문자열을 확인할 수 있습니다.

 

마치며

사용해본 결과,

"EC2 인스턴스랑은 뭐가 다른 것일까?"라는 생각이 들었습니다. 결과적으로 웹 서버로서의 기능은 동일합니다.

 

- 코드를 aws 클라우드(Lambda)에 배포(Deploy)하기만 하면 함수가 적용됩니다. 

- Lambda를 호출(Call)하기 위한 웹 컨트롤러 같은 기능을 하는 트리거가 존재해야 합니다.

- Lambda가 하는 것을 EC2 인스턴스라고 못하지는 않습니다.

- 장단점을 따지기에도 애매하고, 더 깊이있게 다뤄봐야 알 것 같습니다.

- 저로써는 아직, EC2같은 인스턴스에 애플리케이션을 배포하고 사용하는 것이 익숙해서 EC2가 더 선호됩니다.

 

지금은 아주 기본적인 빙산의 일각의 일각을 살펴본 것 같습니다. 더 알아봐야.. 실무에서 헤매지 않고 사용할텐데....

더 알아봐야 겠습니다.

 

감사합니다.

728x90

'AWS > lambda' 카테고리의 다른 글

aws Lambda에서 python 라이브러리 적용하기  (0) 2020.11.03

댓글