“개발자를 위한 풀 서비스 클라우드” PaaS의 이해

InfoWorld
클라우드를 통해 제공하는 애플리케이션 개발 플랫폼인 PaaS는 개발자가 코딩에만 집중할 수 있도록 더 큰 유연성과 더 적은 오버헤드를 가져다준다.

PaaS(Platform as a Service)는 클라우드 컴퓨팅의 한 종류로, 서비스 업체가 고객에게 플랫폼을 제공한다. 고객은 이 플랫폼을 이용해 비즈니스 애플리케이션을 개발하고 실행하고 관리하며, 전형적인 소프트웨어 개발 프로세스에 필요한 인프라를 구축하고 관리할 필요가 없다.
 
ⓒ GettyImagesBank

PaaS 아키텍처는 개발자나 다른 사용자의 눈에는 보이지 않는 기저의 인프라를 제공하기 때문에 모델은 서버리스 컴퓨팅이나 FaaS(Function as a Service)의 개념과 비슷하다. 클라우드 서비스 업체가 서버를 프로비저닝하고 실행하며, 자원의 할당을 관리한다.

FaaS는 서버리스 컴퓨팅의 한 형태로, 기업이 별도의 이벤트 중심 기능을 개발하고 실행할 수 있다. 역시 애플리케이션개발과 실행에 필요한 복잡한 인프라의 구축과 관리가 필요없다.

PaaS와 서버리스 컴퓨팅은 보통 실제로 소비되는 컴퓨트와 스토리지, 네트워크 자원에만 과금한다. FaaS의 경우는 좀 더 극단적으로, 기능이 실행될 때에만 과금하기 때문에 간헐적인 작업에는 FaaS가 더 자연스러운 선택이다.
 

모두가 클라우드 패밀리

IaaS(Infrastructure as a Service)나 SaaS(Software as a Service)와 마찬가지로 PaaS 역시 클라우드 서비스 업체가 호스팅하는 인프라를 통해 제공된다. 사용자는 보통 웹 브라우저를 통해 PaaS 서비스에 액세스한다.

PaaS는 퍼블릭 클라우드로도 프라이빗 클라우드로도, 아니면 하이브리드 클라우드로도 제공할 수 있다. 퍼블릭 클라우드 PaaS를 이용하면 고객은 소프트웨어 배치만 제어하고 애플리케이션 호스팅에 필요한 나머지 주요 IT 구성요소, 즉 서버와 스토리지 시스템, 네트워크, 운영체제, 데이터베이스는 모두 클라우드 서비스 업체가 맡는다.

프라이빗 클라우드 환경에서 PaaS는 고객 파이어월 내, 즉 기업의 온프레미스 데이터센터 내에서 소프트웨어나 어플라이언스로 제공된다. 하이브리드 클라우드 환경의 PaaS는 이 두 가지 클라우드 서비스가 혼합된 방식으로 제공된다.

PaaS는 소프트웨어 개발에 필요한 기업의 전체 IT 인프라를 대체하기보다는 애플리케이션 호스팅이나 자바 개발과 같은 핵심 서비스를 제공한다. 일부 PaaS 서비스에는 애플리케이션 설계나 개발, 테스트, 배치도 포함되어 있다. PaaS 서비스는 또한 웹 서비스 통합이나 개발팀 협업, 데이터베이스 통합, 정보 보안 등을 함께 제공한다.

다른 클라우드 서비스도 마찬가지로 고객은 사용량을 기반으로 비용을 지급하며, 일부 서비스 업체는 단순한 월간 요금제를 운용하는 경우도 있다.
 

PaaS의 이점

PaaS의 가장 큰 이점 중 하나는 기업이 서버나 데이터베이스 같은 인프라를 새로 구축하고 유지하는 데 돈과 시간을 들이지 않고 새로운 애플리케이션을 개발하고 배치할 환경을 얻을 수 있다는 것이다. 이는 애플리케이션의 신속한 개발과 전달로 이어져 경쟁력을 얻고자 하거나 제품을 신속하게 시장에 출시하고자 하는 기업에 막대한 이점을 가져다준다. 

PaaS는 또한 지원 인프라를 구축할 필요가 없기 때문에 새로운 언어나 운영체제, 데이터베이스, 기타 개발 기술을 신속하게 테스트할 수 있다. 툴을 업그레이드하기도 더 쉽고 빠르다.

기업 개발자가 애플리케이션에서 클라우드 기법을 사용할 수 있다는 부가적인 이점도 있다. 최신 애플리케이션 원칙을 받아들여 추후 IaaS 플랫폼의 이점을 좀 더 잘 활용할 수 있다.

PaaS를 사용하는 기업은 자사의 애플리케이션과 데이터를 관리할 수 있기 때문에 클라우드 인프라나 애플리케이션을 사용할 때 종종 불거지는 통제권 상실 문제도 일어나지 않는다.
 

PaaS 애플리케이션

애플리케이션 개발과 테스트, 배치를 위한 호스팅 환경을 제공하는 것은 PaaS의 가장 일반적인 용도이다. 하지만 기업이 PaaS를 이용하는 유일한 목적은 아니다. 가트너는 PaaS의 사용례를 다음과 같이 제시한다.

API 개발 및 관리. 기업의 API와 마이크로서비스의 개발 및 구동, 관리, 보안에 PaaS를 이용할 수 있다. 엔드 투 엔드 API 관리는 물론, 새로운 API나 기존 API를 위한 새 인터페이스 제작도 포함되어 있다.
비즈니스 분석/인텔리전스. PaaS를 통해 제공되는 툴은 기업이 자사 데이터를 분석해 비즈니스 인사이트와 행동 패턴을 찾을 수 있도록 해준다. 기업은 좀 더 나은 의사결정, 좀 더 정확한 미래 이벤트 예측이 가능하다.
BPM. 기업은 PaaS를 서비스 방식으로 제공되는 BPM 플랫폼으로 이용할 수 있다. BPM 스위트는 데이터부터 비즈니스 규칙, SLA 등 프로세스 관리에 필요한 IT 구성요소를 통합한다.
커뮤니케이션. PaaS는 또한 커뮤니케이션 플랫폼을 위한 전달 메커니즘으로 사용할 수 있다. 개발자는 음성이나 비디오, 메시징 등의 커뮤니케이션 기능을 애플리케이션에 추가할 수 있다.
데이터베이스. PaaS 서비스 업체는 기업의 데이터베이스를 설정하고 관리하는 등의 데이터베이스 관련 서비스를 제공할 수 있다. 포레스터 리서치는 데이터베이스 PaaS를 “온디맨드 방식의 확장 가능한 셀프서비스 데이터베이스 플랫폼으로, 데이터베이스의 프로비저닝과 관리를 자동화하고 개발자는 물론 비기술 인력도 사용할 수 있다”고 정의했다.
IoT. IoT는 조만간 PaaS 활용에서 큰 비중을 차지할 것으로 보인다. IoT 배치에 사용하는 다양한 범위의 애플리케이션 환경과 프로그래밍 언어, 툴을 지원하기 때문이다.
MDM(Master Data Management). 기업이 보유한 핵심 비즈니스 데이터를 관리하는 프로세스와 거버넌스, 정책, 표준, 툴에 관한 것으로, 데이터에 대한 단일 지점 레퍼런스를 제공한다. 이런 데이터에는 고객 트랜잭션에 대한 정보나 데이터 분석부터 의사결정을 지원하는 정보와 같은 레퍼런스 데이터가 포함되어 있다.
 

PaaS 기술

PaaS는 다양한 기반 클라우드 인프라 구성요소로 이루어지는데, 서버부터 네트워킹 장비, 운영체제, 스토리지 서비스, 미들웨어, 데이터베이스 등이다. 이들 기술은 모두 서비스 업체가 보유하고 운영하고 구성하고 유지보수한다. 이런 완전 관리형 인프라 서비스는 고객의 IT 관리 부담을 덜어줄 뿐만 아니라 재무적인 관점에서도 매력적인 요소를 제시한다. 즉 필요하지만 활용도가 높지는 않은 IT 구성요소에 대한 투자를 피할 수 있다.

PaaS에는 또한 개발 툴이나 프로그래밍 언어, 라이브러리, 데이터베이스 관리 시스템, 기타 툴 등을 클라우드 서비스 업체로부터 제공받는다.
 

대표적인 PaaS 서비스 

선도적인 PaaS 서비스 업체로는 AWS와 마이크로소프트, 구글 IBM, 세일즈포스닷컴, 레드햇, 피보탈, 멘딕스, 오라클, 엔진 야드, 헤로쿠 등을 들 수 있다. 널리 사용되는 개발언어와 라이브러리, 컨테이너, 관련 툴은 이들 주요 PaaS 서비스 업체의 클라우드 대부분에서 사용할 수 있다.

아마존과 마이크로소프트, 구글은 특히 컴퓨트와 스토리지부터 데이터베이스, 분석, 네트워킹, 모바일 백엔드 , 개발자 툴, 관리 툴, 보안까지 클라우드 기반 서비스를 이른바 ‘풀세트’로 제공한다. 이들 서비스의 대부분은 완전한 매니지드 서비스로, 이들 퍼블릭 클라우드에서 PaaS 서비스를 보완한다.

많은 PaaS 서비스 업체가 선도적인 소프트웨어 개발 툴 업체라는 것은 당연한 일이다. 가트너는 현재 약 200여 곳의 PaaS 서비스 업체가 있는 것으로 추정한다.

주요 PaaS 서비스의 특징을 살펴보자.

AWS 일랙스틱 빈스토크(Elastic Beanstalk). 기업은 일래스틱 빈스토크를 이용해 애플리케이션을 구동하는 인프라에 대해 학습할 필요없이 AWS 클라우드에서 애플리케이션을 신속하게 배치하고 관리할 수 있다. 일래스틱 빈스토크는 용량 프로비저닝, 로드 밸런싱, 확장, 애플리케이션 상태 모니터링의 세부 사항을 자동으로 처리한다.

AWS 람다(Lamda). 이벤트 주도형 서버리스 컴퓨팅 플랫폼으로, 기업의 코드를 이벤트에 대응해 실행하고, 코드에 필요한 컴퓨팅 자원을 자동으로 관리한다. AWS 람다는 FaaS 개념을 활성화시킨 주역으로, FaaS란 용어보다 먼저 생겨났다.

구글 앱 엔진(App Engine). 구글이 관리하는 데이터센터에서 웹 애플리케이션을 개발하고 호스팅할 수 있는 PaaS 서비스이다. 애플리케이션은 샌드박스화되어 실행되며, 여러 대의 서버에 걸쳐 자동으로 확장된다.

구글 클라우드 펑션(Cloud Functions). 구글의 FaaS 서비스로, 개발자가 클라우드에서 코드를 쉽게 실행하고 확장할 수 있으며, 이벤트 주도형 서버리스 애플리케이션을 구축할 수 있다.

애저 앱 서비스(Azure App Service). 마이크로소프트의 애저 앱 서비스는 완전 관리형 PaaS로, 애저 웹 사이트와 모바일 서비스, 비즈토크 서비스를 하나의 서비스로 통합했다. 또한 온프레미스와 클라우드 시스템 간의 통합도 제공한다.

애저 펑션(Azure Functions). 마이크로소프트 애저 펑션은 서버리스 컴퓨팅 플랫폼으로, 개발자나 데이터 소스나 메시징 솔루션과 연결해 동작을 실행할 수 있어 이벤트를 처리하고 대응하기 쉬워진다. 또한 다양한 애플리케이션에서 액세스할 수 있는 HTTP 기반 API 엔드포인트를 구축할 수 있다.

레드햇 오픈시프트(Red Hat OpenShift). 오픈시프트는 PaaS 솔루션 제품군으로, 클라우드에서 호스팅하거나 온프레미스 환경에 배치해 컨테이너화된 애플리케이션을 구축하고 배치할 수 있다. 주력 상품은 온프레미스 PaaS 솔루션인 오픈시프트 컨테이너 플랫폼으로, RHEL을 기반으로 도커 컨테이너와 쿠버네티스 오케스트레이션을 사용한다.

피보탈 클라우드 파운드리(Pivotal Cloud Foundry). 클라우드 파운드리 재단이 관장하는 오픈소스 PaaS이다. 원래 VM웨어가 개발해 EMC 조인트벤처였던 피보탈 소프트웨어로 이관됐다. 오픈시프트처럼 클라우드 파운드리는 컨테이너 기반 애플리케이션을 구축하고 운영하도록 설계됐다. 역시 쿠버네티스 오케스트레이션을 사용한다.
 

PaaS의 위험 요소

PaaS가 클라우드 기반 서비스라는 점을 고려하면, 다른 클라우드 서비스와 마찬가지로 정보 보안 위협과 같은 내재적인 위험 요소가 있다. PaaS는 네트워크나 서버와 같은 공유 자원을 사용한다는 개념을 기반으로 하기 때문에 중요한 데이터를 이 환경에 저장할 경우, 권한없는 액세스로 인한 데이터 절도나 해커에 의한 공격과 같은 보안 위협을 내포하고 있다.

하지만 다른 한편으로, 주요 클라우드 서비스 업체는 일반적인 기업 데이터센터보다 이런 위험을 훨씬 더 효과적으로 차단해 왔다. 따라서 정보 보안에 대해서는 기업 IT 부서가 우려하는 것만큼의 위험성이 증명되지 않았다.

PaaS를 이용하는 기업은 인프라와 운영에 관련된 적절한 액세스 제어 기타 보안 프로비저닝 및 정책은 서비스 업체에 맡긴다. 대신 자사 애플리케이션에 대한 보안 보호는 기업이 직접 제공하고 책임져야 한다.

또한 기업이 특정 서비스 업체의 인프라와 소프트웨어에 의존하기 때문에 업체 종속성 문제가 발생할 수 있다. 따라서 기업 IT 부서는 선택한 PaaS 서비스가 현재 또는 향후의 다른 IaaS나 SaaS 배치와 호환되는지를 확인해야 한다.

그외의 위험성으로는 서비스 업체의 인프라가 어떤 이유로든 중단되고, 이로 인해 서비스에 영향을 미치는 사태이다. 또한 서비스 업체가 자사의 개발 전략이나 프로그래밍 언어, 기타 요소를 변경할 때도 문제가 될 수 있다.

하지만 이런 장애물이 계속 기업의 PaaS 도입을 원천 차단할 만큼 심각한 것은 아니다. PaaS는 정확하게 말해 더 많은 유연성을 가져다준다. 기업이 프로그래밍을 처리하고 있을 때 서비스 업체가 플랫폼을 다루기 때문이다. 
 

iPaaS

PaaS에 대한 논의에 반드시 포함되는 것이 있는데, 바로 iPaaS(Integration Platform as a Service)이다. iPaaS는 서로 다른 환경에 배치된 애플리케이션을 연동하는 일련의 자동화된 툴이다. 대표적인 예가 iPaaS 서비스 업체인 델 부미(Dell Boomi), 인포매티카, 뮬소프트, 스냅로직 등이다.

iPaaS는 온프레미스 애플리케이션과 데이터를 클라우드 애플리케이션 및 데이터와 통합해야 하는 기업에 유용하다. 특히 하이브리드 클라우드 환경을 이용하는 기업의 수가 증가하면서 관심도 역시 높아지고 있다.  editor@itworld.co.kr