인사이트

인사이트리포트

디지털프렌스포메이션 최신 정보 및 트렌드를 제공합니다.

클라우드 플랫폼

클라우드 패러다임의 전환: 서버리스 컴퓨팅

2019.09.27김지명
다운로드

2018년 7월, 서버리스(Serverless) 아키텍처의 오류 감지 및 모니터링 솔루션 업체인 대시버드(Dashbird)의 SEO 매니저 존 데미안(John Demian)은 자사 홈페이지에 흥미로운 글을 올렸다. 코카콜라가 아마존 웹 서비스(Amazon Web Service, 이하 AWS) EC2 인스턴스에서 운영 중이던 자판기 관리 시스템을 AWS Lambda로 이전하여 관리비용을 년 1만 3,000달러에서 4,500달러로 65%나 절감했다는 내용이었다. Lambda는 서버리스 개념이 적용된 최초의 서비스로 2014년 11월 AWS가 발표하였다. 이후 구글, 마이크로소프트 등에서 이를 벤치마킹 한 서비스가 생겨났으며 앞서 언급한 코카콜라와 넷플릭스, 버라이즌 등 대기업을 비롯해 여러 회사들이 서버리스를 도입하였다. 서버리스가 이처럼 많은 관심을 받는 이유는 무엇일까? 이를 이해하기 위해 본 아티클에서는 서버리스 컴퓨팅을 소개하고자 한다.

 

클라우드 서비스의 진화

그림 1 - 클라우드 컴퓨팅의 진화_ Data Center(Traditonal say to provide infrastructure)-IAAS(Provide AWS CLI or API to manage Intrasture(AWS EC2)-PAAS(Provide infrastructure based on devleoped application)- Serverless(Provide ingrastructure automatically when the functuion gets ecxeccuted(AWS Lambda)

기업 IT 환경이 온프레미스(On-Premise)에서 클라우드 기반으로 바뀌면서 시스템 확장의 신속성과 운영 효율성이 더욱 높아졌다. 클라우드 서비스는 인프라를 제공하는 IaaS(Infrastructure as a Service)부터 다양한 플랫폼이 구비된 PaaS(Platform as a Service)까지 갖추며 구체화 되었다. 기업들은 클라우드 서비스를 활용해 SaaS(Software as a Service) 어플리케이션을 만들어 고객에게 제공할 수 있게 되었는데, SaaS 어플리케이션을 보다 효율적으로 구축하고 운영할 수 있도록 돕는 서버리스 아키텍처가 출현하면서 많은 서비스들이 서버리스로 옮겨지는 추세를 보이고 있다.

 

 

버리스?

서버리스는 언뜻 단어로만 보면 “Server + Less”로 서버가 필요 없다는 뜻으로 생각될 수 있다. 하지만 실제 의미는 클라우드 서비스 공급자가 서버를 관리, 실행하며, 요청이나 특정 이벤트가 있을 때 클라우드의 서버를 이용하거나 서비스 할 어플리케이션을 동작시키는 것이다. 이를 통해 사용자(개발자)는 서버 관리에서 완전히 자유로워지며 실제 구현해야 할 기능에 더 집중할 수 있게 된다.

서버리스는 보통 ‘서버리스 컴퓨팅’ 또는 ‘서버리스 아키텍처’로 불린다. 서버리스 개념은 어플리케이션 관점에서 BaaS(Backend as a Service)와 FaaS(Function as a Service)로 나누어 살펴보면 이해가 더 용이하다.

그림 2 - BaaS와 FaaS_ Moble,Web Applications-Event-(Faas- BaaS(Database, File storgae Push service, API, Autentication))-Serverless(Faas+BaaS)

BaaS는 단일 웹페이지나 모바일 앱 기반의 서비스에서 필요한 서버 기능들을 사용하기 위해 이용하는 써드파티(Third Party) 어플리케이션이나 클라우드 서비스를 일컫는다. 쉽게 말해 어플리케이션 개발 시 요구되는 복잡한 백앤드(Back-End) 기능들을 사용자(개발자)가 직접 개발하지 않고 클라우드 공급자가 제공하는 서비스를 이용해 쉽고 안정적으로 구현하는 것이다. 주된 사용 대상이 모바일 앱과 웹 앱(WebApp)이다 보니 MBaaS(Mobile Backend as a Service)라 불리는 시장이 활성화 되는 추세이다. 클라우드 데이터베이스 서비스인 Firebase나 클라우드 인증 서비스인 Auth0가 BaaS에 해당한다.

BaaS가 클라우드 서비스 공급자가 제공하는 서버 기능을 단순하게 이용한다면 이와 달리 FaaS는 사용자가 쓸 기능을 함수 단위로 나누어 구현하고 이를 서비스하는 형태이다. FaaS는 Event-Driven 아키텍처를 구현하는데 적합하며 사용자가 원하는 기능을 미리 작성해놓고 특정 이벤트(예를 들어 HTTP Request, API 호출, 특정 조건 등)에 의해 실행된다. 이때 서버는 계속 대기하면서 이벤트를 기다리지 않고 이벤트가 발생할 때마다 실행된다. 서버가 실행된 횟수와 시간(밀리세컨드. 1,000분의 1초)에 따라 비용이 산정된다. FaaS를 구현한 대표적인 서비스로 AWS의 Lambda, 마이크로소프트의 Azure Functions, 구글의 Google Cloud Functions 등이 있다.

 

 

서버리스의 장점과 고려사항

대형 클라우드 벤더가 서버리스를 출시한 이후, 기존 서비스를 서버리스(FaaS)로 이전하는 사례가 늘어나고 있다. 기업들이 서버리스로 이전을 택하는 이유는 무엇일까?

그림 3 - 서버리스 사용에 따른 비용 절감_ 좌변(비용), 우변(Scale)- Traditional Serverless

첫째, 운영 비용 절감 효과를 들 수 있다. IaaS나 PaaS와 같이 상시 운영 중인 서버와 달리 요청에 따라 호출되어 처리되기 때문에 유휴 자원이 발생하지 않는다. 코카콜라의 비용 절감 사례가 그 예이다.

둘째, 서버리스는 기존 클라우드 서비스보다 더 유연한 확장성을 제공한다. FaaS의 경우 일반적인 클라우드 서비스와 같이 특정 조건(예를 들어 CPU, RAM 임계치 도달과 같은)에 따라 확장되는 방식이 아닌, 호출될 때마다 새로운 인스턴스가 기동되어 동작하기 때문에 특정 조건을 설정하지 않아도 급격한 트래픽 변화에 유연한 대응이 가능하다.

셋째, 기능이 함수 단위로 개발되기 때문에 서비스를 빠르고 간단하게 출시할 수 있다.

 

하지만 서버리스로 전환하기에 앞서 다음의 제약사항은 반드시 확인이 필요하다.

첫째, 빠른 응답이 필요한 제품의 경우 서버리스로의 전환은 부적합할 수 있다. 이는 실행되는 함수가 호출되기 위해 컨테이너가 실행되는 대기 시간(콜드스타트, Cold-Start)이 존재하기 때문인데 서버가 항시 기동되고 있지 않은 서버리스의 특징에 기인한다.

둘째, 무상태(Stateless)적인 기능으로 구현되어야 한다. 하나의 작은 기능으로 나뉘어진 함수들은 요청마다 새로 기동되어 호출되기 때문에 전후 상태를 공유할 수 없다. 또한 변수와 데이터의 공유가 불가능하며, 데이터를 로컬 스토리지에서 읽고 쓸 수 없다. (이는 서버리스 벤더에 따라 추가 서비스를 통해 극복이 가능하지만, AWS S3, Azure Storage등 일반적인 서버리스는 불가능하다.)

셋째, 서버리스 서비스 벤더가 제한을 두는 사항은 그대로 수용해야 한다. 함수 내에서 사용할 수 있는 최대 메모리, 최대 처리 가능 시간 등의 제약이 그것이다. 이에 따라 큰 기능을 잘게 나눠 구현해야 한다. 이를 준수하지 않고서는 서버리스로 이전은 불가능하다.

 

 

서버리스의 사용 사례

서버리스는 저렴한 비용으로 새로운 아이디어를 빠르게 테스트할 수 있는 장점이 있으며, 여러 서비스에 적용이 가능하다. 서버리스가 적합한 기능으로 배치 및 자동화 서비스를 들 수 있다. 배치 작업의 경우 24시간 운영되던 서버가 필요 없게 되고, 특정 시간에 수행되던 기능을 서버리스로 옮기는 것만으로도 손쉽게 변경할 수 있다.

이와 비슷한 맥락으로 자동화 작업도 적용이 가능하다. 넷플릭스는 동영상 업로드 시 파일의 인코딩과 검증, 태깅 이후에 공개되는 작업을 AWS Lambda를 통해 자동화 하였다. 실시간 비디오 스트리밍 앱 개발사인 페리스코프(Periscope)도 동영상의 유해성 여부를 확인하는 기능을 Lambda에서 운영하고 있다.

분석과 모니터링 기능도 서버리스가 적합하다. 예를 들면 CPU 사용량이 임계치에 도달했을 때 알림을 받거나 지속적으로 기록되는 로그를 분석하고 리포팅 하는데 사용할 수 있다. 미국 온라인 패션 매거진 버슬(Bustle)은 하루 1억건의 이벤트 처리와 데이터 분석 리포팅에 서버리스를 적용해 84%의 비용을 절감하였다.

마지막으로 챗봇(Chat-Bot) 서비스에 서버리스를 적용하면 API 호출 시 요청을 처리하고 유연한 확장이 가능해 많은 사용자에게 안정적인 서비스를 제공할 수 있다. 슬랙(Slack)을 기반으로 하는 챗봇 어플리케이션이나 Amazon Echo 그리고 AWS Lambda를 이용한 음성인식 어플리케이션이 늘어나고 있다.

 

 

클라우드 패러다임의 전환

IaaS부터 PaaS 그리고 현재의 서버리스에 이르기까지 컴퓨팅 자원의 효율적인 사용이라는 클라우드 서비스의 발전 목표는 기업의 요구사항에 한층 더 가까워졌다. AWS Lambda 출시 이후 마이크로소프트의 Azure Functions, 구글의 Google Cloud Functions 등 대형 벤더가 서비스를 출시하면서 경쟁은 더욱 치열해지고 있다. 서버리스 시장 선점을 위한 벤더들의 적극적인 행보는 이미 클라우드 시장의 패러다임 전환이 일어났음을 암시한다.

그림 4 - 주요 서버리스 컴퓨팅 서비스_ AWS Lambada, Google Cloud Functions, Microsoft Azure Functions

클라우드 서비스 시장에서 서버리스는 값싸고 빠르게 아이디어를 테스트하고 구현할 수 있는 환경을 제공한다. 물론 PaaS는 여전히 매력적인 서비스이고 서버리스가 가진 제약을 수용할 수 없는 경우에 좋은 대안이 된다. 그럼에도 불구하고 서버리스는 복잡한 기능을 간결화 할 수 있고, 보다 민첩한 서비스를 구현할 수 있을 뿐 아니라, 운영 비용의 절감 효과까지 얻을 수 있기에 관심을 가지고 검토해 볼만한 가치가 있을 것이다.

# References

- https://www.einfochips.com/blog/serverless-architecture-the-future-of-software-architecture
- 서버리스 컴퓨팅의 의미와 현황 그리고 과제, 한국정보화진흥원, 2018

김지명 프로

에스코어㈜ 소프트웨어사업부 오픈소스SW그룹

에스코어에서 오픈소스 소프트웨어의 기술 서비스를 담당하고 있습니다.

연관 아티클

  • 웹 애플리케이션 클립보드 활용 사례
    IT 트렌드2024.04.25

    웹 애플리케이션 클립보드 활용 사례

    자세히 보기
  • AI 시대, 디자이너가 알아야 할 가독성을 높이는 데이터 시각화 방법
    SW 테크놀로지2024.03.15

    AI 시대, 디자이너가 알아야 할 가독성을 높이는 데이터 시각화 방법

    자세히 보기
  • 이메일 데이터 형식 알아보기 - MHTML 형식
    SW 테크놀로지2023.08.10

    이메일 데이터 형식 알아보기 - MHTML 형식

    자세히 보기