서버리스 컴퓨팅 (Serverless Computing)

컴퓨터과학·AI
한 줄 정의: 개발자가 서버 인프라를 직접 관리하지 않고, 코드를 실행할 때만 클라우드 제공자가 필요한 자원을 자동으로 할당해 실행하는 컴퓨팅 모델.

쉽게 풀면

서버리스는 이름과 달리 서버가 아예 없다는 뜻이 아니라, 개발자가 서버를 직접 설정하고 관리할 필요가 없다는 뜻이다. 코드를 클라우드에 올려두면, 실제로 그 코드를 실행해야 할 요청이 들어올 때만 클라우드가 알아서 자원을 할당해 실행하고, 사용한 만큼만 비용을 청구한다. 트래픽이 없을 때는 자원을 전혀 쓰지 않아 비용을 아낄 수 있지만, 갑자기 요청이 몰리면 처음 실행에 약간의 지연(콜드 스타트)이 생기는 특성이 있다.

왜 중요한가

서버리스 컴퓨팅은 클라우드 인프라 비용 절감과 자동 확장성이라는 실무적 이점 때문에 소프트웨어공학, 분산시스템, 엣지 컴퓨팅 등 여러 연구 분야에서 아키텍처 설계의 기본 선택지로 다루어집니다. 콜드 스타트 지연, 자원 배분 최적화, 비용-성능 트레이드오프 같은 문제는 시스템 성능 연구의 주요 주제로 이어지며, 마이크로서비스나 이벤트 기반 아키텍처와 결합되어 논의되는 경우가 많습니다.

논문에서는 이렇게 쓰입니다

"전처리 함수는 AWS Lambda 기반의 서버리스 아키텍처로 배포되어 요청량에 따라 자동으로 확장되었다."

서버를 직접 운영하지 않고, 클라우드의 서버리스 서비스에 코드를 올려 요청이 들어올 때만 자동으로 실행되도록 했다는 뜻이다.

"제안 시스템은 서버리스 함수 간 콜드 스타트 지연을 완화하기 위해 함수 사전 워밍 기법을 적용하였다."

서버리스 환경에서 함수가 처음 호출될 때 발생하는 지연을 줄이기 위해 미리 실행 환경을 준비해두는 최적화 기법을 적용했다는 뜻이다.

"엣지 서버리스 플랫폼을 활용해 사용자 인접 노드에서 추론 요청을 처리함으로써 응답 지연을 단축하였다."

서버리스 개념을 클라우드 중앙 서버가 아닌 엣지 컴퓨팅 환경에 적용해 지연을 줄였다는, 엣지 컴퓨팅 분야의 전형적인 서술이다.

조금 더 깊게 보면

서버리스 실행 단위인 함수(FaaS, Function as a Service)는 호출마다 격리된 컨테이너나 경량 가상화 환경에서 구동되며, 이 초기화 과정에서 발생하는 지연이 바로 콜드 스타트다. 이를 줄이기 위한 사전 워밍, 컨테이너 재사용, 경량 런타임 설계 등이 연구되고 있으며, 상태를 유지하지 않는(stateless) 특성 때문에 데이터베이스나 오브젝트 스토리지 같은 외부 저장소와의 연동 방식도 함께 논의되는 경우가 많다.

주의할 점

서버리스는 오래 실행되는 무거운 계산(예: 대형 모델 학습)보다는 짧고 간헐적인 작업에 더 적합하며, 실행 시간에 제한이 있는 경우가 많다.

관련 용어