서버리스, Serverless.
서버를 관리할 필요가 없는 구조의 아키텍처, 어플리케이션 등을 통칭하는 말이다.
공통되는 특징이라면 사용자가 사용할 때만 컴퓨팅 자원을 제공하기에, 효율적으로 자원을 관리할 수 있으며 사용 시에만 비용이 부과된다.
종류
서비스 형 함수 (FaaS)
함수로 구성 된 프로그램을 요청이 들어오면 실행시켜주는 서비스. 요청 때마다 함수를 실행하기에 컴퓨팅 리소스가 요청 시에만 사용되며, 따라서 비용도 요청 수를 기준으로 부과되는 것이 일반적이다.
요청이 들어올 때마다 실행시키지만 내부적인 요청 처리와 런타임 실행 등의 문제로 사용되지 않다가 요청이 들어온 함수는 실행이 오래 걸리기도 한다. 이를 Cold-start라고 부른다.
일부 제공자(AWS Lambda, MS Azure 등)에서는 매 요청마다 Cold-start가 생기는 것을 방지하기 위해 요청이 들어오고 나서 일부 시간 동안 함수를 계속 대기 시켜 놓는다. 이는 당연하지만 시간이 지나도 요청이 없을 시 다시 수면 상태로 들어간다.
최근에는 특정 기술만 사용하는 것으로 제한하여 Cold-start를 없애고 여러 나라에서 적은 노력으로 함수를 배포할 수 있는 서비스도 있다. 대표적으로는 Cloudflare Worker, Fastly Compute 등이 있다.
서비스 형 백엔드 (BaaS)
BaaS는 서비스를 구현하는 데에 자주 사용되는 데이터베이스, 저장소, 유저 기능, 푸시 등의 기능을 간단하게 구현할 수 있는 솔루션을 추가적으로 제공한다. 대부분의 업체에서는 자체적인 구조와 연동 방법을 제공한다.
장점은 솔루션의 기능을 사용하기에 구현 관련된 오류나 버그가 발생 될 확률이 현저히 낮아지고, 원하는 기능을 빠르게 구현할 수 있다는 것이다.
단점이라면 많은 BaaS는 타사의 솔루션과 호환되지 않는데, 이는 한 업체에 종속되는 문제가 생길 수 있다.
주 사용 대상으로는 서버 개발자가 따로 없거나, 특별하지 않은 기능을 빠르게 구현해야 하는 스타트업 업체가 주요 사용처다. 또한 최근에는 게임 등의 특정 플랫폼을 위한 BaaS 솔루션 업체도 등장하고 있다.
BaaS 솔루션으로는 Firebase, AWS Amplify, Supabase, 뒤끝 등이 있다. 서비스를 구현하다 보면 기본적인 솔루션 기능들만으로는 원하는 기능 구현에 한계가 생기는 경우도 있어서, BaaS에 더불어 위에서 언급된 함수 기능(FaaS)도 제공하는 경우가 많다.
장점
서버 관리 불필요
서버 관련 인프라에 신경 쓸 필요가 없다. 자신의 제품에만 집중하고 싶은 소규모 개발자들에게 유용하다.
비용 절감
서비스를 사용할 때만 컴퓨팅 파워를 사용하기에, 대부분의 업체는 사용 시(요청 시)마다 과금하는 제도를 채택하고 있다. 사용자가 적거나, 특정 때에만 잠깐 몰리는 제품의 경우 서버리스가 비용 면에서 유리하다.
다만 상시 사용자가 서버와 연결되어야 하는 채팅, 게임 서버 등의 운영 사례에서는 비용 면에서 불리해진다. 사용 시마다 과금되는데, 사용자가 연결을 끊기 전까지는 계속 사용 중인 것으로 처리되기 때문이다. 이 때문에 소켓을 사용하는 경우 서버리스를 권장하지 않기도 하며, 이러한 사용 목적에 적합한 BaaS 업체도 존재한다.
개발 편의
- 제공 업체의 타 서비스와 연동이 매우 간편하다.
- 이는 AWS의 여러 서비스를 AWS의 FaaS인 Lambda와 연동할 수 있다는 것을 보여주는 예시이다. 물론 이는 극히 일부이고, 거의 대부분의 AWS 서비스는 Lambda와의 연동(함수 호출)을 지원한다.

- 일부 제공자는 간단하게 함수를 수정할 수 있는 환경을 제공한다.
- 좌측은 AWS의 클라우드 IDE ‘Cloud9’ 서비스다. 자사의 Lambda 서비스를 간단하게 수정, 배포할 수 있는 기능을 제공한다.
- 우측은 Cloudflare의 Quick Edit 기능이다. 간단한 기능을 하는 함수는 웹에서 수정하고, 즉시 배포할 수 있다.

단점
Cold-start (콜드 스타트, 잠 깨우기)
대부분의 서버리스 플랫폼은 사용하지 않는 함수나 서비스를 종료 혹은 정지 시켜 컴퓨팅 리소스를 절감하는 방식으로 동작한다. 이렇게 사용하지 않던 서비스가 실행될 때까지 기다려야 하는 것을 Cold-start라고 부른다.
위 문단에도 언급했지만 일부 제공자에서는 특정 기술만 사용하는 것으로 제한하여 콜드 스타트를 없애려는 노력도 하고 있다.
플랫폼 종속
한 플랫폼이나 업체에 종속되어야 하는 경우가 많다. 업체마다 자체적인 플랫폼을 사용해 서비스를 제공하기 때문이다. 업체에서 이러한 점을 이용해 서비스를 무료로 풀고, 나중의 Lock-in 효과를 기대하기도 한다.
Serverless Framework 같은 여러 업체의 플랫폼에 함수를 간편히 배포할 수 있도록 도와주는 도구도 있는데, 이도 사실 상 대규모 플랫폼 이외에는 거의 지원되지 않는 수준이다.
최근 일부 FaaS는 Edge runtime이라는 개념으로 발전되면서, Node.js나 Java 등의 런타임이 아닌 자체적인 런타임을 사용해 함수를 구동한다. 이런 자체 런타임은 JavaScript 표준 API나 WebAssembly 같은 표준을 따르는 경우가 많아, 플랫폼에 종속되는 단점에서 벗어날 수 있다.
여담
- 최근 클라우드 업체에서는 사용자 관리가 필요 없는 관리 형 서비스(SaaS, Software as a Service)를 제공하기에 자칫 혼동할 수 있겠으나, 관리 형 서비스는 단순 해당 서비스(DB, 컨테이너)를 관제 하에 구동 시켜주고, 일부 추가 서비스(백업 등)를 제공하는 것이므로 다르다고 볼 수 있다.