Serverless 컴퓨팅 정의, 종류 장단점

mocaccino·2024년 11월 1일

백엔드로드맵

목록 보기
13/19

Serverless란 무엇인가?

서버리스 컴퓨팅은 개발자가 서버 인프라를 관리하지 않고, 애플리케이션을 빌드하고 실행하는 클라우드 컴퓨팅 모델이다.

실제로 "서버가 없음" 을 의미하지는 않는다. 서버리스 컴퓨팅에서 서버는 클라우드 공급자(CSP; AWS, Naver Cloud, Samsung Cloud Platform 등)가 관리한다. 클라우드 공급자는 서버 관리, 확장 및 유지작업을 처리한다.
개발자는 서버를 보지도, 관리하지도, 서버와 상호작용하지 않는다.
개발자는 이벤트 또는 트리거에 대한 응답으로 실행되는 함수 형태로 코드를 배포하고 예약된 용량이 아닌 실제 사용량에 따라 요금이 청구된다.

종류

일반적인 서버리스 플랫폼에는 AWS의 Lambda, Google Cloud의 Fuctions, Azure의 Functions가 있다.

장점

이 접근 방식은 인프라 문제를 추상화하고 AutoScaling을 활성화하여 운영 오버헤드를 줄임으로써 개발을 간소화한다.
개발자는 서버리스 컴퓨팅으로 애플리케이션의 코드와 비즈니스 로직을 작성하는데 집중할 수 있다. 개발자는 코드를 작성하고 CSP가 관리하는 컨테이너에 배포하는 일만 수행하면 되기 때문이다.

단점

  • 제어력 감소 : 서버리스의 설정에서 조직은 서버 제어권을 타사 CSP에 넘기기 때문에 하드웨어나 실행환경에 대한 관리를 포기하게 된다.

  • 공급업체 종속성 : 각 서비스 공급업체는 다른 공급업체와 호환되지 않는 고유한 서버리스 기능과 특징을 제공한다.

  • 느린 시작 : 느린 시작이란 서버리스 함수가 처음 호출될 때 지연이 발생하는 현상이다. 서버리스 제공자는 비용을 줄이기 위해 비활성 상태인 함수의 리소스를 줄이거나 해제하는데, 이렇게 하면 다시 호출될 때 워밍업이 필요해 지연이 발생하게 된다.
     Example 
    수요가 높은 환경에서 요청이 자주 들어오게 되는 상황에서 느린 시작이 자주 발생하게 되면 응답 시간이 늘어나서 성능에 큰 영향을 미칠 수 있다.

  • 긴 애플리케이션을 실행하는데 더 높은 비용 : 서버리스 모델은 일반적으로 단기적으로 빠르게 실행하고 종료하는 작업에 적합하도록 설계되었다. 때문에 장기적으로 실행되는 프로세스는 서버리스 환경에서 비용이 많이 들 수 있다.
     Example 
    데이터 분석이나 대규모 이미지 처리와 같은 작업을 서버리스로 처리한다면 기존의 전용 서버 또는 VM 환경보다 비용이 많이 들어갈 수 있다.

참고

https://www.ibm.com/topics/serverless

profile
레거시문서를 줄이자. 계속 업데이트해서 최신화한다.

0개의 댓글