서버리스(Serverless) vs 상시 실행 서버(Server-based) 차이점과 선택 기준
KUKJIN LEE • 1개월 전 작성
요약하면 상시 실행 서버는 요청이 없어도 서버가 항상 대기 상태로 유지되며, 서버리스(Serverless)는 요청이 있을 때만 함수가 실행되기 때문에 요청이 없을 때는 대기 상태처럼 보여도 실제로는 리소스를 사용하지 않기 때문에 서버리스라고 부릅니다.
1. 서버리스(Serverless)란?
서버리스는 서버 인프라를 직접 관리하지 않고, 클라우드 제공업체가 관리하는 환경에서 필요한 순간에만 함수를 실행하는 방식입니다. 예를 들어, AWS Lambda, Vercel, Netlify 등이 대표적인 서버리스 플랫폼입니다. 요청이 있을 때만 서버가 일시적으로 활성화되고, 요청이 끝나면 자동으로 종료되어 리소스를 해제합니다.
서버리스는 "서버가 없다"는 의미가 아닙니다. 클라우드에 서버가 있지만, 개발자가 직접 서버를 운영하거나 관리할 필요가 없는 환경을 서버리스라고 부릅니다.
2. 상시 실행 서버란?
상시 실행 서버는 서버가 항상 실행 상태를 유지하며 요청을 기다리는 전통적인 서버 환경을 의미합니다. 예를 들어, Express.js를 EC2 인스턴스에 배포한 경우 서버가 항상 활성 상태로 클라이언트 요청을 대기합니다. 트래픽이 없더라도 서버는 실행 상태를 유지하며, 사용자가 서버의 모든 자원을 관리하고 유지보수해야 합니다.
3. 서버리스와 상시 실행 서버의 주요 차이점
4. 서버리스와 상시 실행 서버, 언제 어떤 것을 선택할까?
서버리스를 선택해야 할 때
-
트래픽이 일정하지 않고, 이벤트 기반으로 간헐적인 요청이 발생하는 경우
-
애플리케이션이 매우 빠르게 확장/축소되어야 하는 경우
-
개발팀이 서버 인프라 관리 대신 애플리케이션 개발에 집중하고 싶은 경우
상시 실행 서버를 선택해야 할 때
-
지속적이고 예측 가능한 트래픽이 발생하는 경우
-
각 요청 간에 상태를 유지해야 하거나, 세션 관리를 통해 사용자 경험을 최적화하고 싶은 경우
-
특정한 서버 환경 또는 설정이 필요한 경우 (예: 특정 라이브러리나 도구 설치 필요)