BaaS와 FaaS 등 2가지로 나뉘어

[아이티데일리] 2014년 AWS에서 처음으로 선보인 서버리스(ServerLess) 솔루션이 IT 업계 개발자들에 의해 한 달에 수십 조 번이 실행되는 등 큰 호응을 얻고 있다. 서버리스는 서버의 운영·관리를 개발자를 대신해 CSP(Cloud Service Provider)가 도맡아 실행하기 때문에, 실제로 서버는 존재하지만 개발자의 업무에서 사라지는 것처럼 보여 ‘서버리스’ 혹은 ‘서버리스 컴퓨팅’, ‘서버리스 아키텍처’라고 불린다.

서버리스 컴퓨팅은 개발자가 서버를 운영·관리할 필요가 없어 비즈니스와 개발 본연의 업무에 집중하고, 애플리케이션이 구동되는 환경과 컴퓨팅 리소스는 클라우드 서비스가 자동화를 기반으로 대신해준다는 장점이 있다. 이러한 장점을 가진 서버리스 환경은 최근 쿠버네티스, IoT 등 신기술과 결합돼 서비스가 제공돼 향후 시장에서의 고성장이 기대되고 있다.


BaaS와 FaaS 등 2가지로 나뉘어

이와 같은 장점들을 가진 서버리스는 FaaS(Function as a Service)와 BaaS(Backend as a Service) 등 2가지로 나뉜다. 먼저 BaaS는 개발자가 백엔드단에서 개발해야하는 기능들을 미리 만들어 서비스 형태로 제공해 주는 것이다.

예를 들어 모바일 게임을 만들 경우 게임 유저 관리, 레이드 공지 기능, 아이템 관리, 랭킹 시스템 등 모바일 게임의 기본적인 핵심 기능을 CSP가 각사의 클라우드에 구현해 놓는다. 개발자들은 각 기능을 API 형태로 바로 사용할 수 있다. 이를 통해 게임 개발자는 게임 자체의 재미와 다양한 콘텐츠 등에 집중할 수 있기 때문에 시간과 개발에 투입되는 노력을 아낄 수 있으며, 그에 따라 비용도 함께 절감된다.

BaaS는 최근 API 호출을 통해 타사 애플리케이션 및 서비스를 광범위하게 연동할 수 있다는 장점을 기반으로 웹앱(WebApp) 또는 모바일 애플리케이션 개발자들을 위한 MBaaS(Mobile Backend as a Service)로 알려지고 있다. 이에 따라 MBaaS 시장도 활성화될 조짐을 보이고 있다.

▲ MBaaS의 강점(출처: 크롬인포테크)

MBaaS는 모바일에 특화된 푸시 알림, GPS, 소셜서비스 연계 기능 등을 포함, 백엔드에서 필요한 대부분의 기능들을 간단히 활용할 수 있어 많은 기업들이 활용하고 있다. 구글에서 직접 개발한 것을 사용하는 것보다 각자의 시스템에 통합하는 것이 훨씬 간단하기 때문이다. 대표적인 MBaaS의 사례로 구글의 ‘파이어베이스(Firebase)’를 들 수 있다. 구글의 ‘파이어베이스’는 안드로이드, iOS, 웹 등 플랫폼의 종류에 관계없이 다양한 백엔드 서비스를 API로 제공함으로써 한 번의 애플리케이션 개발로 다양한 플랫폼 지원이 가능하도록 서비스를 제공하고 있다.

한편 BaaS와 달리 서버에서 수행되는 기능들을 직접 애플리케이션 개발자가 코드로 작성하는 경우에도 서버리스가 적용될 수 있다. 바로 FaaS다. FaaS는 애플리케이션을 구성하는 여러 함수(코드, Function)들을 클라우드에서 직접 실행, 배포하는 방식이다. 이를 통해 애플리케이션 개발자는 각각의 함수를 개발해 클라우드에 업로드 한 후 필요할 경우 호출만 하면 되는 방식이다. 이로써 클라우드 상에서 서버를 할당받고, 확장하고, DB를 따로 관리하는 등의 백엔드에서 필요한 작업을 개발자는 전혀 신경 쓸 필요가 없다.

개발자는 로직이 담긴 함수 구현만 신경 쓰면 된다. 함수를 실행하기 위한 서버를 올리는 작업이나 실행시간을 구성하고 코드를 배포해 실행해야 하는 과정을 없애고, 사용자가 원하는 로직을 함수로 작성만 해놓으면 함수가 자동으로 실행된다. 구체적으로 함수가 호출되면 VM이 실행되고 해당 실행시간 내에서 정의해 놓은 함수가 실행된다. 실행 후 VM은 종료된다.

이 같은 함수는 서버가 계속 대기하면서 사용자의 요청을 처리하는 것이 아닌, 이벤트가 있을 때마다 실행된다. 따라서 FaaS는 주요 서비스 사이에서 간단한 작업을 처리하는 용도로 사용되고, BaaS와도 연동돼 사용할 수 있다.

대표적인 FaaS는 ‘AWS 람다(Lambda)’로, AWS의 각종 서비스와 쉽게 연동이 가능하다. 예를 들어 사용자가 이미지를 업로드하면 해당 이미지를 해상도별로 처리해 ‘AWS S3’에 저장하는 로직을 함수로 구현할 수 있다. ‘AWS 람다’는 요청이 많으면 자동적으로 확장돼 서버에 대해 신경 쓸 필요가 없다.

▲ AWS, MS, 구글 클라우드의 서버리스 컴퓨팅 로고

FaaS 솔루션에는 마이크로소프트의 ‘애저 펑션(Azure Function)’, 구글 클라우드의 ‘구글 펑션(Google Function)’, NBP의 ‘클라우드 펑션(Cloud Function)’ 등이 있다.

다만 비용 지불 측면에서 FaaS와 BaaS는 방식이 다르다는 점을 유념해야 한다. FaaS는 함수 단위를 클라우드에 배포하고 이를 얼마나 사용하는지를 측정해 비용을 지불하는 방식이며, BaaS는 백엔드 서비스로 CSP가 제공하는 API를 얼마나 사용했는지를 측정해 비용을 지불하는 방식이다. 비용은 함수가 실행되는 시간과 호출된 회수만큼만 지불한다. 서버를 띄워놓았다면 요청이 없어도 비용을 지불하겠지만 람다는 요청이 없으면 비용도 지불하지 않는다.

저작권자 © 아이티데일리 무단전재 및 재배포 금지