Serverless란?

Serverless 란 “서버가 없다” 라는 뜻입니다. 근데, 실제로는 없는 것은 아닙니다.
가상머신이나 컨테이너를 이용하여 서버를 설정하고, 처리하는 것이 아님을 의미 합니다.
보통 클라우드 서비스 하면 생각나는 것은 Iaas, Paas, Saas 입니다.

이 세가지의 큰 분류를 넘어서 Baas (Backend as a Service), Faas (Function as a Service) 를 사용하는 것입니다.

Baas (Backend as a Service)

우리가 웹 어플리케이션을 만들게 될 때는, 보통 백엔드 서버 개발을 하게 됩니다.
데이터 저장, 프론트엔드로 내려주기 위한 데이터 수집 및 가공 등은 모두 백엔드에서 이루어지게 됩니다.
그래서 Baas에서는, 이러한 작업을 위한 기능들을 API로 제공하면서, 개발자들이 서버개발을 하지 않아도 쉽고 빠르게 구현할 수 있도록 해줍니다.

Baas는 다음과 같은 장점들이 있습니다.

  • 개발 시간의 단축
  • 서버 확장 작업 불필요
  • 백엔드 지식이 없어도 빠른 속도로 개발 가능

Baas는 이러한 단점들이 있습니다.

  • 클라이언트 위주의 코드
  • 가격
  • 복잡한 쿼리 불가능함

Baas의 대표적인 사례는 구글의 Firebase가 있습니다.

Faas (Function as a Service)

Faas는 앱 자체를 여러개의 함수로 쪼개서, 분산된 컴퓨팅 자원 아래 지정한 함수를 실행시키는 것을 말합니다.
등록한 함수는, 특정한 이벤트가 발생하면 실행됩니다. Faas는 서버에 신경쓰지 않아도 된다는 점이 Paas와 매우 유사하지만,
계속 실행되는 것이 아니라 특정 이벤트가 발생 했을 때만 실행된다는 점 입니다.

Faas는 다음과 같은 장점들이 있습니다.

  • 비용 절약
  • 인프라 관리에 대한 생각 불필요
  • 보안 관련 생각 불필요
  • 확장성

Faas는 다음과 같은 단점들이 있습니다.

  • 제한적인 처리시간 및 리소스
  • 제공사에 대한 의존
  • 로컬 데이터 사용 불가능

Faas의 대표적인 사례는 AWS Lambda, Google Cloud Functions, Azure Functions 등이 있습니다.

Comments