클라우드의 컴퓨팅의 진화

글의 목적: 클라우드 서비스의 진화를 통해 IaaS, PaaS, SaaS, FaaS가 어떠한 목적을 달성하기 위해 출현했는지 이해합니다.

 

클라우드 컴퓨팅의 가장 중요한 가치: 규모 확장에 대한 신속하고 효율적인 대응

확장의 기본단위, 그리고 추상화 방식의 변화에 따라 클라우드도 점차 진화하였다. 이러한 진화를 통해 새로운 애플리케이션이나 서비스를 시작하고, 또 서비스 확장에 따라 규모를 확장하는 것 또한 용이해졌다. "용이해 졌다"라는 의미는 컴퓨팅 기반 즉 인프라스트럭처 구축 및 운용과 관련된 전문적인 역량이 부족해도 규모 확장에 대한 요구사항을 충분히 커버할 수 있음을 의미한다. 개발과 운영이 뚜렷한 절차적 구분 없이 물 흐르듯이 이루어지는 DevOps가 본격화 된 것이다.

 

IaaS의 목적: 서버, 저장장치, 네트워크 등의 인프라 제공

 

초기 데이터센터에서의 대응방식은 하드웨어 서버를 증설한 후 확장이 필요한 서비스를 새로운 서버에 설치하여 서비스 요청을 여러 물리적 서버로 분산시키는 것이다. 이 후 서버 가상화 기술이 도입되며 규모의 확장은 물리 서버의 확장이 아니라 가상 서버의 확장으로 대응하게 된다. 즉, 별개의 운영체제가 돌아가는 각각의 가상서버를 필요에 따라 생성함으로써 하드웨어 설치에 따른 시간과 비용을 절약할 수 있게 되었다. IaaS(Infra as a Service)가 이에 해당하며, 클라우드 서비스에서 제공하는 가장 기본적인 서비스이다. 아직까지는 클라우드를 활용하는 많은 기업이 IaaS 를 주로 활용하고 있다.


SaaS의 목적: 사용자가 필요로 하는 소프트웨어를 인터넷상에서 이용하는 클라우드 서비스.

 

서비스형 소프트웨어(SaaS)는 소프트웨어 유통 방식의 근본적인 변화를 설명하는 개념으로, 공급 업체가 하나의 플랫폼을 이용해 다수의 고객에게 소프트웨어 서비스를 제공하고, 사용자는 이용한 만큼 돈을 지불한다. 전통적 소프트웨어 비즈니스 모델과 비교할 때 SaaS의 가장 큰 차이점은 제품 소유의 여부이다. 기존 기업용 소프트웨어는 기업 내부의 서버 등 장비에 저장해 이용한다는 점에서 고객이 소유권을 갖고 있었지만, SaaS는 소프트웨어가 제품이 아닌 서비스, 즉 빌려 쓰는 모델이라는 점에서 기존 라이선스 모델과는 확연히 구분된다. SaaS는 기업이 새로운 소프트웨어 기능을 구매하는 데 드는 비용을 대폭 줄여 주며, 일정 기간 동안 사용량 기반으로 비용을 지급함으로써 인프라 투자와 관리 부담을 피할 수 있게 한다. 대표적인 것으로 세일즈포스닷컴(Salesforce.com)을 들 수 있다.


PaaS의 목적: IaaS와 함께 사용자가 소프트웨어를 개발할 수 있는 클라우드 컴퓨팅 플랫폼 제공.

 

클라우드 서비스에 대한 수요와 기대가 높아지면서 단순 인프라를 제공하는 것을 넘어 애플리케이션에서 필요한 다양한 기능들을 클라우드가 제공하는 추세로 발전하였다. SaaS의 개념을 개발 플랫폼에도 확장한 방식이다. 인프라만 제공되는 경우, 클라우드 사용자가 개발환경, 데이터베이스, 웹서버 등과 같은 필수적인 기능들을 직접 구축/설치해야 했으나, 이젠 공통적으로 많이 쓰이는 기능들은 클라우드가 기본적으로 제공하여 그 위에 사용자가 필요로 하는 핵심 기능만 직접 구축하는 단계로 발전했다. 클라우드의 핵심 가치가 효율적인 인프라 제공에서 다양하고 편리한 플랫폼을 제공하는 것으로 진화하게 된 것이다. 이러한 서비스 형태가 PaaS(Platform as a Service)에 해당한다.

 

서비스 사업자는 서비스형 플랫폼(PaaS)을 통해 서비스 구성품인 컴파일 언어, 웹 프로그램, 제작 툴,데이터베이스  인터페이스, 과금 모듈 등을 제공하고, 개발자는 클라우드 플랫폼상에서 데이터베이스와 애플리케이션 서버, 파일 시스템과 관련한 솔루션 등 미들웨어까지 확장된 자원을 활용하여 새로운 애플리케이션을 만들어 사용할 수 있다.

 

아마존 AWS, 마이크로소프트 애저(Azure), 구글 클라우드 플랫폼과 같은 대형 퍼블릭 클라우드 서비스가 PaaS 를 지향하는 것으로 볼 수 있다. 구체적으로, 구글사의 앱 엔진(Google App Engine) 서비스가 대표적이다.


FaaS(Functions as a Service=Serverless)의 목적: 애플리케이션 개발자에게 함수(function) 단위의 소스코드를 포함하여 애플리케이션의 개발, 실행, 관리 등에 필요한 모든 환경을 갖춘 플랫폼을 제공하는 클라우드 컴퓨팅 서비스

 

IaaS와 PaaS를 거치면서 클라우드에서 제공하는 자원을 좀 더 편리하고 신속하게 활용할 수 있게 되었다. 새로운 서비스를 시작할 때 필요한 인프라 자원을 손쉽게 획득하고, 다양한 플랫폼 기능들을 활용한 서비스 구현도 용이해 졌다. 사용자 애플리케이션이 클라우드에서 실행되는 동안 소요되는 자원에 대한 사용비용만 클라우드 서비스 제공자에게 지불하면 된다.

 

한편, FaaS 플랫폼에서는 애플리케이션 개발에 필요한 프로그램, 네트워크, 스토리지 등 기반 환경을 모두 서비스하기 때문에, 개발자는 컴퓨터 서버(가상서버, 웹서버 등)를 따로 구축하거나 운영 체계(OS), 메모리 등 자원(resource)을 추가·관리할 필요가 없다. 그리고 소스 코드를 함수(function) 단위로 제공하여 개발자는 필요한 함수를 찾아 사용하면 된다.
즉, 개발자는 FaaS에 접속하여 서비스되는 함수를 이용하여 프로그램 코드만 작성하면 된다. 이에 FaaS를 서버가 없는 컴퓨팅(serverless computing)이라고도 한다.
FaaS 이용료는 플랫폼상에서만 제공되는 함수(function) 구동(호출) 횟수 또는 시간에 따라 청구된다.
아마존 AWS(Amazon Web Services) 람다(Lambda)에서 처음 FaaS를 제공하였고, 구글 클라우드 펑션(Google Cloud functions), 마이크로소프트 애저 펑션(MicrosoftAzure Functions) 등이 FaaS를 제공한다.

 

 

 

 

본 내용 출처:

클라우드 컴퓨팅 동향 및 금융산업에서의 시사점

https://www.digieco.co.kr/KTData/Board/FILE/PDF/%ED%81%B4%EB%9D%BC%EC%9A%B0%EB%93%9C%20%EC%BB%B4%ED%93%A8%ED%8C%85%20%EB%8F%99%ED%96%A5%20%EB%B0%8F%20%EA%B8%88%EC%9C%B5%EC%82%B0%EC%97%85%EC%97%90%EC%84%9C%EC%9D%98%20%EC%8B%9C%EC%82%AC%EC%A0%90202001081578460550894.pdf?

 

참고 자료:

TTA http://terms.tta.or.kr/main.do

 

TTA정보통신용어사전

한국정보통신기술협회(TTA)는 정보통신 기술 발전과 타 분야와의 기술 융합에 따라 무수히 생성되는 정보통신용어를 해설하고 표준화하여, 전문가뿐만 아니라 비전문가들도 올바르게 활용할 수 있도록 정보통신용어사전을 서비스하고 있습니다. PC 또는 스마트폰으로 웹에 직접 접속하시거나 모바일 앱 마켓에서 정보통신용어사전 앱을 내려 받아 이용하실 수 있습니다.

terms.tta.or.kr