본문 바로가기
IT, 정보통신

서버리스 컴퓨팅, serverless computing

by newly everyday 2022. 10. 8.

서버리스 컴퓨팅, serverless computing

클라우드 서비스 제공자가 하드웨어, 소프트웨어 자원 뿐 아니라 애플리케이션 구동에 필요한 주변 응용 소프트웨어 기능을 가상화로 제공하여, 사용자는 애플리케이션 핵심 기능만 개발하면 되는 클라우드 서비스.

클라우드 컴퓨팅에서 사용자는 정보 기술(IT) 자원 - 스토리지, 서버, 네트워크 등 - 을 필요한 만큼 클라우드 서비스 제공자로부터 가상화된 서비스로 빌려서 사용할 수 있다. 서비스 부하에 따라서 실시간으로 빌려 사용하던 자원을 확장하거나 축소할 수 있고 일반적으로 사용한 만큼 비용을 지불한다.

정보 기술(IT) 자원의 관리나 유지 보수는 사용자 대신 클라우드 서비스 제공자가 책임진다. 하지만 이러한 클라우드 서비스에서도 사용자는 핵심 기능을 구동시키는 서버 개발, 운영, 관리를 해야 하고, 이를 위해서 내부 인프라스트럭처나 플랫폼 등에 대한 관리를 해야 할 수도 있다. 서버리스 컴퓨팅은 이러한 핵심 기능 구동에 필요한 주변 응용 소프트웨어 기능조차 클라우드 서비스 제공자가 제공하는 형태의 서비스를 말한다. 사용자는 핵심 기능만을 함수(function) 형태로 개발하면 되기 때문에 마치 서버가 없는 것처럼 서비스를 이용할 수 있다.
참고로 클라우드 서비스 제공자가 내부적으로 인프라와 플랫폼을 운영하므로 실제 서버는 사용된다. 서버리스(serverless)는 사용자가 서버를 개발하거나 관리할 필요가 없다는 것을 강조한 표현이다.

서비스형 플랫폼(PaaS: Platform as a Service)에서는 플랫폼까지 클라우드 서비스 제공자가 제공하지만, 얼마나 많은 컴퓨터를 이용할지 컴퓨터의 하드웨어는 어떤 사양을 이용할지 부하에 따라 플랫폼을 어떻게 확장하거나 축소할지 등에 대한 서버의 설정과 관리는 사용자가 지정하고 운영해야 한다. 하지만 서버리스 컴퓨팅에서는 이러한 사항을 클라우드 서비스 제공자가 책임지고 제공한다. 사용자는 정말로 최소한의 기능만을 구현하여 서비스할 수 있다. 서비스형 인프라스트럭쳐(IaaS), 서비스형 플랫폼(PaaS)과 비교하여 상대적으로 운영 비용은 가장 비싸지만, 운영 인력과 시간 등을 절약할 수 있고 개발 기간을 단축할 수 있다. 반면, 서버나 플랫폼에 대한 직접적인 제어가 불가능하고 클라우드 서비스 제공자가 제공하는 기능 내에서만 서비스를 만들어야 하는 제약이 있다. 또한 클라우드 서비스 제공자가 제공하는 환경 위에서만 동작할 수 있으므로 응답시간이나 최대 메모리 사용량 등에 제한이 있을 수 있다.
서버리스 컴퓨팅에서는 서비스형 플랫폼(PaaS: Platform as a Service) 보다 더 적은 부분의 소프트웨어 개발만 사용자가 담당하고 나머지 모든 부분을 클라우드 서비스 제공자로부터 사용료를 내고 제공받기 때문에 응용 소프트웨어의 개발 기간이나 인력을 절약할 수 있다.
서버리스 컴퓨팅의 대표적인 예로 아마존웹서비스(AWS)의 람다(Lambda), 구글의 구글 클라우드 펑션(Google Cloud Functions), 마이크로소프트의 애저 펑션(Azure functions) 등이 있다.

* 관련 표준
- ISO/IEC TS 23167, Information technology  Cloud computing — Common technologies and techniques
 

댓글