서버리스
서버 자체를 개발자가 직접 프로비저닝·관리하지 않고, 클라우드 업체가 인프라 운영과 확장을 전담하는 컴퓨팅 실행 모델이다.
핵심 특징
- 인프라 관리 불필요: OS 관리·보안·파일 시스템 관리를 클라우드가 담당한다. 전통적인 IaaS(AWS EC2 등)는 이런 부분을 직접 관리해야 했다.
- 자동 확장: 트래픽에 따라 동적으로 크기를 조정한다.
- 사용량 기반 과금: 실행한 만큼만 비용을 지불하며, 사용하지 않은 용량에는 비용이 발생하지 않는다.
구현 방식
FaaS (Function as a Service)
특정 이벤트가 발생했을 때만 함수가 실행되는 방식이다. 예를 들어 GET /hello 경로에 호출(이벤트)이 발생하면 이를 처리할 함수를 잠시 실행하고 결과를 응답한다. 개발자는 비즈니스 로직을 작성해 코드 조각(함수)을 클라우드 인프라에 배포하면 된다. 세부 분류는 XaaS 참고.
BaaS (Backend as a Service)
클라우드 제공업체가 만든 인증, 소셜 서비스 등 완성된 백엔드 기능을 API로 제공받아 사용하는 방식이다. 예를 들어 Firebase Authentication을 활용하면 비교적 적은 코드로 로그인 기능을 구현할 수 있다. 세부 분류는 XaaS 참고.
장단점
- 장점: 컴퓨터를 직접 관리할 필요가 없고, 유연하게 확장할 수 있으며 유휴 자원에 대한 비용이 없다.
- 단점: 콜드 스타트 지연, 벤더 종속, 긴 실행 시간이나 상태 유지가 필요한 작업에는 부적합하다.
사용 예
AWS Lambda(서버리스 컴퓨팅), S3(스토리지), SQS(메시지 큐)
핵심 정리
서버리스는 "서버가 없다"는 뜻이 아니라 "서버 관리를 신경 쓰지 않는다"는 뜻이다. FaaS와 BaaS는 서버리스를 구현하는 대표적인 방식이다.