ABOUT ME

-

Today
-
Yesterday
-
Total
-
  • 클라우드 서비스에 대한 접근, 그리고 MS Azure 이야기
    Cloud service 2017. 7. 5. 09:39
    반응형

    이 포스트는 MS와 ㅍㅍㅅㅅ의 의뢰를 받아 쓴 글로 ㅍㅍㅅㅅ의 글은 [여기]를 참고하면 되며 MS의 의뢰를 받은 글이기 때문에 MS 친화적으로 썼음을 미리 밝혀드린다. 참고해서 읽어주시길.. ^^;


    뭐 최근 이야기는 아니고 몇년 전부터 꾸준히 얘기가 나오고 있는 IT 이슈들 중에는 클라우드 서비스에 대한 이야기가 있다. 웹 기반의 서비스가 IT 서비스의 메인으로 떠오르면서, 또 인터넷 기반의 인프라가 완전히 자리를 잡은 이후에 서비스를 이용하는 것이나 혹은 서비스를 만드는 것이나 모두 클라우드 기반의 서비스나 시스템을 이용하고자 하는 움직임이 많이 보이고 있으며 또 이런 클라우드 시스템을 제공하는 서비스들도 많아진 것이 사실이다. 그러다보니 왜 클라우드를 사용해야 하는가에 대해서 이런저런 얘기가 많이 나오고 있는 것도 사실이다.


    클라우드 서비스의 이용 방법과 SaaS


    클라우드 서비스를 이용하는 방법은 여러가지가 있겠지만 크게 2개로 나눠서 얘기를 해보도록 하자. 하나는 클라우드 서비스를 통해 만든 서비스를 이용하는 방법이다. 클라우드 서비스 플랫폼 기반으로 만든 서비스를 이용하는 것으로 많이들 사용하는 노트 서비스인 에버노트가 그런 케이스이고(예전에는 아마존의 AWS 기반에서 서비스를 제공했는데 최근에 구글의 GCP 기반으로 옮겼다고 한다) MS에서 제공해주는 오피스 365의 웹 기반 서비스(오피스 온라인이나 원노트 온라인 등)도 MS의 에저(Azur)라는 클라우드 서비스 플랫폼 위에서 제공되는 서비스다. 구글의 대부분의 서비스도 구글이 자체적으로 만든 클라우드 서비스 플랫폼(일부는 앞서 언급한 GCP일 수도 있고 또 자체적으로 만들어서 자체 서비스에만 제공하는 클라우드 플랫폼 서비스일 수도 있다)에서 제공을 한다. 보통 이런 서비스를 SaaS(Software as a Service)라고 하는데 서비스로서의 소프트웨어를 제공한다는 의미에서 그렇게 불린다.


    MS의 SaaS인 MS Office for Web


    앞서 SaaS에 대해서 언급을 했는데 보통 클라우드 서비스에 대해서 얘기를 할 때 3가지의 방식이 있다고 얘기를 한다. 이미 언급한 SaaS가 있고 또 PaaS(Platform as a Service), 그리고 IaaS(Infrastructure as a Service)의 3가지가 있다. PaaS는 플랫폼을 서비스로 제공한다는 것인데 클라우드 서비스를 이용하는 2가지 방법 중 나머지 하나를 얘기할 때 언급하겠다. IaaS 역시 인프라를 서비스로 제공한다는 의미인데 PaaS를 얘기할 때 함께 언급하고자 한다. 그리고 오늘 제대로 얘기할 내용은 SaaS가 아닌 PaaS와 IaaS, 특히 IaaS에 대해서 얘기를 해볼까 한다.


    앞서 얘기한 클라우드 서비스를 이용하는 2가지 방법 중 나머지 하나는 바로 클라우드 서비스를 이용하여 다른 사용자, 혹은 소비자에게 제공할 서비스를 만드는 것이다. 즉, 앞서 언급한 에버노트나 구글 서비스, MS 서비스와 같은 그런 서비스를 만드는 것을 의미하는데 그것을 클라우드 서비스 기반 플랫폼에서 만든다는 것이다. 이것을 만들기 위해 클라우드 서비스의 3가지 중에 PaaS와 IaaS를 이용해야 한다.


    개발을 위한 서비스, 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의 범위로 보는 것이 맞다는 것이 내 생각이다.


    Amazon의 AWS


    앞서 SaaS, PaaS의 대표적인 서비스에 대해서 살펴봤는데 그렇다면 IaaS의 대표적인 서비스는 뭐가 있을까? 많은 사람들이 많이 얘기를 들었을 것이라 생각되는 아마존의 AWS(Amazon Web Service)가 아마도 대표적인 IaaS일 것이다. 또 앞서 잠깐 언급했던 구글의 구글 클라우드 플랫폼(GCP, Google Cloud Platform)도 대표적인 IaaS고 오늘 좀 많이 얘기를 할, 또 앞서 잠깐 언급했던 MS의 에저(Azure)도 대표적인 IaaS라고 할 수 있다. 그 외에 IBM의 소프트레이어(Softlayer)도 IaaS 중에 하나다. 국내 서비스로는 KT의 U Cloud 정도를 얘기할 수 있을 듯 싶다.


    IaaS를 얘기하면서 함께 언급해야 할 부분이 바로 가상화다. 인프라를 서비스로 제공한다고 했을 때 IT 세계에서의 인프라는 인터넷 연결과 같은 통신이 될 수도 있지만 그것보다는 시스템, 즉 PC나 서버 등의 하드웨어를 제공하는 것으로 얘기할 수 있다. 그런데 물리적으로 존재하는 하드웨어를 인터넷을 통해서, 또 웹을 통해서 물리적으로 제공하는 것은 불가능하다. 그래서 가상의 PC, 가상의 서버를 만들어서 제공하는데 이를 서버 가상화라고 얘기한다. 이런 서버 가상화를 얘기할 때에는 가상화 솔루션을 이해해야 하는데 대표적인 가상화 솔루션으로 VMWare, Xen Server 등이 있고 KVM, Oracle VM 등이 있으며 Hyper-V도 있다. IaaS는 이런 가상화 솔루션을 이용하여 가상화된 서버를 제공하거나 아니면 직접 가상화 솔루션을 만들어서 그것을 이용하여 제공한다. 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보다는 쉽게 사용할 수 있기 때문에 빠른 속도로 성장하고 있지 않느냐 하는 생각을 해본다.


    MS Azure 사이트


    애플의 맥 시리즈를 제외한 나머지 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 서버로 갈아타는 경우도 만만찮게 많은 것도 현실이다. 뭐 돈만 된다면 유지보수가 편한 쪽으로 가는 것이 맞을테니 말이다. 유지보수에 들어가는 인력이나 리소스도 다 돈이니.


    MS Azure의 UI


    같은 이유로 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 : https://info.microsoft.com/AP-Azure-CNTNT-FY17-04Apr-26-AzureIaaSv2323284_01Registration-ForminBody.html

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

    반응형

    댓글

Designed by Tistory.