서버리스 컴퓨팅(Serverless Computing)은 클라우드 서비스 제공자가 관리하고 온디맨드 방식으로 사용할 수 있는 서버에서 개발자가 코드를 구축하고 실행할 수 있도록 지원하는 클라우드 컴퓨팅 모델이다. 서버리스 컴퓨팅은 IaaS, PaaS, SaaS에 이어 클라우드컴퓨팅의 새로운 개념으로 등장했다. 공급업체는 소프트웨어 개발팀이 서버와 백엔드 인프라를 프로비저닝, 관리 및 업데이트하지 않고도 코드를 작성할 수 있게 지원한다. 클라우드 컴퓨팅 환경에서 자원관리를 자동화하고 명령어 도구의 지원을 바탕으로 물리적 개념인 서버 관리에서 완전히 독립할 수 있어 구현할 비즈니스 로직에 더 집중할 수 있다. 이는 컴퓨팅 자원을 확보해야 하는 부담에서 벗어나, 필요한 시기에 필요한 코드를 적절히 실행시킨다는 장점이 있다. 이때, 서버리스 컴퓨팅이 서버가 없는 것이 아닌, 개발자의 서버 걱정을 없애주는 서비스라는 점을 혼동하면 안 된다.
서버리스 컴퓨팅의 장점은 크게 비용 절감의 효과, 시장 출시 시간 단축 및 신속한 배포, 확장성 및 유연성 확장 등이 있다. 서버리스 컴퓨팅은 클라우드컴퓨팅 사용 명세서를 매우 세분화할 수 있는 특성이있다. 기존의 개발 환경용 인프라 프로비저닝 방법은 초과 프로비저닝과 자산 활용률 저하가 우려되는 단점이 있었다. 반면 서버리스 컴퓨팅은 소프트웨어 개발팀이 실제 사용하는 필요한 서비스에 대해서만 비용을 지불할 수 있는 종량제 모델이기에, 꼭 필요한 코드만 실행한다는 점에서 뛰어난 확장성을 갖고, 많은 상당히 비용을 절감할 수 있다. 서버리스 아키텐처는 개발 환경을 매우 빠르게 프로비저닝해 시장 출시 속도를 단축하고, 개발자는 온프레미스 인프라 설치 단계를 기다리지 않고 서버리스 컴퓨팅 리소스에 접근할 수 있다. 또한 이는 AI 적용을 위한 고가의 컴퓨팅 자원을 사용할 때 더욱 유용하게 활용된다.
반면, 서버리스 컴퓨팅에는 벤더 종속성, 실시간 처리 한계, 디버깅의 어려움 등의 단점도 존재한다. 먼저 IT 스택의 기본 인프라 제어를 포기하면 기업이 벤더사에 종속될 확률이 높아지게 되고, 공급업체를 변경하는 데 많은 비용과 절차의 어려움을 수반하게 됩니다. 확장 가능한 서버리스 플랫폼이 처음으로 함수를 처리할 때, 실시간 적용이 아닌 지연 시간이 발생할 가능성이 있으며, 서버리스 함수를 디버깅하고 수정하는데 필요한 데이터 수집이 어려워진다.
2014년에 출시된 Amazon Web Services(AWS) Lambda는 서버리스 아키텍처를 최전선으로 가져온 선구적인 서비스이다. 이 모델은 리소스가 실제 사용량 에 따라 자동으로 할당되고 요금이 청구되므로 전례 없는 확장성과 비용 효율성을 제공했고, 이후로 서버리스 아키텍처는 Microsoft Azure 및 Google Cloud Platform과 같은 주요 클라우드 제공업체(CSP)의 지원을 받아 클라우드 생태계에 빠르게 통합되었다.
서버리스 컴퓨팅은 서비스 관리 및 배포의 용이성을 바탕으로 그 수요가 늘어나는 추세이다. 이를 증명하듯 구글(Google)의 구글의 Google Cloud Functions, 아마존(Amazon)의 Lambda, 마이크로 소프트(Microsoft)의 Azure Functions는 자사 클라우드 인프라를 활용해 서버리스 컴퓨팅을 제공하는 예시이다. 또한 오픈소스 측면에서도 서버리스 컴퓨팅 도입을 위한 환경을 마련하기 위한 기반을 마련하고 있다.
1) 무상태 애플리케이션 개발
서버리스 컴퓨팅은 다양한 애플리케이션 및 시스템에 특히 유용하다. 무상태 애플리케이션 개발에서는 클라이언트 데이터를 저장하지 않는 비동기식 애플리케이션에 사용된다. 서버리스 어플리케이션의 예시로 챗봇, 작업 스케줄러, IoT 애플리케이션 등이 있다. 코카콜라(Coca-Cola)는 AWS Lambda와 같은 서버리스 빌딩 블록을 사용하여, 터치리스 음료 디스펜서용 모바일 음료 따르기 앱을 단 100일 만에 개발했고, 1만 3000달러에서 4500달러로 비용을 절감할 수 있었다.
2) 배치 처리
배치 처리 애플리케이션은 백업, 필터링, 정렬과 같은 대규모의 반복적인 데이터 작업을 주기적으로 수행한다. 이는 사용하지 않을 때는 비용이 발생하지 않고, 필요할 때만 대규모로 확장해 사용하는 서버리스 환경에 적합한 사례이다. Liberty Mutual은 AWS를 사용해 글로벌 사업부들을 Financial Central Services(FCS)라는 중앙 집중 시스템으로 통합했다. 또한 AWS Step Functions를 사용해 매달 말에 한 번 실행으로 1억 건의 트랜잭션을 처리할 수 있는 서버리스 애플리케이션을 구현했다.
3) 실시간 데이터 분석
서버리스 컴퓨팅은 실시간 스트리밍 엔진에서 고객 응답 성능을 개선하는 데 적합하며, 서버리스 앱은 짧은 지연 시간과 높은 대역폭의 상황에서 수십만 개의 소스에서 스트리밍되는 방대한 데이터를 처리할 수 있다. Genentech는 임상 데이터 분석에 AWS 서버리스 기능을 사용해 작업 속도를 압도적으로 혁신했다.
4) 비즈니스 프로세스 자동화
서버리스 접근 방식을 통해 많은 시간이 소요되고 번거로운 비즈니스 프로세스를 자동화할 수 있다. 서버 관리에서 자유로워진 개발자는 비즈니스 로직을 애플리케이션 코드 변환에 집중하며 비즈니스 프로세스를 자동화한다. Taco Bell은 AWS를 사용하여 비즈니스 로직과 데이터 변환을 수행하는 서버리스 애플리케이션을 만들어 Taco Bell의 배달 파트너에게 실시간 메뉴 및 레스토랑 정보를 제공한다.
먼저, 서버리스 컴퓨팅은 클라우드 컴퓨팅의 장점을 활용하는 기능을 갖춘 클라우드 네이티브 애플리케이션 개발을 확산시킬 것이다. 클라우드 네이티브 어플리케이션은 클라우드 아키텍처에서 실행되도록 설계된 소프트웨어 어플리케이션이다. 클라우드 네이티브 애플리케이션은 일반적으로 API로 연결된 컨테이너와 마이크로서비스를 사용해 설계되고, 동적으로 조정되어 리소스 관리를 처리하여 워크로드를 분산한다. 또한 미래에 기업은 IT 운영 비용을 크게 절감하는 동시에 민첩성을 향상시킬 수 있고, 개발자 역할 및 기업 IT 조직에도 큰 변화를 가져올 것이다.
참고자료 출처
https://yozm.wishket.com/magazine/detail/2168/
https://www.akamai.com/ko/glossary/what-is-serverless-computing
https://aws.amazon.com/ko/what-is/serverless-computing/
작성자: ITS 25기 이윤지