FrontEnd

서버리스 컴퓨팅이란? - 서버리스 개념과 AWS Lambda(람다) 서비스 알아보기

김평범님 2022. 7. 3. 14:55
반응형

AWS 람다 서버리스 구성 장점 단점

🤔서버리스 컴퓨팅(Serverless computing)이란?

서버리스 컴퓨팅이란 보통 클라우드 모델 중하나이다.

단어 자체로는 서버리스이지만, 실제로는 서버는 존재하나

서버에 관련된 부분을 크게 신경 쓰지 않아도 된다라는 의미로 서버리스라는 단어를 사용한다.

 

클라우드 서비스 플랫폼에 서버리스 컴퓨팅을 제공하는 서비스에 

소스를 올리게 되면 바로 애플리케이션이 돌아가게 된다.

 

서버리스 컴퓨팅을 이용하면 서버를 구매할 필요도 없으며,

배포 후에 user 수에 따른 스케일링이라던지 프로비저닝도 자동으로 제공되어

소스 외 서버에 관련된 부분은 개발자가 신경 쓸 필요가 없다는 것이 장점이다.

 

 

✨AWS Lambda

AWS Lambda

아마존 람다는 아마존 웹서비스에서 제공하는 서버리스 클라우팅 서비스이다.

아마존 람다는 서버를 프로비저닝 또는 관리하지 않아도

모든 애플리케이션 또는 백엔드 서비스에 대한 코드를 실행할 수 있는

이벤트 중심의 서버리스 컴퓨터를 제공한다.

 

AWS Lambda 웹 애플리케이션 아키텍처

AWS 람다 로 웹어플리케이션 구성하기

일단 Amazon S3에 프런트 앤드 코드를 올려서 배포를 한 이후

user가 해당 사이트에 들어와서 특정 function을 호출하면

Amazon API Gateway에서 Lambda에 올라간 Backend Function Code가 실행되어

데이터를 찾아서 User에게 Return 값으로 전달해주는 구조가 된다.

 


 

AWS Lambda의 장점

1️⃣자동화 관리 

AWS Lambda를 활용할 경우 인프라 관리는 AWS Lambda에서 자동으로 진행된다.

OS 업데이트 신규 패키지 등 도 알아서 Lambda가 알아서 관리해주며,

서버에 User가 많아질 경우 서버 규모 조정 등도 Lambda가 다 알아서 해준다.

유지보수, 보완, 모니터링 은 Lambda가 다 알아서 해주는 구조이므로

backend 개발자는 코드 작성에만 집중하면 된다.

 

2️⃣사용한 만큼만 지불

Lambda가 저렴한 이유는 바로 내가 만든 함수가 호출될 때 비용이 발생한다.

보통 가상머신에 서버를 만들게 되면 가상 머신이 도는 24시간 아무 호출이 없어도 우리는 가상 머신을 생성했다는 사실 하나로 비용을 지불해야 된다.

 

하지만 Lambda의 경우 내가 만든 함수가 호출될 때만 비용이 발생되어

사용자가 많이 접속하지 않는 사이드 프로젝트의 경우 Lambda로 프로젝트를 만들게 되면 비용을 절약할 수 있다.

 

 

 

 


AWS Lambda의 단점

1️⃣용량 제한

배포 패키징 용량제한

Lambda는 작은 단위의 함수를 나눠서 업로드를 하기 때문에 올릴 수 있는 코드 제한이 있다.

람다에 업로드하는 배포 패키지는 250MB 제한이 있다.

 

보통 내가 사용하는 Nuxt 배포 패키지도 람다를 이용할 수 있으나, 배포 패키지 용량 제한이 있어서

대규모의 프로젝트가 되면 용량제한이 걸릴 수도 있다.

 

2️⃣콜드 스타트(Cold Start) 이슈

콜드 스타트는 람다가 오랫동안 호출되지 않다가 오랜만에 호출될 때 발생하는 딜레이를 말한다.

람다는 해당 기능이 호출될 때 실행이 되는 구조라

오랫동안 해당 기능이 호출이 되지 않으면 다시 해당 기능을 하기 위한 컨테이너를 실행하는 시간이 조금 걸리게 된다.

 

3️⃣람다 동시 실행 함수 제한

람다 동시실행 제한

람다는 기본적으로 1000개의 함수가 동시에 실행될 수 있도록 제한되었다.

서비스가 커지게 된다고 하면 기본 할당량을 넘어서 서비스 동시 실행 수를 증가해서 사용을 해야 한다.

 

 

 

 

 

 

반응형