PaaS(Platform-as-a-Service)란?
PaaS(Platform-as-a-Service)는 애플리케이션을 개발, 실행, 관리할 수 있는, 완전하고 유연하며 비용 효율적인 클라우드 플랫폼을 제공합니다.
IBM 뉴스레터 구독
검정 및 파랑 배경
PaaS란?

PaaS(Platform-as-a-Service)는 클라우드 컴퓨팅 모델 중 하나로, 고객에게 하드웨어, 소프트웨어, 인프라가 포함된 완전한 클라우드 플랫폼을 제공합니다. 여기서 애플리케이션을 개발, 실행하고 관리할 수 있습니다. 온프레미스에서 플랫폼을 구축하고 유지할 때와 달리 많은 비용이 들거나 복잡성이 증가하거나 유연성이 떨어지지 않습니다.

PaaS 제공자는 데이터 센터에서 서버, 네트워크, 스토리지,  운영체제 소프트웨어, 데이터베이스, 개발 툴 등 모두를 호스팅합니다. 일반적으로 고객들은 지정된 수의 사용자에 대해 지정된 용량의 리소스를 제공하기 위해 고정 요금을 지불하거나, 사용하는 리소스에 대해서만 비용을 지불하는 '종량과금제' 가격 책정을 선택할 수 있습니다. PaaS 고객은 그 중 어느 옵션을 사용하더라도, 자체 온프레미스 플랫폼을 확장하고 관리해야 하는 경우 가급적 보다 빠르고 저렴하게 애플리케이션을 빌드, 테스트, 배치, 실행, 업데이트, 스케일링할 수 있습니다.

AWS(Amazon Web Services), Google Cloud, IBM Cloud 및 Microsoft Azure 등을 포함한 모든 선도적인 클라우드 서비스 제공자는 자체 PaaS 오퍼링을 보유하고 있습니다. 인기 있는 PaaS 솔루션은 오픈 소스 프로젝트(예: Apache Stratos, Cloud Foundry)의 형태로, 또는 소프트웨어 벤더(예: Red Hat OpenShift 및 Salesforce Heroku)에 의해 제공되기도 합니다.

PaaS의 장점

온프레미스 플랫폼과 비교하여 가장 많이 언급되는 PaaS의 장점은 다음과 같습니다.

  • 출시 시간 단축. PaaS를 사용하면, 애플리케이션 개발 플랫폼의 빌드와 유지보수에 사용되는 하드웨어와 소프트웨어를 구입하여 설치할 필요가 없습니다. 또한 이러한 작업 중에 개발 팀이 기다릴 필요도 없습니다. 클라우드 서비스 제공자의 PaaS만 활용하면 즉시 리소스 프로비저닝과 개발을 시작할 수 있습니다.

  • 더 다양한 리소스를 경제적으로 활용. PaaS 플랫폼에서는 대개 애플리케이션 스택의 상하단에서, 즉 운영 체제, 미들웨어, 데이터베이스, 개발 도구 등과 관련하여, 대부분 조직에서 현실적으로, 또는 경제적으로 감당할 만한 수준으로 직접 운영할 때보다 훨씬 더 다양한 선택권이 보장됩니다. 

  • 더 적은 위험 부담으로 더 자유로운 실험 가능. PaaS에서는 새로운 운영 체제, 언어, 기타 툴이나 이를 실행하는 데 필요한 인프라에 상당한 투자를 하지 않고도 테스트할 수 있습니다.

  • 쉽고 비용 효율적으로 확장 가능. 온프레미스 플랫폼에서는 확장하는 데 막대한 비용이 들기 마련입니다. 이러한 투자는 대개 별 효과를 거두지 못하고, 심지어 적절하지 않은 경우도 있습니다. 트래픽이 급증할 때를 대비하여 추가 컴퓨팅, 스토리지, 네트워킹 용량을 구매해야 하는데, 이 용량 대부분은 트래픽이 적을 때 유휴 상태입니다. 그리고 뜻밖의 트래픽 급증 상황에서도 적시에 확장할 수 없습니다. PaaS에서는 추가 용량을 구입하고 필요할 때마다 즉시 사용하기 시작하면 됩니다.

  • 개발 팀이 더 유연하게 작업 가능. PaaS 서비스는 공유 소프트웨어 개발 환경을 제공합니다. 즉, 개발 팀과 운영 팀이 인터넷에 연결되어 있으면 어디서나 각자 필요한 모든 도구에 액세스할 수 있습니다.

  • 전반적인 비용 절감. 물론 PaaS는 애플리케이션 플랫폼을 직접 구축하고 확장할 경우 부담해야 하는 설비 투자 지출이 없어 비용을 절감합니다. 게다가 PaaS에서는 소프트웨어 라이센스 비용을 줄이거나 아예 없앨 수도 있습니다. 그리고 패치, 업데이트, 기타 관리 태스크도 해결해주기 때문에 PaaS에서는 전반적인 애플리케이션 관리 비용을 절감할 수 있습니다. 
PaaS의 작동 방식

일반적으로 PaaS 솔루션은 크게 3가지 영역으로 나눕니다.

  • 가상 머신(VM), 운영 체제 소프트웨어, 스토리지, 네트워킹, 방화벽을 포함한 클라우드 인프라

  • 애플리케이션 빌드, 배치, 관리를 위한 소프트웨어

  • 개발 팀이나 DevOps 팀이 애플리케이션 라이프사이클 전반에서 각자의 모든 작업을 수행할 수 있는 그래픽 사용자 인터페이스(GUI)

PaaS가 GUI 온라인 인터페이스를 통해 모든 표준 개발 툴을 제공하므로, 개발자는 어디서든 로그인하여 프로젝트와 관련하여 협업하거나, 신규 애플리케이션을 테스트하거나, 완료된 제품을 롤아웃할 수 있습니다. 애플리케이션은 미들웨어를 통해 PaaS에서 바로 설계되고 개발됩니다. 간소화된 워크플로우 덕분에 여러 개발 팀과 운영 팀이 동시에 같은 프로젝트에서 작업할 수 있습니다.

PaaS 제공자가 서버, 런타임 및 가상화 등 대부분 클라우드 컴퓨팅 서비스를 관리합니다.  PaaS 고객인 해당 기업은 애플리케이션 및 데이터 관리를 맡습니다.

PaaS, IaaS 및 SaaS

PaaS와 마찬가지로, IaaS(Infrastructure-as-a-Service) 및 SaaS(Software-as-a-Service) 역시 매우 일반적인 클라우드 컴퓨팅 서비스 모델입니다.  사실상 기업에서는 (특별히 구매하지 않았더라도) 이 세 가지를 모두 사용하는 경우가 대부분입니다. 이에 대해 좀더 자세히 살펴봅니다.

IaaS는 클라우드 제공자가 호스팅하는 물리적 서버, 가상 머신, 스토리지, 네트워킹, 방화벽 등의 '원시' IT 인프라에 대한 인터넷 액세스입니다. IaaS에서는 온프레미스 인프라를 소유, 관리, 유지보수하는 비용과 수고가 사라집니다.  IaaS에서는 해당 기업이 자체 애플리케이션 플랫폼과 애플리케이션을 제공합니다. 

해당 리소스가 IaaS로 따로 구분되거나 지칭되지 않더라도, PaaS 오퍼링에는 반드시 그 호스팅에 필요한 IaaS 리소스가 포함되어 있습니다.

SaaS는 마치 컴퓨터에 설치된 것처럼 클라우드를 통해 사용하는 애플리케이션 소프트웨어입니다(일부 경우, 이 중 일부는 자신의 컴퓨터에 설치됨). SaaS에서는 애플리케이션의 실행을 위한 인프라 구축 비용, 그리고 (버그 수정과 업데이트 적용, 가동 중단 처리 등) 애플리케이션의 유지보수를 위한 작업과 인력 없이도 해당 애플리케이션을 사용할 수 있습니다. Salesforce 및 Slack은 유명한 SaaS 오퍼링의 예입니다. 대부분 웹 애플리케이션은 SaaS로 간주됩니다.

모든 SaaS 오퍼링에는 그 호스팅에 필요한 IaaS 리소스, 그리고 실행에 필요한 PaaS 구성 요소가 포함되어 있습니다. 일부 SaaS 벤더에서는 써드파티가 SaaS 오퍼링을 사용자 정의할 수 있도록 허용하는 별도의 PaaS도 제공합니다.

IaaS, PaaS 및 SaaS 자세히 보기
PaaS의 사용 사례

바로 사용할 수 있는 통합 플랫폼을 제공함으로써, 그리고 기업들이 인프라 관리를 클라우드 제공자에게 맡기고 애플리케이션 빌드, 배치, 관리에만 집중할 수 있도록 함으로써 PaaS는 다음을 포함하여 다수의 IT 이니셔티브를 간소화하거나 개선할 수 있습니다.

  • API 개발 및 관리: 내장형 프레임워크 덕분에 PaaS에서는 각 팀이 애플리케이션 간에 데이터와 기능을 공유하기 위한 애플리케이션 프로그래밍 인터페이스(API)를 훨씬 간편하게 개발, 실행, 관리 및 보호할 수 있습니다.

  • IoT(Internet of Things): PaaS는 즉시 IoT 기기에서 생성된 데이터의 실시간 처리와 IoT 애플리케이션 개발에 사용되는 다양한 프로그래밍 언어(Java, Python, Swift 등), 툴 및 애플리케이션 환경을 지원할 수 있습니다.

  • 애자일 개발 및 DevOps: PaaS는 통합, 딜리버리, 보안, 테스트 및 배치를 포함하여 소프트웨어 애플리케이션 라이프사이클을 자동화하기 위한 완벽히 구성된 환경을 제공할 수 있습니다.

  • 클라우드 마이그레이션 및 클라우드 네이티브 개발: 즉시 사용 가능한 툴과 통합 기능을 제공하는 PaaS에서는 기존 애플리케이션을 클라우드로 간편하게 마이그레이션할 수 있습니다. 특히 리플랫포밍(클라우드 확장성, 로드 밸런싱 및 기타 기능을 더 효과적으로 활용하기 위한 수정 사항과 함께 애플리케이션을 클라우드로 이동하는 것), 또는 리팩토링(마이크로서비스컨테이너, 기타 클라우드 네이티브 기술을 사용하여 애플리케이션의 일부 또는 전체를 재설계하는 것)의 방식을 사용합니다.

  • 하이브리드 클라우드 전략: 하이브리드 클라우드에서는 퍼블릭 클라우드 서비스, 프라이빗 클라우드 서비스, 온프레미스 인프라를 통합하고 이 세 가지를 포괄하는 범위에서 오케스트레이션, 관리, 애플리케이션 이동성을 지원합니다. 궁극적으로는 유연한 통합형 분산 컴퓨팅 환경이 구축됩니다. 즉, 가장 적합한 컴퓨팅 모델에서 기존(레거시) 워크로드나 클라우드 네이티브 워크로드를 실행하고 확장할 수 있습니다. 적절한 PaaS 솔루션을 사용함으로써 개발자는 한 번만 빌드한 후에 하이브리드 클라우드 환경의 어디서든 이를 배치 및 관리할 수 있습니다.
전문 PaaS 유형

많은 클라우드, 소프트웨어 및 하드웨어 벤더는 특정 유형의 애플리케이션을 구축하기 위한 PaaS 솔루션 또는 특정 유형의 하드웨어, 소프트웨어 또는 디바이스와 상호 작용하는 애플리케이션을 제공합니다.

  • AIPaaS(PaaS for Artificial Intelligence)를 사용하여 개발 팀은 해당 애플리케이션에 필요한 중요 컴퓨팅 성능, 스토리지 기능 및 네트워킹 용량을 구매, 관리 및 유지보수하기 위한 엄청난 비용을 들이지 않고도 인공지능(AI) 애플리케이션을 빌드할 수 있습니다. AiPaaS는 일반적으로 사전 훈련된 머신 러닝 및 딥러닝 모델을 포함합니다. 개발자는 이 모델을 그대로 사용하거나 맞춤화할 수 있습니다. 그리고 즉시 사용 가능한 API도 있어 특정 AI 기능, 이를테면 음성 인식, 음성-텍스트 전환 등을 기존 애플리케이션이나 신규 애플리케이션에 통합할 수 있습니다.

  • iPaaS(integration platform as a service)는 클라우드 호스팅 방식의 솔루션이며, 애플리케이션을 통합하는 기능을 합니다. iPaaS는 퍼블릭 클라우드, 프라이빗 클라우드 및 온프레미스 환경의 데이터, 프로세스, 서비스를 연결하는 표준화된 방식을 제시합니다. 그러면 백엔드 통합 하드웨어, 미들웨어, 소프트웨어를 직접 구입, 설치, 관리해야 하는 부담이 없습니다. (대개 Paas 솔루션에 일정 수준의 통합 기능, 이를테면 API 관리 기능이 포함되지만, iPaaS가 훨씬 더 포괄적입니다.)

  • cPaaS(communications platform as a service)는 개발자가 전문 통신 하드웨어와 소프트웨어에 투자하지 않고도 음성(인바운드/아웃바운드 호출), 비디오(원격 회의 포함) 및 메시징(텍스트 및 소셜 미디어) 기능을 애플리케이션에 손쉽게 추가하게 해주는 PaaS입니다. 

  • mPaaS(mobile platform as a service)는 모바일 기기를 위한 애플리케이션 개발을 간단히 해결하게 해주는 PaaS입니다. 일반적으로 mPaaS는 전화기의 카메라, 마이크, 모션 센서, 지리 위치(GPS) 기능과 같은 기기별 기능에 액세스하는 (드래그 앤 드롭 수준으로 간단한) 로우코드 방식을 제공합니다.
관련 솔루션
IBM® Cloud Pak for Applications

앱을 현대화하고 새로운 앱을 빌드하고 비용을 줄이고 ROI를 극대화합니다.

IBM® Cloud Pak for Applications 살펴보기
Red Hat® OpenShift® on IBM® Cloud

한 번의 클릭으로 고가용성의 완전 관리형 클러스터를 배치합니다.

Red Hat® OpenShift® on IBM® Cloud 살펴보기
리소스 기업 환경의 마이크로서비스, 2021년

마이크로서비스를 이용하는 애플리케이션 개발 방식은 어떤 조직에서든 쉽지 않은 일이 될 수 있습니다. 그러나 점점 더 많은 마이크로서비스 사용자가 개발자 생산성 향상, 고객 만족도 상승, 출시 일정 단축 등 그 노력에 상응하는 이점을 누릴 수 있다는 데 동의하고 있습니다.

IaaS, PaaS 및 SaaS 비교

가장 많이 사용되는 세 가지 클라우드 컴퓨팅 서비스 모델을 이해하고 비교합니다.

클라우드 컴퓨팅이란?

클라우드 컴퓨팅을 이용하면 인터넷을 통해 인프라에 '플러그인'할 수 있으며, 이를 온프레미스에 설치하고 유지보수하지 않아도 컴퓨팅 리소스를 사용할 수 있습니다.

다음 단계

Red Hat® OpenShift® on IBM Cloud®는 IBM Cloud의 엔터프라이즈 스케일과 보안을 사용하여 업데이트, 스케일링 및 프로비저닝을 자동화하고 트래픽의 예상치 않은 급증을 처리하는 완전 관리형 OpenShift 서비스입니다. 해당 팀은 다양한 툴과 기능을 이용하여 개발 및 앱 현대화를 시작하고, 단 한 번의 클릭으로 고가용성의 완전 관리형 클러스터를 배치할 수 있습니다.

Red Hat® OpenShift® on IBM Cloud® 자세히 알아보기