서버리스(Serverless)는 이름과 달리 서버가 없는 것이 아니라, 개발자가 서버 관리에 신경 쓸 필요 없이 코드만 작성하면 클라우드 제공업체가 나머지 인프라를 알아서 처리해주는 방식을 말합니다.
서버리스의 핵심 개념: FaaS
서버리스의 대표적인 형태는 FaaS(Function as a Service)입니다. 개발자는 하나의 함수 단위로 코드를 작성해 업로드하고, 이 함수는 요청이 들어올 때만 실행되며 사용한 만큼만 비용이 청구됩니다. AWS Lambda, Cloudflare Workers, Google Cloud Functions가 대표적입니다.
서버리스의 장점
- 서버 프로비저닝과 운영체제 관리가 필요 없음
- 트래픽에 따라 자동으로 확장되며, 요청이 없으면 비용도 발생하지 않음
- 빠른 배포와 개발 속도
서버리스의 단점
- 콜드 스타트(Cold Start): 오랫동안 호출되지 않은 함수는 첫 실행 시 지연이 발생할 수 있습니다.
- 실행 시간 제한: 대부분의 서버리스 플랫폼은 함수 실행 시간에 제한을 둡니다.
- 벤더 종속성: 특정 클라우드 업체의 서버리스 생태계에 맞춰 코드를 작성하면 다른 플랫폼으로 이전하기 어려워질 수 있습니다.
Cloudflare Workers의 특별한 강점
Cloudflare Workers는 V8 엔진의 Isolate 기술을 사용해 콜드 스타트 문제를 크게 줄였습니다. 전 세계 수백 개의 엣지 로케이션에서 실행되기 때문에 사용자와 가장 가까운 곳에서 코드가 실행되어 응답 속도가 매우 빠른 것이 특징입니다.
언제 서버리스를 선택해야 하는가
트래픽이 불규칙하거나 예측하기 어려운 서비스, 간단한 API나 웹훅 처리, 이벤트 기반 작업에는 서버리스가 적합합니다. 반면 지속적으로 높은 트래픽을 처리하거나 긴 실행 시간이 필요한 작업에는 기존 서버 방식이 비용 면에서 더 유리할 수 있습니다.