- 2022년 5월 9일
- pmpkrc
- 0 Comments
- 심층 PM 칼럼
[22년 3월 칼럼] IT PM으로서 알아야할 다양한 클라우드의 특징과 장단점
IT 프로젝트를 수행하는 PM에게 있어서 가장 중요한 요소로서 “클라우드”는 절대 빠지지 않는 중요한 핵심 기술입니다. 그럼에도 불구하고 많은 이들이 충분히 이해하기 어려운 것이 또한 클라우드이며, 절대로 이해해야만 해당 IT 프로젝트를 원활하고 올바르게 종료하고 그 이후 고객이 서비스를 잘 운영 관리할 수 있는 것도 사실입니다. 그래서 이번 칼럼에서는 각 클라우드 기술에 대한 대략적인 이해를 돕는 내용을 설명하려고 한다
대부분의 클라우드 서비스를 구별할 때 각각의 클라우드 서비스가 매우 유사한 특성을 가지고 있어, 그 차이를 이해하고 선택하고 적용하기가 조금 어렵다. 이 때, 주의할 것은 관계 및 차이를 이해하는 게 아니라 어떤 서비스가 특정 클라우드 서비스 분야에 적절할 지 기존의 개발자들로 하여금 어떤 분야의 서비스를 활용하는 것이 가장 최적인지 여부에 대한 질의를 계속해야 하며 구축할 서비스 프로세스와 업무 로직에 최적의 안정성과 운용성을 제공할 수 있을지 판단해야 한다.
나아가 외부 기술에 대한 정확한 이해와 현재 서비스 시스템 구조에 대해서 자세히 들여 다 볼 수 있어야 하며 그와 함께 반드시 파일럿 서비스를 직접 운용해서 경험을 축적해 봐야만 한다. 일부 간단하고 전환하기 쉬운 과제를 PoC(Proof of Concept)만을 적용하도록 추진해야 한다. 아울러 이 새로운 변화에 대해 거부하는 내부 관계자들이 있다면 반드시 그들을 설득해서 그 저항을 최소화해야 한다.
따라서 업무 순위가 낮은 서비스를 직접 퍼블릭 클라우드 또는 소규모 프라이빗 클라우드로 전환하여 구축하고 그에 대한 피드백을 여러 채널인 개발 담당자와 서비스 운영자, 보안 담당자, 최종적으로 서비스 사용자의 피드백을 통해서 수집하고 그 변화에 적극적으로 참여하도록 하는 것이 매우 중요하다.
이때 유의해야 할 사항으로는 서버 가상화와 IaaS의 경계를 잘 살펴보아야 하며 서버 가상화는 서버 생성 기술에 국한된 개념이 강하기 때문에 IaaS의 API를 통한 업무 서비스를 가진 대량의 서버를 즉각 구동하는 것과는 괴리가 있음을 이해할 필요가 있다.
이는 실제로 IaaS를 소개하고 고객을 설득해서 구축을 진행하거나 프로젝트 진행 시 가장 어렵고 힘든 부분이므로 클라우드를 이해하고 있다면 최소한 가상화 기술 엔진 기반과 클라우드 네이티브 기반의 가상 서버 배포 플랫폼의 차이는 이해하는 것이 좋다. 현재 클라우드의 주력은 PaaS로 컨테이너 엔진을 이용해서 신속하게 애플리케이션과 데이터를 다루면서 그 외의 영역을 일종의 서비스로 트리거시켜서 사용하는 단계이다.
이번에는 가장 활용 사례가 많은 IaaS와 PaaS 그리고 퍼블릭 클라우드에 대해서 분류해서 설명하려 한다.
1. IaaS(Infrastructure as a Service)의 개요
IaaS 서비스의 목표를 VM (가상 머신)를 만드는 것이라고 하지만 이는 옳지 않다. VM(가상 머신)을 만드는 것을 최종 목표로 활용하는 것은 보통 하이퍼바이저(가상화 엔진)이라고 하는 솔루션을 지칭하는 경우가 많으며, 실상은 서버 하드웨어를 가상으로 에뮬레이션(emulation; 비슷하게 구현하거나, 대체)을 이용해서 하드웨어 기능을 제공하는 것을 의미한다.
이는 CPU·메모리·디스크·네트워크카드·그래픽카드·키보드·마우스 등 모든 필요한 하드웨어가 존재하는 것처럼 생성하고 설치될 가상 서버의 운영 체제에게 제공하는 것을 의미한다.
그렇다면 이와는 다른 IaaS에서의 목표는 무엇인가? 바로 시스템 또는 서버(인스턴스)가 기본 서비스를 가지고 있는 상태로 즉시 배포하는 것이며 이는 가상화엔진 (하이퍼바이저)이 서버를 에뮬레이션하는 것을 목표로 하는 것에 반해 기본 서비스를 가진 시스템으로서의 가상 머신들을 충분히 신속하고 많이 배포하는 것을 의미한다.
둘의 관계는 유사하지만 가상 머신을 만드는 하이퍼바이저에 의해서 제공된 머신은 대부분 직접 로그인하여 특정 설정을 구성해야만 정상적인 서비스를 제공할 수 있다. 물론 즉시 사용 가능한 이미지로 만들어 둔 상태라면 해당 상태로 즉시 구동 가능하게 설정할 수 있지만 그렇게 하려면 상당한 노력과 (실행에서의) 노하우가 있어야만 가능 하기 때문에 추가적인 개발 인원 구축과 배포를 위한 새로운 설정이 필요할 수 있다.
이에 반해서 IaaS는 기본 목표가 대량의 서버를 하나의 이미지를 이용해서 신속히 배포하고 서비스를 구동할 수 있는 배포 환경을 만드는 것에 초점을 맞춘 솔루션 서비스이라는 부분이 가상화 엔진과는 상이한 부분이다. 통상 대량 서버 배포에 최적 화하기 위해서 이미지는 특정 서버 설정이 제거되도록 구성·제작되며, 서버에 할당되는 디스크·CPU·Memory·Network 등을 일괄 정의하고 접속을 위한 방화벽 정책, 스케일아웃 (scale out; 병렬 확장)을 위한 로드밸런서 속성 값들을 포함하여 배 포하는 것이 특징이다.
이는 즉각적인 서버 배포와 로드 증가 시 병렬 증설을 지원할 수 있도록 하는 설계가 기본으로 장착되어 있는 것이 핵심이다. 오픈소스 기반 IaaS의 대표적인 솔루션에는 오픈스택이 있으며 상용 벤더의 솔루션으로는 VMware VCloud Suite가 대표적이나, 사실은 둘의 관계는 약간 다른 성장 배경을 가지고 있다. 고객 서비스 입장에서는 오픈소스 오픈스택이나 VMware VCloud Suite나 동일한 서비스를 가진 서버를 대량의 단위로 제공할 수 있기 때문에 비용과 인력 그리고 요구 사항을 잘 분석해서 선택해야 하는 것이 중요하다. 이는 이후 퍼블릭 클라우드로의 이전에서도 동일하게 나타나며, 결국 고객의 서비스 중요도와 비용 그리고 내재화 여부를 잘 고려하여 가장 적절한 솔루션을 선택하는 것이 핵심 가치이기도 하다
2.PaaS(Platform as a Service)의 개요
Platform as a Service, 통상 PaaS라고 하는 서비스는 애플리케이션을 구동할 수 있는 플랫폼을 즉시 배포한다는 의미를 가지고 있다. 그러나 IT에서는 보다 축소된 의미인 컨테이너 엔진을 이용한 플랫폼을 즉시 배포할 수 있는 컨테이너 플랫폼 클라우드를 지칭하는 것으로 더 많이 활용되고 있다.
앞서 설명한 IaaS로도 사실 광의의 PaaS 환경을 구성할 수 있으며 실제로 배포 시간이 좀 더 걸리고 미리 다양한 구동 환경을 구성하고 다양한 요구를 수용할 수 있는 템플릿(또는 서비스 카탈로그 또는 메뉴)을 선제적으로 구현하여 제공할 수 있다면 누구든지 PaaS와 유사하게 구현하였다고 할 수 있다.
그러나 2022년 현재 PaaS는 신속하게 업무를 구동할 수 있는 컨테이너 엔진으로 구동되는 환경을 말한다.
컨테이너 엔진은 기존에 설명한 IaaS가 가상 머신을 만들어내는 하이퍼바이저를 이용해 서비스가 장착된 VM(가상 머신)을 대량으로 구성할 수 있도록 하는 것에 반해서 OS가 없는 애플리케이션 이미지 또는 구동 환경을 이용해 쉽게 또 대량의 애플리케이션을 실행시킬 수 있다. 이는 마치 일반 PC나 Mac에서 엑셀이나 웹 브라우저 등을 구동하는 것과 같다.
기본적으로 가상 머신으로 서버를 구성하는 것과 동일한 형태의 서비스를 가진 컨테이너(POD라 부르기도 한다)로 배포해서 신속하게 서비스를 제공할 수 있는 것이 특징이다. 아울러 PaaS 컨테이너 플랫폼은 다양하고 효용성(비용 절감, 신속한 서비스 기동, 애플리케이션 적용 쉬움 등)이 인정되어 여러 산업군에서 기존 물리 머신 또는 가상 머신으로 구성된 서비스를 컨테이너 플랫폼 기반으로 구동하기 위해서 전환하거나 고려하고 있다. 컨테이너 플랫폼의 장점은 요구 조건에 따라 다양하며, 이 를 이해하기 위해서는 좀 더 기술적 설명이 필요하며 이는 기존 인프라스트럭처 내용과 소프트웨어 개발 내용이 포함되어 2가지 기술 영역 모두를 이해해야 하는 어려움이 있다.
아래 그림은 각 인프라스트럭처 기술에 의해서 서비스를 포함하는 서버 또는 인스턴스를 생성하는 데 걸리는 시간을 대략적으로 계산한 값이다. 가장 핵심은 서버를 구축해서 설치하는 것이 목표가 아닌 서비스가 내재된 인스턴스를 생성해서 신속히 서비스로 구성해야 하는 것에 더 집중하고 있다. 더불어 가장 빠른 시간 내 서비스를 생성할 수 있는 인프라스트럭처는 바로 PaaS라고 할 수 있으며 보다 디지털 온라인 비즈니스를 가속화할 수 있다는 가능성을 인정받고 있다. 이에 힘입어 마침내 대부분의 기업 고객들이 컨테이너 기술을 바탕으로 한 PaaS를 운영·구축하거나 퍼블릭 클라우드의 서비스를 계약해서 사용하기 시작했다
3.퍼블릭 클라우드 사업자란?
일반적으로 클라우드라고 하면 대부분 퍼블릭 클라우드 사업자인 아마존 웹서비스 클라우드, 구글 클라우드, 마이크로소프트 AZURE 클라우드, 오라클 클라우드, IBM 클라우드 등과 같은 해외 벤더의 퍼블릭 클라우드와 국내 사업자인 네이버 클라우드, 가비아 클라우드, KT 클라우드, SK 클라우드 등을 이야기할 수 있다. 물론 스마트폰의 스토리지 클라우드인 i-cloud, 드랍박스 등도 다양한 위치에서 휴대폰, 태블릿 및 PC 등으로 연결하여 사용하고 있다.
퍼블릭 클라우드 사업자는 앞서 설명한 다양한 서비스 대부분을 제공하고 있다. 이는 컴퓨팅 클라우드와 스토리지 클라우드와 네트워크 서비스 및 다양한 솔루션 서비스를 제공한다는 의미이며 기업 고객 또는 개인 고객이 본인이 필요로 하는 서비스를 즉시 사용할 수 있도록 메뉴 및 카탈로그로 제공함을 말한다. 웹서비스, 웹 애플리케이션, 데이터베이스, 메세지 큐, 스토리지 서비스, 캐싱 서비스, 백업 서비스, 복제 서비스, 이중화 서비스 등 다양한 부문을 제공하고 있다.
이때 원활한 서비스 구축을 위하여 기업 책임자는 클라우드 사업자가 해당 기술을 어떻게 고객이 사용할 수 있게 구축하고 설계하고 서비스로 제공하는 것인지 알아야 할 것이다. 왜냐하면, 기업 또는 사용자는 비용을 지불하고, 해당 클라우드 사업자의 구축 및 설계 서비스를 이용해서 서비스를 구축해야만 고객의 접속 및 이용량을 증가시킬 수 있을 것이고 판매 및 서비스 실적을 높일 수 있을 것이다.
결국 효율적인 투자 후 이윤을 얻게 되면 서비스를 추가 개발하거나 충분한 리소스를 선 구매하여 구축하고 제공할 수 있다. 이러한 구축은 접속 및 서비스에서 높은 실적으로 이어진다.
또한 퍼블릭 클라우드 공급 업체는 기업 또는 개인이 해당 리소스를 간단히 사용 요청하는 것만으로 서비스로 전환하여 바로 사용할 수 있게 제공할 수 있어야 한다. 그러기 위해서 클라우드 서비스 공급 기업은 사용하기 쉬운 인터페이스와 간단한 기본 구축을 위한 상세한 자료를 제공하거나 구축을 위한 샘플 레퍼런스 아키텍처를 지속적으로 개발하고 작성하여 배포하고 있다.
또한 매년 또는 반기 단위로 대단위의 온 오프라인 컨퍼런스를 개최해서 자신들의 퍼블릭 서비스를 이용한 유저 레퍼런스 사례를 발표하고 더 쉽게 서비스를 사용할 수 있도록 독려하고 있다. 또한 많은 개발자들을 채용하여 고객이 좀 더 쉽게 기존 리가시(기존의 사내 내 부 IDC 센터 또는 최신 기술이 아닌 예전의 IT) 시스템을 자사의 퍼블릭 클라우드 로 전환하는 것을 지원하고 있으며 병행해서 고객 담당자가 쉽게 퍼블릭 클라우드로 전환할 수 있도록 무상의 교육 과정을 자신의 클라우드 기반에서 제공하기도 한다.
4.맺음말: 클라우드 프로젝트는 반드시 고객 및 관련 인력 모두의 이해가 반드시 선행되어야 한다.
IT 프로젝트는 이제 더 이상 클라우드를 제외하고 설명하기 매우 어려운 시대가 되었다. PM 및 관련 IT 신기술과는 관계가 없어 보이는 이들까지 이제는 클라우드를 이해하고 설명하기 시작한 것이다. 그래서 이 신기술에 대한 적용을 위해서는 반드시 전체 프로젝트 관계자의 일관된 이해와 목적 의식 도모가 반드시 프로젝트의 킥오프에 포함되어야 한다고 필자는 생각한다.
[필자소개]
PMI 교육 위원회 전문위원, 글로벌 기업 클라우드 전문가 역임, 클라우드 강의 교수/ 저자: Linkedin : https://www.linkedin.com/in/samuel-sangjin-c-16100720/
[참고문헌]
[1] 클라우드 컴퓨팅과 클라우드 네이티브(2021, 천상진) / 2장다양한 클라우드 플랫폼 서비스의 차이