안녕하세요.
11월 10일부터 이직한 회사로 첫 출근을 앞두고 있습니다.
아무 대비도 안하고, 머리가 빈 상태로 회사에 들어가기에는 너무 제 마음이 불안합니다. 그래서, 회사 기술블로그에서 많이 언급되는 AWS Lambda와 Python에 대해서 조금 학습하고 가려고 합니다.
유튜브 영상과 AWS 가이드를 참고하면서 공부했습니다.
일단 결과적으로 이번 글을 따라오시면 다음과 같은 결과물을 얻을 수 있습니다. ㅋ
이번 글에서 구현한 구성도는 다음과 같습니다.
구성도
클라이언트 -> API 게이트 웨이 -> AWS 람다
AWS Lambda?
- Lambda는 aws의 Serveless Flatform입니다.
- 동작할 코드만 Lambda에 올리면, Lambda가 그 코드를 실행시켜 줍니다.
- Lambda는 오로지 함수이기 때문에 이 함수를 호출시켜 줄 '트리거 장치'가 필요합니다. 그것이 바로 'Amazon API Gateway' 입니다.
- Lambda에서는 lambda_function.py를 사용해서 함수를 실행합니다. 아래 코드가 기본적인 틀이라고 보시면 됩니다.
API Gateway
- 클라이언트의 요청을 받아서 해당 요청을 처리하는 Lambda를 호출하는 역할을 해줍니다.(=Trigger)
- Front-Controller 또는 DispatchServlet정로라고 생각하면 될 것 같습니다.
사용방법
1. aws lambda 콘솔 접근
람다 콘솔에 들어가시면, 처음 사용하시는 분들은 아래처럼 텅 빈 콘솔을 확인할 수 있습니다.
람다를 새로 생성하기 위해서 콘솔 우측 상단에 [함수 생성]을 클릭합니다.
2. 람다 생성
다음을 작성합니다.
- 함수이름
- 런타임(함수 실행 언어) 선택
- 권한
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가 더 선호됩니다.
지금은 아주 기본적인 빙산의 일각의 일각을 살펴본 것 같습니다. 더 알아봐야.. 실무에서 헤매지 않고 사용할텐데....
더 알아봐야 겠습니다.
감사합니다.
'AWS > lambda' 카테고리의 다른 글
aws Lambda에서 python 라이브러리 적용하기 (0) | 2020.11.03 |
---|
댓글