공부와 프로젝트(discord chatbot) Flow 를 위한 정리
이전 프로젝트 배포를 위해서는 AWS EC2와 데이터베이스를 위한 RDS를 사용하였다. (이것에 대한 공부 정리를 한번 다시 해야겠군)
보아하니!
AWS EC2 는 저 멀리 어디엔가 서버 instance를 running 시켜두고 gateway 를 통해 내가 서버에 직접적으로 접속하지 않아도 슬금슬금 작동을 하는 아이인가보다 (설명이 너무 구리다) 그래서 그런지 나는 프로젝트 배포용으로 단 하루 이틀 서버를 건드렸을 뿐인데 다음 달 초 약 27,000의 비용이 청구되었었다. 대충격.
그러나 내가 이해한 AWS Lambda 는 내가 필요할 때만 서버를 잠깐 잠깐씩 running 시키는 것 같다. 그래서 딱! 그때 그 당시의 비용만 청구되는 거. 서버도 아닌 것 같다, 왜냐하면 EC2 는 server를 instance 라는 이름으로 생성하고 running 시키는데, LAMBDA는 serverless 이기 때문이다.
아무튼
이것에 대해 공부해보겠다
로컬 서버에 프로그램들을 설치 할 필요 없이 AWS가 제공하는 별도의 platform 위에서 서버를 구축하여 데이터를 입력/처리/출력 할 수 있음
program을 직접 구동시키지 않아도 AWS 의 람다에서 코드를 몇줄 입력하는 것 만으로 함수가 자동으로 동작하게 할 수 있음. 그래서 컴퓨터리스, 서버리스!!
AWS 사이트에서, 사이트 상에서 코드 몇줄 만으로 AWS 서버가 그 프로그램을 자동으로 동작시킴
그 함수가 언제 실행될 지를 내가 정할 수 있음
소스 코드 + 몇가지의 설정 = 우리만의 웹서버
AWS는 API Gateway 가 웹서버 처럼 동작하도록 만든다
Client 접속 → API Gateway가 그 요청을 받아→ AWS LAMBDA 에게 넘긴다 🔛 DB 요청을 처리하여 DB에 담거나 클라이언트에게 response를 반환
AWS Lambda 자체는 '함수'로서의 역할을 수행하기에
실제 서버처럼 동작시키려면
API Gateway를 이용해 공인 주소를 설정해야한다
(클라이언트가 이를 통해 접속하도록) LAMBDA 는 Function 이다! 람다 함수~
▲API Gateway로trigger를 설정해준다(웹서버처럼 동작하는 기능을 하는게 API Gateway다)
API endpoint url을 눌렀더니나의 고유 웹 서버가 나왔다
코드를 수정하며
웹사이트에 서버 프로그램을 수정
참고유튜브
▶︎ 동빈나 Python기반
▶︎ Dylan Albertazzi Node기반
참고링크
▶︎ 짐코딩 람다란 무엇인가
▶︎ 니꼬쌤 AWS 숨겨진 서비스
▶︎ AWS 공식문서 LAMBDA란 무엇인가
▶︎ AWS 공식문서 다른서비스와 함께 LAMBDA 사용
▶︎ AWS 공식문서 .zip 파일 아카이브를 사용하여 Node.js Lambda 함수 배포