오늘은 백엔드 부분 서버리스 실습을 진행했다. EC2로 서버를 구성했을 때는 확장성, 갑작스러운 트레픽 증가 금액적인 부분에서 문제가 발생할 수 있어 나와 같이 스타트업 또는 실험적인 서비스를 제공할 때는 AWS에서 제공하는 lambda를 이용해서 서버리스 백엔드를 구성한다고 한다. 특이하게도 lambda는 기존의 파이썬 FLASK 프레임워크에서처럼 모든 API가 담긴 파일을 올리는 것이 아니라 함수별로 쪼개서 API를 만들 수 가 있었다. 덕분에 다른 API에 문제가 발생해도 해당 API외에는 다른 곳에는 문제가 발생하지 않을 것 같아서 굉장히 유용해 보였다. 점점 어떻게 우리 프로젝트를 쪼개서 서비스를 사람들에게 제공해야할지 감이 잡혀오는 것 같다. 아주 아주 바람직하다고 생각한다.
서버리스(Serverless) : 클라우드에서 서버를 빌려쓰는 형태에서 나아가서 서버를 관리해주는 것
클라우드(Cloud) : 인터넷 통신망 어딘가에서 컴퓨팅 자원(CPU,메모리,디스크)을 원하는대로 가져다 쓸 수 있는 서비스. 내가 물리적으로 서버를 구축하지 않아도 인터넷 통신망에서 제공하는 클라우드 서비스를 이용하면 클릭만으로 서버를 구축할 수 있다.
웹 호스팅(Web Hosting) : 호스팅 업체의 서버 중 일부(공간)만 임대해주는 서비스
서버 호스팅(Server Hosting) : 호스팅 업체의 물리 서버를 단독으로 임대/구매하여 사용 서버 운영에 필요한 인프라와 기술력까지 제공받는 것
Lambda : AWS에서 제공하는 서비스로 S3처럼 백엔드를 Serverless로 운영할 수 있는 서비스이다.
Lambda VS 레거시
API Gateway : 백엔드 서비스 또는 데이터와 접속하고 API 호출에 대한 정책, 인증 및 일반 액세스 제어를 적용하여 중요한 데이터를 보호하는 트래픽 관리자이다. AWS에서의 Gateway서비스는 나아가 HTTP URL, METHOD(GET,POST등)을 만들어 주어 API 엔드포인트 역할도 갖고 있다.
Lambda private VPC : Lambda는 AWS에서 프라이빗한 VPC에서 관리되도록 권장하고 있다. 이때, 인터넷에서 클라이언트로 부터 API호출을 정상적으로 받기 위해 Nat Gateway를 설정해주어야한다.
서버리스 개념 정리 차곡차곡 해나가자!
<참조>
https://library.gabia.com/contents/infrahosting/9114/ 클라우드란 무엇인가 – 개념, 장점, 서비스 구분
https://www.tibco.com/ko/reference-center/what-is-an-api-gateway API 게이트웨이이란 무엇입니까?
https://medium.com/@kimjnsjwj/vpc%EB%82%B4%EC%9D%98-aws-lambda%EC%9D%98-%EC%9D%B8%ED%84%B0%EB%84%B7-%EC%A0%91%EC%86%8D-bc503e9940f5 VPC내의 AWS Lambda의 인터넷 접속