통합 검색어 입력폼

클라우드 서비스에 대한 접근, 그리고 MS Azure 이야기

조회수 2017. 6. 20. 11:45 수정
번역beta Translated by kaka i
번역중 Now in translation
글자크기 설정 파란원을 좌우로 움직이시면 글자크기가 변경 됩니다.

이 글자크기로 변경됩니다.

(예시) 다양한 분야의 재밌고 유익한 콘텐츠를 카카오 플랫폼 곳곳에서 발견하고, 공감하고, 공유해보세요.

초보자들에게 도움이 되는 이야기와 가이드북도 함께 알려준다.

뭐 최근 이야기는 아니고 몇 년 전부터 꾸준히 얘기가 나오고 있는 IT 이슈 중에는 클라우드 서비스에 대한 이야기가 있다.


웹 기반의 서비스가 IT 서비스의 메인으로 떠오르면서, 인터넷 기반의 인프라가 완전히 자리를 잡은 이후에 서비스를 이용하는 것이나 혹은 서비스를 만드는 것이나 모두 클라우드 기반의 서비스나 시스템을 이용하고자 하는 움직임이 많이 보인다.


또, 이런 클라우드 시스템을 제공하는 서비스들도 많아진 것이 사실이다. 그러다 보니 왜 클라우드를 사용해야 하는가에 대해서 이런저런 얘기가 많이 나오고 있는 것도 사실이다.

일반적으로 클라우드 서비스를 얘기할 때 3가지의 개념으로 얘기를 한다.


SaaS(Service as a Service)

PaaS(Platform as a Service)

IaaS(Infrastructure as a Service)

이 세 가지로 이야기를 하는데, 서비스를 사용하기 위한 클라우드 서비스와 서비스를 만들기 위한 클라우드 서비스, 그리고 그 서비스 운영 환경을 만들기 위한 클라우드 서비스로 얼추 개념을 정리할 수 있다.


그리고 크게 나눠서 사용자들을 위한 클라우드 서비스로 SaaS를, 개발자나 개발 회사, 혹은 운영 회사 등 제공자를 위한 클라우드 서비스로 PaaS, IaaS를 얘기한다면 조금 더 이해하기가 쉬울 듯싶다.


참고로 언론에서 많이 얘기하는 아마존의 AWS나 MS의 Azure, 구글의 GCP는 IaaS에 속하는 서비스로 SaaS, PaaS를 설명한 후에 좀 더 깊게 얘기해보려고 한다.


사용자들을 위한 서비스, SaaS


SaaS는 앞서 언급했듯 서비스를 사용하기 위한 클라우드 서비스로 사용자들을 위한 클라우드 서비스라고 보면 이해가 쉽다. 좀 더 깊게 얘기하자면 SaaS는 뒤에서 설명할 PaaS와 IaaS를 이용하여 만든 서비스다.


SaaS의 대표적인 예가 웹 ERP 솔루션으로 많이 사용되는 세일즈포스닷컴(SaaS의 대표주자로 많이 알려졌다)이 있고 웹 뿐만이 아니라 모바일, 데스크탑 어플리케이션으로도 많이 사용하고 있는 노트 서비스인 에버노트도 SaaS의 대표적인 서비스라고 볼 수 있다.


MS에서 제공하는 Office365의 Exchange, Outlook, OneDrive, One Note 등의 모든 서비스들도 SaaS로 볼 수 있고 구글이 제공하는 대부분의 서비스, Gmail, 캘린더, 구글 드라이브 등에서 제공하는 모든 서비스들도 SaaS 개념의 서비스라고 보면 된다. 우리가 일반적으로 생각하는 웹어플리케이션이라 불리는 서비스들이 대부분이 여기에 속한다고 보면 된다.


SaaS의 특징은 서비스 그 자체를 이용하면 된다는 것이다. 에버노트나 원노트(MS Office365의 노트 서비스) 등의 서비스는 그 서비스를 이용하는 것으로 그 가치를 보여준다.


구글 드라이브에서 제공하는 구글오피스나 오피스 온라인 서비스 역시 그 자체가 그냥 어플리케이션이고 서비스다. 사용자는 별다른 추가적 작업 없이 그냥 이용하면 된다. 그래서 사용자들을 위한 클라우드 서비스라는 얘기를 한다.


개발을 위한 서비스, PaaS


그럼 클라우드 서비스 개념 중에 개발을 위한 클라우드 서비스라 불리는 PaaS에 대해서 살펴보자. PaaS의 P는 플랫폼의 약자로 OS를 제공한다던지 개발 툴을 제공한다던지 어찌되었던 뭔가를 만들기 위한, 또 운영하기 위한 재료를 제공하는 클라우드 서비스를 의미한다고 보면 된다.


우리가 음식을 만들려고 할 때에도 다양한 식재료가 필요하며 음식을 만들기 위한 도구가 필요하다. 그런 식재료와 도구는 마트나 시장, 아니면 동네의 가게 등에서 구입할 수 있다.


클라우드 서비스를 통해서 뭔가의 서비스를 만들기 위해서는 다양한 툴들이 필요한데 예를 들어 홈페이지를 만들려고 하더라도 홈페이지를 구동할 수 있는 서버가 필요하고 그 서버를 운영하기 위한 OS가 필요하며 웹 서비스 자체를 구동하기 위한 웹서버가 필요하다.


또, 만들기 위해서 웹 언어를 컴파일하거나 해석할 수 있고 편집 등을 할 수 있는 개발 툴이 필요하다. 웹 언어의 경우 다양한 기능을 수행하기 위해 여러 라이브러리를 이용해야 하는 경우도 있다.


여기서 간단히 예를 들자면 앞서 음식을 만들기 위한 재료는 웹 서비스 개발에 있어서 개발 툴과 라이브러리의 역할을 한다고 할 수 있다. PaaS의 범위는 여기까지라고 생각할 수 있다(물론 웹서버와 OS까지 PaaS의 범위로 넣는 경우도 있지만 일반적으로 OS와 구동을 위한 모듈은 밑에서 설명할 IaaS 영역이라고 보면 된다).

PaaS의 대표적인 예가 IBM의 블루믹스이며 세일즈포스닷컴의 포스닷컴도 PaaS의 대표적인 예라고 할 수 있다. 그리고 우리가 흔히 OpenAPI라고 부르는 웹에서 쉽게 서비스를 제공하기 위해 사용하는 웹 API를 제공하는 서비스는 다 PaaS의 영역에 있다고 볼 수 있다.


간단히 말해 웹용 API를 제공해주는 서비스는 대부분 PaaS라고 보면 된다. 구글도 Google Maps, Google Apps 등의 다양한 구글 서비스에서 OpenAPI를 제공하고 있는데 그 자체도 SaaS로서의 역할을 하지만 API를 이용하여 개발자들이 해당 서비스를 자신들의 입맛에 맞춰서 커스터마이징해서 사용할 수 있기 때문에 PaaS로서의 역할도 함께 하고 있다고 생각하면 된다.


많은 서비스들이 SaaS와 PaaS를 함께 제공하는데, 먼저 PaaS를 제공하고 그것을 이용하여 자사의 대표 서비스를 SaaS로 만들어서 제공하는 전략을 많이 사용한다. 앞서 언급한 세일즈포스닷컴이 대표적인 예로 포스닷컴을 이용하여 세일즈포스닷컴을 만들어서 제공하고 있다.


서비스 제공 환경을 만들어주는 IaaS


그러면 오늘 본격적으로 얘기할 IaaS에 대해서 살펴보자. 클라우드 서비스의 3가지 단계 중 어떻게 보면 가장 기본이자 기초가 되는 서비스라고 보면 된다. IaaS의 I는 인프라(Infrastructure)의 약자로 우리가 많이 말하는 그 통신 인프라의 인프라나 도시 인프라의 그 인프라라고 보면 된다.


앞서 PaaS를 설명하면서 요리에 대해서 얘기를 했는데, 같은 예를 들자면 식재료와 도구가 PaaS에 속한다면 요리를 할 수 있는 공간이 IaaS에 속한다고 보면 된다.


웹 서비스를 예로 들자면 웹 서비스를 제공하기 위해 서버가 필요하고 그 서버를 운영하기 위한 OS가 필요하며 웹 서비스를 제공하기 위해서 웹 서버가 필요하고 데이터를 핸들링하기 위해 데이터베이스가 필요한데 이런 서버와 OS, 웹 서버와 데이터베이스를 제공하는 것이 IaaS라고 보면 된다는 얘기다.


혹자는 OS나 웹 서버, 데이터베이스는 PaaS 영역에 속한다고 얘기하지만 IaaS의 보다 좀 더 광범위한 정의를 보면 시스템이나 서비스를 제공하기 위한 인프라를 제공하는 것이 IaaS의 정의고 그런 의미에서 OS와 구동, 운영을 위한 모듈까지를 IaaS의 범위로 보는 것이 맞다는 것이 내 생각이다.


앞서 SaaS, PaaS의 대표적인 서비스에 대해서 살펴봤는데 그렇다면 IaaS의 대표적인 서비스는 뭐가 있을까? 많은 사람들이 많이 얘기를 들었을 것이라 생각되는 아마존의 AWS(Amazon Web Service)가 아마도 대표적인 IaaS일 것이다.


또, 구글의 구글 클라우드 플랫폼(GCP, Google Cloud Platform)과 MS의 애저(Azure)도 대표적인 IaaS라고 할 수 있다. 그 외에 IBM의 소프트레이어(Softlayer)도 IaaS 중에 하나다. 국내 서비스로는 KT의 U Cloud 정도를 얘기할 수 있을 듯 싶다.


서버 가상화와 IaaS


IaaS를 얘기하면서 함께 언급해야 할 부분이 바로 가상화다. 인프라를 서비스로 제공한다고 했을 때 IT 세계에서의 인프라는 인터넷 연결과 같은 통신이 될 수도 있지만 그것보다는 시스템, 즉 PC나 서버 등의 하드웨어를 제공하는 것으로 얘기할 수 있다.


그런데 물리적으로 존재하는 하드웨어를 인터넷을 통해서, 또 웹을 통해서 물리적으로 제공하는 것은 불가능하다. 그래서 가상의 PC, 가상의 서버를 만들어서 제공하는데 이를 서버 가상화라고 얘기한다.


이런 서버 가상화를 얘기할 때에는 가상화 솔루션을 이해해야 하는데, 대표적인 가상화 솔루션으로 VMWare, Xen Server 등이 있고 KVM, Oracle VM 등이 있으며 Hyper-V도 있다. IaaS는 이런 가상화 솔루션을 이용하여 가상화된 서버를 제공하거나 아니면 직접 가상화 솔루션을 만들어서 그것을 이용하여 제공한다.


IaaS를 이용할 때 가장 먼저 하는 일이 가상의 서버를 만드는 일부터 하는데 IaaS에서 제공하는 서버 가상화 시스템을 이용해서 작업을 하게 된다. 즉, IaaS 안에 서버 가상화가 포함되어 있다고 보면 된다.

서버 가상화라고 하면 무척이나 거창하게 느껴질 수 있는데 손쉽게 경험할 수 있다. 서버 가상화는 서버급 시스템을 가상화하는 것이다.


그 얘기인 즉, 우리가 흔히 사용하는 PC도 손쉽게 가상화를 할 수 있으며 Windows 10 Pro 이상을 사용하고 있다면 Hyper-V를 이용하여 손쉽게 가상머신(Virtual Machine, VM)을 만들 수 있고 그게 아니더라도 VMWare 홈페이지에 접속하여 VMWare Player를 통해 VM을 만들 수 있으며 오픈소스로 제공하는 VirtualBox 등을 이용해서도 손쉽게 VM을 만들 수 있다.


VM을 만드는 과정도 간단한데 CPU와 메모리의 크기, 저장공간의 크기 정도만 설정해주고 네트워크도 NAT을 이용할지 별도의 IP를 쓰게 할 것인지 정도만 설정해주면 금방 VM을 만들 수 있다.


만드는 순서는 각 가상화 솔루션마다 조금씩 차이가 있지만 대부분 비슷하다. 튜토리얼을 보면서 따라하면 금방 만들 수 있다. 이런 식으로 VM을 만드는 것과 IaaS에서 가상의 서버를 만드는 것은 그렇게 다르지 않다. 설정하는 요소가 조금 더 많고 좀 더 세밀한 설정이 가능하다는 정도일 뿐이다.


IaaS는 앞서 언급한 서버 가상화와 함께 제공하는 OS도 중요한 요소라고 할 수 있다. 어떤 IaaS는 VM까지만 제공하고 그 위에 OS와 다른 소프트웨어는 사용자가 알아서 설치하라고 하는 경우도 있다.


즉, IaaS를 시스템적인, 하드웨어적인 인프라만 제공하겠다는 것인데 초창기 IaaS들이 보통 이런 컨셉을 많이 가져왔다.


하지만 시대가 점점 더 많은 서비스를 제공받기를 요구하는 쪽으로 접어들면서, 적어도 기본적으로 제공되어야 할 소프트웨어까지 제공하는 것이 IaaS의 요건이 되어버렸다.


아마존의 AWS도 VM을 만들고 그 안에 설치할 OS까지도 VM을 만들 때 함께 설정해서 설치해서 제공받을 수 있다. AWS의 경우 예전에는 Linux만 제공했으나 지금은 Windows Server도 함께 제공하고 있다.


또한 MS의 애저는 예전에는 Windows OS만 제공하고 있었지만 최근에는 Linux도 함께 제공하고 있다. 현재 IaaS 시장의 선두주자는 아마존의 AWS지만 그 뒤를 MS의 애저가 뒤따르고 있는데 그 이유는 Windows OS만 고집하던 것에서 오픈소스인 Linux를 제공하기 시작한 부분도 없잖아 있다고 본다.


물론 Linux용 MS 소프트웨어의 지원도 한몫했고 말이다. 요즘 제공되고 있는 IaaS는 대부분 적어도 OS까지는 제공해주고 있다고 보면 된다.

전문가만을 위한 그동안의 IaaS, 그 틀을 깨려는 MS Azure


앞서 언급한 SaaS나 PaaS에 비해 IaaS는 접근하기 좀 어려운 부분이 있었다. 인프라라는 얘기는 많이 듣지만 어렵다는 개념이 있기 때문이다. 또 서버 가상화라는 것도 많이 듣기는 하지만 쉽게 입에 붙는 단어는 아니다.


즉, 전문가들만이 다룰 수 있는 서비스라는 인식이 강하다. 과거에도 그랬고 지금도 많이들 그렇게 생각한다. 그래서 그런지 IaaS를 좀 더 쉽게 사용하도록 서비스의 난이도를 많이 낮추는 노력들을 IaaS를 제공하는 업체들이 많이 시도한다.


AWS를 제공하는 아마존이나 애저를 제공하는 MS는 각기 AWS와 애저를 좀 더 손쉽게 사용할 수 있게 다양한 툴들을 제공하고 또 기본적으로 제공하는 서비스의 UI를 좀 더 편하게 만들어서 제공하고 있다.


그리고 Iaas의 부동의 1위는 AWS이기는 하지만 MS의 애저가 앞서 그 영역을 차지하면서 2등으로 올라선 이유 중에 하나가 바로 이 UI의 편의성, 손쉬운 사용이다. 적어도 AWS보다는 쉽게 사용할 수 있기 때문에 빠른 속도로 성장하고 있지 않느냐 하는 생각을 해본다.


애플의 맥 시리즈를 제외한 나머지 PC에서 사용하는 OS 중에 가장 많이 사용하는 것이 MS의 Windows다. 일부는 Linux를 사용하고 있지만 많은 사람들이 Windows OS를 많이 사용하는데 이유는 UI가 편해서일 것이다.


물론 지원하는 어플리케이션이 많기도 하지만 웹 서비스 기반으로 어플리케이션들이 많이 옮겨가면서 이런 OS의 영향이 많이 줄어든 상태다.


그럼에도 불구하고, 예전처럼의 압도적인 점유율은 아니지만 그래도 Windows OS를 많이 이용하는데 그것은 아직까지는 다른 OS보다 UI, 특히 GUI(그래픽 UI)가 편해서가 아닐까 싶다. 서버도 마찬가지인데 Linux 서버가 대세를 이루고 있지만 많은 서버 관리자들은 할 수만 있으면 Windows Server를 쓰고 싶어 한다.


Linux 서버를 쓰는 이유는 같은 시스템 사양에서의 퍼포먼스가 상대적으로 뛰어나서이기도 하고 오픈소스이기 때문에 가격적 부담이 없어서일 것이다. 하지만 유지보수를 하는 입장에서 Linux는 좀 불편하다. 여전히 텍스트 기반의 UI(터미널 창을 많이 사용한다)가 주류를 이루고 있기 때문이다.


Windows Server는 가격적인 부담이 좀 있는 것이 사실이지만 유지보수를 하는 입장에서는 무척이나 편한 OS다. 모든 것들이 다 그래픽화 되어 있기 때문에 직관적이어서 접근하기 편한게 사실이기 때문이다.


그래서 Windows 서버에서 Linux 서버로 갈아타는 경우도 있지만 상대적으로 Linux 서버에서 Windows 서버로 갈아타는 경우가 만만찮게 많은 것이 현실이다. 뭐 돈만 된다면 유지보수가 편한 쪽으로 가는 것이 맞을테니 말이다. 유지보수에 들어가는 인력이나 리소스도 다 돈이니까.

같은 이유로 IaaS의 환경도 함께 생각을 해볼 수 있을 듯 싶다. 앞서 언급했듯 IaaS는 어렵다는 인식이 강한데 이는 UI 자체가 어렵게 만들어져서인 것도 있다.


인프라 시스템적인 부분이 강하기 때문에 설정할 부분이 많은 것이 문제다. 그리고 그 설정이라는 것이 전문적인 영역이고 어렵기 때문에 쉽게 IaaS에 접근하지 못하는 이유가 되기도 한다.


그런 의미에서 이런 어려운, 전문적인 설정을 좀 더 편하게, 초보자들도 손쉽게 따라할 수 있게 UI를 만드는 것이 핵심일진데 그런 부분에 있어서 아마존의 AWS도 많은 발전이 있었던 것이 사실이지만 그보다 상대적으로 훨씬 더 편하게 필요한 것을 제공하는 것이 MS의 애저가 아닐까 싶다.


농담삼아서 하는 얘기인데, 개발자들 사이에서는 개발 툴에 대한 이야기가 많이 나온다. 이클립스(Eclise)를 비롯하여 VI + GCC 등의 얘기를 하기도 하지만 MS의 Visual Studio를 접한 이후에는 다들 한결같이 Visual Studio만한 개발 툴이 없다고 입을 모은다.


이클립스도 다양한 플러그인을 통해 막강한 기능을 제공하지만 개발 툴의 조작의 편의성과 디버깅 기능에 있어서 아직까지 Visual Studio만한 IDE(개발 툴)은 없다고 많은 개발자들이 얘기를 한다.


앞서 OS에 대해서도 얘기했지만 유지보수나 설정 등에 있어서도 Linux나 UNIX보다 Windows OS가 훨씬 편하다. 즉, MS가 적어도 UI에 대해서는 다른 업체들보다는 상대적으로 기술적 우위에 있음은 분명하다.


이런 의미에서 볼 때 MS 애저의 UI는 다른 IaaS의 UI보다 상대적으로 편하고 우수하다고 할 수 있다. 적어도 초보자들이나 처음 클라우드 플랫폼을 접하는 사람들에게도 큰 부담없이 서비스 접근이 용이하다는 얘기다.


손쉽게 접근할 수 있는 MS Azure


앞서 서버 가상화 얘기를 하면서 MS의 Hyper-V에 대해서 얘기를 했다. Hyper-V는 Windows용 가상화 시스템으로 Windows 서버에서는 기본적으로 제공하고 있고 Windows 8.1 이상에서 홈 에디션이 아닌 그 이상의 버전에서 사용할 수 있는 솔루션이다.


Windows 8.1 Pro나 Windows 10 Pro를 사용하고 있다면 Hyper-V를 켜고 한번 VM을 만들고 OS를 설치해서 또 다른 컴퓨터를 만들어서 써보기를 바란다. 경험이 있다면 MS 애저는 무난히 사용할 수 있지 않을까 싶다.


물론 Hyper-V와 애저는 서버 가상화라는 부분에서 일치하고 나머지는 애저가 훨씬 더 큰 개념의 서비스이기는 하지만 처음에 접근할 때에는 위의 방식으로 접근해도 큰 문제는 없을 듯 싶다.


MS가 잘하는 것들 중 가장 좋은 것은 다양한 도움말과 문서 가이드북(eBook)들을 많이 제공한다는 것이며, 전문가 수준만이 이해할 수 있는 문서도 많이 제공하지만 초보자들도 손쉽게 볼 수 있는 가이드북들을 많이 제공한다는 것이다.


Windows용 어플리케이션을 만들 때 개발자들이 가장 많이 보는 문서는 책 보다는 MSDN(Microsoft Development Network)에서 제공하는 문서들이 아닐까 싶다.


양과 질에서 나름 만족스러운 수준을 보여준다. 애저 역시 MS는 초보자들을 위한 다양한 문서와 가이드북들를 제공하고 있다. 이 문서들을 보면서 애저에 입문하면 애저에 대한 거부감이나 부담은 줄어들 것이며 그와 함께 IaaS에 대한 막연한 두려움도 덜어내지 않을까 하는 생각을 해본다.

MS 애저에 대해서 좀 더 자세히 알고 싶다면 아래의 URL을 참고하길 바란다.


MS Azure : https://azure.microsoft.com/ko-kr/


Azure IaaS v2(ARM) 기본 아키텍처 예제 응용편 eBook : http://aka.ms/azure_iaas_p


MS Azure에 들어가서 무료로 사용해볼 수 있으며 다양한 가이드북들이 있으니 들려보길 바란다.


이 콘텐츠에 대해 어떻게 생각하시나요?