개요

- 서버가 없는 것이 아니라, 개발자가 직접 서버를 관리할 필요가 없도록 해주는 서비스를 의미한다.

- 백엔드의 소스를 작은 함수로 쪼개어, AWS Lambda와 같은 서버에 업로드 하면, 그것을 호출하여 사용할 수 있다.

 

등장배경

- 과거, 서버를 운용하기 위해 하드웨어 / 소프트웨어를 직접 수동으로 관리했다.

- 예상치 못한 요인(정전, 과도한 트래픽 등)으로 서버가 다운되고는 했다.

- AWS EC2가 등장하여 돈만 내면 최신식 서버를 빌려 사용할 수 있게 되었고, 큰 회사들이 서버의 하드웨어 부분을 책임지고 관리하면서, 예기치 못한 서버의 문제를 방지할 수 있게 되었다.

- 서버의 소프트웨어 부분은 여전히 직접 관리해야 했으므로, 개발자가 서버단의 관리나 설정에 신경쓸 필요가 없도록 하기 위해 등장했다.

 

장점

- 24시간 가동하는 일반적 서버와 달리, Serverless는 요청이 오는 순간에만 함수를 깨워 작업을 수행하며, 수행 횟수 만큼만 요금을 지불하면 되고, 100만번의 함수 수행에 200원 꼴이므로 저렴하다.

- 서버의 스케일을 따로 관리할 필요가 없다.

- 서버를 관리하고 설정할 필요 없이, 개발자는 비즈니스 로직에만 집중하면 되므로, 빠른 생산성이 보장된다.

 

단점

- 서버 단의 함수를 호출할 때마다, 잠을 자고 있는 함수를 깨워야 하므로, 약간의 시간이 소요된다.

    - 단, AWS Lambda에서는 자주 호출되는 함수를 파악하여, 해당 함수를 상시 대기하도록 하기도 한다.

- 서버를 통제할 수 없으므로, 제공되는 서버 환경에 의존하게 된다.

    - 제공하는 서버리스 환경에 맞춰 애플리케이션의 구조가 맞춰지기 때문에, 한 서버리스에서 다른 서버리스로 마이그레이션하기 힘들다.

 

참고

- serverless.com

- AWS Lambda

- Google Cloud Function

- Apex

- Terraform

- https://www.youtube.com/watch?v=ufLmReluPww 

 

반응형

+ Recent posts