
상명대학교 / 서광규 교수
클라우드 컴퓨팅은 대규모 다중 테넌트 데이터 센터에서 분할된 가상 서버 및 네트워크를 사용하여 컴퓨팅 인프라를 보다 쉽게 ??구성하고 관리할 수 있도록 하여 시스템 관리를 단순화하였다. 클라우드 인프라 구성의 다음 단계에서는 클라우드 개발을 단순화하여 클라우드 소프트웨어를 더 쉽게 작성할 수 있도록 애플리케이션 빌더를 위한 프로그래밍 추상화를 제공하여 서버를 숨긴다. 간단히 말해서, 처음 단계의 목표는 시스템 관리자였고, 다음 단계는 프로그래머이다. 이러한 변경으로 인해 클라우드 공급자는 애플리케이션을 잘 실행하는 데 필요한 많은 운영 책임을 떠맡아야 한다. 본 원고에서는 오늘날의 서버리스에 대한 이해, 서버리스 클라우드 경제 그리고 서버리스 컴퓨팅이 여전히 실패할 수 있는 이유에 대하여 기술하기로 한다.
1. 오늘날의 서버리스에 대한 이해
서버에서 애플리케이션으로의 초점 변경을 강조하기 위해 이 새로운 단계는 서버리스 컴퓨팅으로 알려지게 되었지만 원격 서버는 여전히 이를 지원하는 보이지 않는 기반이다. 여기에서는 이와 같은 전통적인 1단계를 서버풀 컴퓨팅이라고 한다.
그림 1은 서버풀과 서버리스의 비유를 보여준다. 원격 회의에 참석하려면 자동차를 렌트하거나 택시를 타고 공항에서 호텔까지 이동한다. 자동차 렌탈은 서버풀 컴퓨팅과 같으며, 줄을 서서 계약을 체결하고, 얼마를 사용하든 자동차를 전체 숙박기간동안 예약하고, 직접 차를 운전하고, 호텔로 이동하고, 주차 요금을 지불하고, 채워야 한다. 반환하기 전에 연료와 함께. 택시는 서버리스 컴퓨팅과 같으며 호텔 이름을 입력하고 요금을 지불하기만 하면 된다. 택시 서비스는 길을 찾고, 요금을 부과하고, 주유소를 채우는 훈련된 운전자를 제공한다. 택시는 호텔까지 차를 운전하는 방법을 알 필요가 없기 때문에 교통을 단순화한다. 게다가 택시는 렌트카보다 활용도가 높아 택시회사의 비용이 절감된다. 회의의 길이, 렌트카 비용, 주차 비용, 휘발유 비용 등에 따라 택시가 더 쉬울 뿐만 아니라 더 저렴할 수도 있다.
<그림 1. 공항에서 탑승하는 것과 비교한 클라우드 컴퓨팅 접근 방식: 자동차를 빌리는 것과 같은 서버풀(Serverful) 및 택시를 타는 것과 같은 서버리스(Serverless)>
서버리스 컴퓨팅에서 프로그래머는 클라우드 공급자가 제공하는 고급 추상화를 사용하여 응용 프로그램을 만든다. 예를 들어, 선택한 언어(종종 JavaScript 또는 Python)로 기능 스타일의 "상태 비저장" 프로그래밍을 사용하여 클라우드 기능을 정의한 다음 웹 요청에 대한 응답으로 또는 트리거 이벤트에 대해 기능 실행 방법을 지정할 수 있다 . 또한 서버리스 개체 저장소, 메시지 대기열, 키-값 저장소 데이터베이스, 모바일 클라이언트 데이터 동기화 등을 사용할 수 있으며, 집합적으로 BaaS(Backend as a Service )라고 하는 서비스 제공 그룹을 사용할 수 있다. 관리형 클라우드 기능 서비스는 FaaS(Function as a Service )라고도 하며, 관리형 클라우드 기능 서비스는 FaaS 및 서버리스 클라우드 컴퓨팅(Serverless Cloud Computing)이라고도 한다(그림 2 참조).
<그림 2. 서버리스 대 서버풀 클라우드 컴퓨팅: 서버리스는 애플리케이션과 기본 서버 간의 추상화를 제공>
서버리스의 주요 혁신은 본질적으로 복잡한 프로그래밍 및 운영 모델을 가진 서버를 숨기는 것이다. 서버 사용자는 안정성을 위한 이중화 생성, 부하 변화에 따른 용량 조정, 보안을 위한 시스템 업그레이드 등을 수행해야 한다. 이것은 종종 분산 시스템의 실패 모드와 성능에 대한 어려운 추론을 요구한다. 예를 들어 도구는 자동 확장 의 한 형태인 경험적으로 용량을 조정하여 도움이 될 수 있지만 이 역시 세부 구성과 지속적인 모니터링이 필요하다. 대조적으로, 서버리스는 이러한 책임과 기타 책임을 클라우드 제공자에게 넘긴다.
서버리스 컴퓨팅의 세 가지 필수 특성은 다음과 같다.
- 서버와 프로그래밍 및 운영의 복잡성을 숨기는 추상화를 제공한다.
- 예약 기반 모델 대신 사용한 만큼 지불하는 비용 모델을 제공하므로 유휴 리소스에 대한 요금이 부과되지 않는다(그림 3 참조).
- 제로에서 거의 무한에 이르기까지 수요에 밀접하게 일치하도록 리소스를 신속하고 무제한으로 자동 확장한다.
<그림 3. 서버리스 대 서버풀 클라우드 컴퓨팅: 서버리스 사용자는 유휴 예약 용량이 아닌 소비된 리소스에 대해서만 비용을 지불>
오늘날 여러 서버리스 환경에서 각각 특정 사용 사례에 맞는 임의의 코드를 실행할 수 있다. 예를 들어 Google Cloud Dataflow 및 AWS Glue를 사용하면 프로그래머가 데이터 처리 파이프라인의 한 단계로 임의의 코드를 실행할 수 있으며 Google App Engine은 웹 애플리케이션 구축을 위한 서버리스 환경으로 생각할 수 있다.
이러한 많은 서버리스 제품에는 서버리스 컴퓨팅의 세 가지 필수 특성, 즉 서버를 숨기는 추상화, 사용한 만큼만 지불하는 비용 모델 및 우수한 자동 크기 조정이 있다. 종합하면 계속 증가하는 응용 분야를 충족하기 위해 결합될 수 있는 일련의 대안을 제공한다.
2. 서버리스 클라우드 경제
오늘날의 클라우드는 기술적인 진보만큼이나 비즈니스 고려 사항에 의해 형성되었으며 미래도 마찬가지이다. 클라우드 고객은 서버 관리 또는 분산 시스템의 문제가 아니라 해당 도메인 또는 비즈니스 고유의 문제 해결에 계속 집중할 수 있기 때문에 서버리스 컴퓨팅을 선택한다.
서버리스 컴퓨팅은 리소스의 단가가 더 높기 때문에 더 비싸게 보일 수 있지만 고객은 사용 중인 리소스에 대해서만 비용을 지불하고 클라우드 공급자는 유휴 리소스 비용을 부담한다. 실제로 고객은 애플리케이션을 서버리스로 이식할 때 상당한 비용 절감을 실현한다. 클라우드 공급자는 고객이 가변적이고 예측할 수 없는 리소스 요구 사항을 충족하도록 지원함으로써 수익 기회를 얻는다. 이는 고객이 자체 전용 리소스를 사용하여 수행할 수 있는 것보다 공유 리소스 풀에서 더 효율적으로 수행할 수 있는 것이다. 서버리스 컴퓨팅은 또한 BaaS 제품이 전통적으로 데이터베이스와 같은 고수익 소프트웨어 제품이 제공하는 제품 범주를 나타내기 때문에 클라우드 제공업체가 수익을 개선할 수 있는 기회를 제공한다.
서버리스 종량제 모델은 클라우드 제공업체의 혁신 인센티브에 긍정적인 영향을 미친다. 서버리스 이전에는 자동 크기 조정 클라우드 서비스가 VM을 자동으로 프로비저닝한다. 즉, 리소스를 예약하지만 고객은 이 용량이 유휴 상태로 남아 있더라도 비용을 지불하게 된다. 서버리스를 사용하는 경우 클라우드 공급자는 자동 크기 조정을 하고 효율적인 리소스 할당을 보장하기 위한 인센티브를 제공하는 유휴 리소스에 대해 비용을 지불한다. 마찬가지로 클라우드 공급자가 운영 체제 및 언어 런타임을 포함하여 더 많은 애플리케이션 스택에 대한 직접적인 제어를 가정함에 따라 서버리스 모델은 모든 수준에서 효율성에 대한 투자를 장려한다.
더 생산적인 프로그래머, 고객을 위한 더 낮은 비용, 공급자를 위한 더 큰 이익, 개선된 혁신은 모두 서버리스 채택에 유리한 조건을 만든다. 그러나 일부 클라우드 고객은 클라우드 공급자와 가격을 협상할 때 협상력이 감소하는 것을 두려워하여 공급업체 종속성에 대한 우려를 제기했다. 서버풀 VM 추상화는 주로 Linux 운영 체제 및 x86 명령 집합으로 인해 표준화되었지만 각 공급자의 서버리스 클라우드 기능과 BaaS API는 분명하고 미묘한 방식으로 다르다. 그 결과 발생하는 전환 비용은 가장 크고 가장 확립된 클라우드 제공업체에 이익이 되며 사실상 표준화에 저항하는 복잡한 독점 API를 홍보할 인센티브를 제공한다. 소규모 클라우드 제공업체, 오픈 소스 커뮤니티 또는 학계에서 도입한 단순하고 표준화된 추상화는 서버리스 채택에 가장 두드러진 남아 있는 경제적 장애물을 제거할 것이다.
<그림 4. 서버리스의 잠재적 미래 방향>
3. 서버리스 컴퓨팅이 여전히 실패할 수 있는 이유
서버리스 컴퓨팅이 성장하여 클라우드 프로그래밍의 기본이 될 수 있지만, 서버리스 컴퓨팅이 그 우위를 유지하는 몇 가지 시나리오도 상상할 수 있다.
첫째, 서버풀 컴퓨팅은 느리기는 하지만 지속적으로 개선되는 움직이는 목표이다. 시간 단위로 청구되었던 Cloud VM은 이제 최소 1분 단위로 청구되며 그 이후에는 초 단위로 청구된다. 컨테이너 및 VM 오케스트레이션 도구(예: Kubernetes, Terraform)는 복잡한 배포를 간소화하고 백업 수행과 같은 관리 작업을 점점 더 자동화하는 데 도움이 된다. 프로그래머는 애플리케이션을 구축할 때 성숙한 소프트웨어 에코시스템과 강력한 레거시 호환성에 의존할 수 있으며 기업에는 이미 서버 기반 클라우드 배포에 숙련된 팀이 있다. 또한 서버 하드웨어는 계속해서 커지고 강력해지며 CPU, 메모리 및 가속기 성능을 밀접하게 결합된 환경에서 함께 제공하여 일부 응용 프로그램에 이점을 제공한다.
둘째, 오늘날의 성공적인 서버리스 제품은 응용 프로그램별 범주에 속하며 대상이 좁지만 범용 서버리스 추상화는 서버풀 컴퓨팅(범용이기도 함)을 대체할 가능성이 더 높다. 그러나 범용 서버리스 컴퓨팅은 장애물에 직면해 있다. 우리가 상상하는 기술은 아직 존재하지 않으며 클라우드 공급자에게는 수익성이 덜한 비즈니스일 수 있다.
마지막으로, 이러한 목표와 비전이 실현되더라도 "서버리스 컴퓨팅"이라는 브랜드는 살아남지 못할 수도 있다. 오래된 제품을 다음 신제품으로 지정하려는 유혹이 강하고 시장에서 혼란을 야기할 수 있다. Google App Engine과 같은 제품이 서버리스라는 이름과 함께 등장했지만, 용어가 희석된다면 아마도 범용 서버리스 컴퓨팅이 다른 이름으로 등장할 것이다.
4. 결언
택시 호출이 자동차 렌트보다 운송을 단순화하는 것과 유사하게, 서버리스 컴퓨팅은 프로그래머가 서버와 서버에 수반되는 복잡한 모든 것에 대해 생각하는 것을 덜어준다. 동일한 명명 규칙에 따라 승객이 승차하기 위해 자동차를 조작하는 방법을 알 필요가 없다는 점에서 택시 서비스를 자동차 없는 운송으로 분류할 수 있다. 서버리스는 클라우드의 추상화 수준을 높이고 사용한 만큼만 지불하는 가격을 채택하며 0에서 거의 무한대의 리소스까지 빠르게 자동 확장된다.
서버리스 컴퓨팅은 여전히 ??진화하고 있으며 추상화를 정의하고 구현하는 데 있어 많은 미해결 질문이 남아 있으나 FaaS 및 BaaS 범주는 범용 서버리스 컴퓨팅 또는 응용 프로그램별 서버리스 컴퓨팅으로 분류하는 것보다 광범위한 추상화로 자리를 바꿀 것이며 새로운 범용 서버리스 추상화가 거의 모든 사용 사례를 지원할 것으로 기대된다. 그들은 상태 관리와 최적화(사용자 제안 또는 자동 추론)를 지원하여 서버 컴퓨팅과 비슷하거나 더 나은 효율성을 달성할 것이다. 서버리스가 발전하고 인기가 높아짐에 따라 소규모 또는 대규모 애플리케이션에 관계없이 서버리스 컴퓨팅을 사용하면 비용이 더 이상 들지 않으며 아마도 훨씬 더 낮아질 것이다. 머신 러닝은 서버리스 구현에서 중요한 역할을 하여 클라우드 제공업체가 간단한 프로그래밍 인터페이스를 제공하면서 대규모 분산 시스템의 실행을 최적화할 수 있도록 한다. 이러한 방향으로 지속적으로 진화한다면 서버리스 컴퓨팅이 클라우드 시대의 기본 컴퓨팅 패러다임이 될 수도 있을 것이다.
*이 원고는 Johann Schleier-Smith et al., What serverless computing is and should become: the next phase of cloud computing, Communications of the ACM, Volume 64, Number 5 (2021), Pages 76-84를 참조한 것임
참 고 문 헌
- Agache, A., et al. Firecracker: Lightweight virtualization for serverless applications. In Proceedings of the 17th USENIX Sym. Networked Systems Design and Implementation (2020), 419?434.
- Brazeal, F. The business case for serverless, 2018; https://www.trek10.com/blog/business-case-for-serverless
- Castro, P., et al. The rise of serverless computing. Commun. ACM 66, 12 (Dec. 2019), 44?54.
- Hellerstein, J., et al. Serverless computing: One step forward, two steps back. CIDR, 2019.
- Irwin, D. and Urgaonkar, B. Research Challenges at the Intersection of Cloud Computing and Economics. National Science Foundation, 2018.
- Klimovic, A., et al. Pocket: Elastic ephemeral storage for serverless analytics. In Proceedings of the 13th USENIX Symp. Operating Systems Design and Implementation (2018), 427?444.
- Oakes, E., et al. SOCK: Rapid task provisioning with serverless-optimized containers. In 2018 USENIX Annual Technical Conf. (2018), 57?70.
- Sreekanti, V., et al. Cloudburst: Stateful functions-as-a-service. Proc. VLDB 13, 11 (2020), 2438?2452.
저작권 정책
K-ICT 클라우드혁신센터의 저작물인 『블록체인 기술을 적용한 클라우드 컴퓨팅 보안』은 K-ICT 클라우드혁신센터에서 상명대학교 서광규 교수에게 집필 자문을 받아 발행한 전문정보 브리프로, K-ICT 클라우드혁신센터의?저작권정책에 따라 이용할 수 있습니다.
다만 사진, 이미지, 인용자료 등 제3자에게 저작권이 있는 경우 원저작권자가 정한 바에 따릅니다.