Digital Recipe

클라우드 컴퓨팅과 마이크로소프트 윈도우 애저 본문

IT 이야기

클라우드 컴퓨팅과 마이크로소프트 윈도우 애저

노리터 2011. 2. 14. 18:10

항상 IT 트렌드를 이야기하다 보면 빠지지 않는 것이 클라우드 컴퓨팅이다. 2010년에 국내에 시험적으로 도입해서 결과를 측정하고 향후 클라우드 전략에 대한 테스트가 진행됐다면, 2011년은 좀 더 구체적이고 다양한 시험이 기다리고 있을 것으로 예상된다. 사실 국내에서는 클라우드 컴퓨팅을 이야기하면서 대부분 가상화 기술만 언급하는 경우가 많은데, 가상화 기술이 클라우드 컴퓨팅에 중요한 핵심이긴 하지만 그 자체가 클라우드 기술이라고 말할 수는 없다.

김영욱 http://YoungWook.com | 자신의 다양한 대형 프로젝트 경험을 바탕으로 저술 및 강연활동을 하고 있으며, 현재는 한국마이크로소프트에서 기술을 전도하는 에반젤리스트로 활동하고 있다.

클라우드 기술이 나타난 것에는 다양한 이유가 있겠지만, 그 중에 몇 가지를 간추려서 보면 가장 먼저 떠오르는 것이 ‘관리의 단순화’이다.

기업이 초기에 자사의 웹 서비스를 시작한다면 자체적으로 서버와 같은 기반 인프라에 대한 투자수요를 예측하고 진행하는 것이 상당히 어렵다. 하지만 클라우드에 있는 인프라를 빌려서 사용한다면 예측하기 어려운 수요에도 유연하게 대처할 수 있고, 비용 역시 효율적으로 지불할 수 있다.

단순히 인프라만 이야기하는 것은 아니다. 개발자들이 클라우드에 있는 소프트웨어 플랫폼을 이용해서 서비스를 개발을 할 수 있게 되면서, 검증되고 견고한 플랫폼을 합리적인 가격과 방법으로 이용할 수 있는 것도 좋은 예라고 말할 수 있다.

유연한 선택이 평생을 좌우한다?
현재 IT 시장 상황을 눈여겨보면 서비스가 새로운 성장 동력으로 발전하고 있는 것을 알 수 있다. 서비스 지향 아키텍처(SOA), 웹 2.0, RIA(Rich Internet Application), SaaS(Software as a Service), 그리고 클라우드 컴퓨팅 등이 시장의 관심을 받는 트렌드로 흔히 이야기 하고 있다. 이들이 가지고 있는 공통점을 찾아보면 바로 ‘서비스가 주체’라는 것이다.

기업 IT 인프라를 살펴보면, 서비스를 이용하면 좋은 것과 내부에서 소프트웨어로 운영하면 좋은 것으로 구분할 수 있다. 예를 들어, 서울에서 부산까지 이동하는 경우 비용과 자율성 중에서 어디에 우선순위를 둘 것이냐에 따라 이동수단을 다르게 판단할 수 있다. 비용 효율성을 따져서 대중교통을 이용한다면 서울역에서 부산역까지 또는 고속터미널에서 부산터미널까지 역과 역 그리고 터미널과 터미널까지만 타고 갈 수 있다.

이런 경우 승용차에 비해 비용적으로는 효율적이지만 자율성의 희생했기 때문에 불편함이 자연스럽게 발생하게 될 것이다. 대중교통을 통해서 원하는 목적지까지 최종적으로 가려면 버스, 택시, 오토바이, 자전거 등의 다른 운송수단이 함께 활용해야 하기 때문에 사용자가 좀 더 치밀하게 외부적인 요소들을 잘 고려해 사용해야 한다.

그럼에도 불구하고 대중교통이 존재하고 잘 활용되는 데에는 가격적인 이점과 높은 수준의 신뢰도가 확보돼 있기 때문이다. 만약 높은 규모의 경제(기차), 중간 정도의 규모의 경제(버스), 낮은 규모의 경제지만 최대의 유연성을 가진 택시, 오토바이, 자전거 등을 잘 혼용해서 활용한다면 각각의 장점을 살려서 극적인 효과를 낼 수 있다.

기업 내부 시스템도 마찬가지다. 완전한 통제를 원하는 경우 소프트웨어를 직접 설치해 운영하는 온 프라미스(직접 설치), 호스팅(운영 대행), 클라우드 및 SaaS로 상황에 따라 방식을 선택하면서 유연성을 가져야 효과를 극대화시킬 수 있다.

클라우드를 이루는 네 가지 축 그리고 애저
성과적인 면을 봤을 때 이제 막 태동하기 시작한 클라우드 컴퓨팅을 필자는 항공회사에 비유해서 설명해보고자 한다. 만약 한 회사가 대한항공과 같은 비즈니스를 시작하려고 한다. 직접 공항, 출입국사무소, 세관 등 모든 기반시설을 다 갖추는 것이 어렵기 때문에, 항공 산업에 필요한 모든 기반 시설을 제공하는 형태의 서비스가 나타났다. 이것을 인프라스트럭처 클라우드, IaaS(Infrastructure as a Service)라고 한다.

IaaS는 고성능 컴퓨팅 환경을 대여해주는 방식으로, 기존의 데이터센터 비즈니스와 가장 유사하지만 무한한 확장과 탄력성을 제공한다는 점이 다르다. 탄력성은 웹의 불확실성이라는 특징을 해결해준다.

예를 들어, 수강신청기간 동안에는 접속이 폭주해 서버장애가 일어날 수 있기 때문에, IaaS를 통해 수강신청기간 동안은 많은 서버자원을 할당하고 평상시 상황으로 복귀했을 때는 서버자원을 바로 이전상태로 돌릴 수 있다. 즉 확장성과 탄력성이 기존의 웹 호스팅과 같은 서비스와 클라우드 서비스를 구별하게 해주는 결정적인 요소라고 할 수 있다.

다시 항공회사 이야기로 돌아와서, 실제 운항을 하려면 파일럿, 승무원, 식사제공, 수화물 처리 등이 필요하다. 클라우드에서는 이 부분을 플랫폼 클라우드, PaaS(Platform as a Service)라고 한다.

소프트웨어 사업자들이 소프트웨어의 일부 또는 전부를 개발해 클라우드에 올릴 수 있도록 소프트웨어 플랫폼 자체를 대여하는 방식을 말한다. 단순히 개발자들에게 개발 플랫폼(물건 만드는 공장)을 빌려주느냐 아니면 개발한 애플리케이션을 곧바로 구동하고 서비스할 수 있는 환경(물건을 배치하고 팔 수 있는 사업장)까지 제공하는가에 따라 DaaS(Development as a Service)와 PaaS로 세분화 할 수 있다.

마지막으로 실제 항공기를 만들어 서비스해야 한다. 이 항공기가 실제 서비스 애플리케이션이라고 할 수 있는데, 우리가 흔히 알고 있는 애플리케이션 클라우드, SaaS(Software as a service)가 바로 이 영역에 해당된다.

최종적으로 사용자에게 소비되는 것은 SaaS에 의해 만들어진 서비스지만(예를 들어 CRM), 이 서비스는 플랫폼 클라우드가 제공돼야 만들어 질 수 있고, 인프라스트럭처 클라우드 기반 위에서 구동되기 때문에 서로 연계돼있다.

한 개인이 컴퓨터를 사용할 때 그 내부가 얼마나 복잡한지 몰라도 쓸 수 있듯, 단순하게 클라우드라고 불리는 단 한 대의 무한확장이 가능한 고성능 컴퓨터가 있다고 생각하면 쉽게 접근할 수 있을 것이다.

이러한 클라우드 컴퓨팅이 제대로 산업에 안착하기 위한 가장 중요한 요소가 바로 자연스러운 생태계 형성이고 생태계 형성에 있어 가장 핵심은 바로 PaaS이다. 지금까지 SaaS 서비스를 개발하려면 서비스 개발사가 인증, 권한관리, 워크플로우, 확장성 및 안정성, 데이터베이스 구축 등 모든 것을 고려해야 했기 때문에 진입장벽이 높았다. 만일 PaaS에서 다양한 기능들을 제공한다면 어느 누구든 SaaS 서비스를 개발할 수 있고 글로벌 비즈니스를 수행할 수 있기 때문에 생태계가 자연스럽게 형성되는 것을 기대할 수 있다.

실제로 과거에는 Paas와 IaaS가 없어 SaaS 개발이 쉽지 않았기에 현재까지도 SaaS를 구현해 비즈니스로 제공하는 업체는 거의 없다. 하지만 Paas와 IaaS 위에 서비스를 만드는 것은 누구나 할 수 있게 됐다. IaaS 위에서 웹메일, 블로그, 위키, 검색을 비롯해 CRM, ERP, SCM, KMS, 전자 세금계산서 등 생각할 수 있는 것은 다 가능하다. 그리고 이 서비스는 24시간 365일 동안 안정성, 확장성이 모두 보장되고 비용도 사용한 만큼만 지불하는 방식이기 때문에 진입장벽이 굉장히 낮다.

이런 Paas와 IaaS는 현재도 사용가능하다. 마이크로소프트가 2008년 10월 28일, PDC(Professional Developer Conference) 2008에서 발표한 윈도우 애저 서비스 플랫폼, CTP(Community Technology Preview)가 지금은 정식 서비스를 시작했기 때문이다.


<화면 1> PDC 2008 행사에서 윈도우 애저를 발표하는 밥 모글리에

윈도우 애저, 개방과 상호운영성으로 똘똘 뭉치다양키(Yankee) 그룹에서는 클라우드 컴퓨팅을 크게 네 개의 비즈니스 모델로 구분하고 있는데, 스토리지 제공 사업자(Storage as a Service), 인프라 제공 사업자(Infrastructure as a Service), 플랫폼 제공 사업자(Platform as a Service), 애플리케이션 서비스 사업자(Software as a Service)로 구별한다. 하지만 이 중의 일부만으로는 완전한 플랫폼이라고 하기에는 많이 불편하기 때문에, 사실상 클라우드 비즈니스를 하는 벤더라면 거의 모든 것을 다 한꺼번에 제공하려고 노력하고 있다.

이 모델로 마이크로소프트의 애저 서비스 플랫폼을 구분한다면 윈도우 애저는 인프라 제공 사업자(IaaS)이고, 애저 서비스 플랫폼은 플랫폼 제공 사업자(PaaS)에 해당된다. 이 플랫폼 위에 개발되는 모든 서비스는 SaaS 서비스가 되며, 다시 말해 SaaS 서비스를 위한 토대를 제공한다는 것이다.

마이크로소프트가 제공하는 클라우드 서비스인 윈도우 애저는 클라우드 운영체제라고 말할 수 있다. 사진 및 동영상 등의 Blob(바이너리 형식의 큰 파일)을 저장하는 스토리지와 실제 연산 및 처리 작업을 수행하는 컴퓨팅 그리고 서비스에 대한 관리 역할을 제공하기 때문에 하나의 완전한 운영체계로 제공된다. 중요한 것은 애저 서비스 플랫폼은 애저가 제공하는 무한한 클라우드 컴퓨팅 파워를 활용해 누구나 손쉽게 서비스를 개발할 수 있도록 해준다는 것이다.

인터넷의 대역폭과 속도는 급격히 늘어났지만 SaaS 서비스를 개발하는 것은 특정 기업밖에 할 수 없는 영역이 됐으며, 이를 실현하기 위해서 애저 플랫폼은 좋은 선택이 될 것이다. 애저는 개방성(Openness), 상호운영성(Interoperability)이란 철학 위에 설계됐고 SOAP, REST 등의 표준 프로토콜을 지원하고 있다. 또 완벽하게 개발 툴과 통합돼 있어 개발/수정/유지보수를 모두 원활하게 할 수 있게 해준다.


<그림 1> 애저 플랫폼의 구성요소

특히 현재 소프트웨어 산업에서 가장 중요한 성공요소가 건전한 기술 생태계 확보라는 것을 손쉽게 확인할 수 있는 사례들이 많다. 그 중의 하나가 바로 안드로이드이다. 안드로이드는 수 많은 개발사들과 개발자들을 잘 끌어들여 엄청난 자생력을 가지고 성장하고 있는 플랫폼이 됐다.

건전한 생태계는 개방성과 상호운영성을 보장하지 않고는 만들어질 수 없고, 철저한 기술표준 준수에 뿌리를 두고 있어야 한다. 그래서 윈도우 애저 및 애저 서비스 플랫폼은 전통적인 마이크로소프트의 .NET 기술을 포함해 자바, Ruby, PHP 등 수 많은 개발언어와 비주얼 스튜디오 외에도 이클립스와 같은 개발환경을 쓰는 다양한 기술 공동체를 구성하고 있으며, 이 모든 것들을 국제표준 기술만으로 쉽게 접근할 수 있게 됐다.


<그림 2> 윈도우 애저의 상호운영성

애저를 사용하려면?
애저를 실행하기 위해서는 몇 가지 미리 챙겨야 할 것들이 있다. 최소한 .NET 프레임워크 3.5 이상이 필요하고 윈도우 서버 2008 혹은 비스타 이상 윈도우7 에서만 동작한다. 비주얼 스튜디오 2008과 2010에서 샘플을 돌려볼 수 있다.

여기까지 준비됐다면 애저 사이트(http://www.microsoft. com/windowsazure/)에서 리소스 메뉴 중 ‘Microsoft .NET Services SDK’를 다운로드해 설치한다. 그리고 관련 샘플들을 확인하기 위해서 애저 사이트에서 리소스 메뉴 중 ‘Azure Services Training Kit’을 다운로드해 설치한다.


<화면 2> Azure Services Training Kit

<화면 2>에서 보듯, Azure Services Training Kit을 설치하면 다양한 폴더들이 생성되며, 이중 Labs에 들어있는 샘플을 돌려보면서 .NET 서비스 버스의 원리를 파악해 볼 수 있다.

‘IntroServiceBus’ 폴더가 액세스 컨트롤 서비스와 .NET 서비스 버스가 연계돼 있어 처음 접하기에는 적당하기 때문에 실행해 볼 것을 권한다. 또 이 폴더에 위치한 Lab.docx 문서를 참고해 하나하나 따라하면 별다른 무리 없이 실행할 수 있다.

.NET 서비스를 이용하기 위해 반드시 필요한 Invitation code는 애저 사이트에서 신청하면 하루 이내에 발급받을 수 있다. 따라서 Training Kit에 있는 lab을 따라하기 전, 애저 사이트에서 코드를 발급받아 사용자로 등록하는 것이 필요하다. 이때 각 개인별 Live ID가 필요하며 Live ID 별로 invitation code가 발급된다. 애저 사이트의 메뉴 맨 오른쪽에 Sing In을 통해 등록 사이트에 가면, 아래와 같이 화면 중간에 ‘Register for Services’ 메뉴가 보인다. 이를 클릭하면 마이크로소프트 커넥트 사이트(<화면 3> 참조)로 이동한다.


<화면 3> 마이크로소프트 커넥트 사이트

정상적인 사용을 위해서 반드시 Live ID가 필요하며, 각 개인의 Live ID 등록 시 기재했던 메일 주소로 Invitation code가 발송되기 때문에 등록되어 있는 메일 아이디를 입력할 때 주의해야 한다. 마이크로소프트로부터 이메일 주소 확인 메일을 받아 확인해주고 간단한 설문을 마치면 신청완료 화면이 뜬다(<화면 4> 참조).


<화면 4> 신청완료 메시지

이후 하루 이내에 두 통의 메일이 오는데, 한 통은 신청완료 확인 및 안내 메일이고 나중에 오는 “Do not delete”로 시작하는 메일이 바로 Invitation code를 담고 있다. 기재돼 있는 Invitation code를 가지고 애저 사이트에서 사용자 등록을 실행하면 된다. 등록과정은 앞서 언급한 IntroServiceBus Lab 문서에 자세히 나와 있다.

Invitation code를 신청하고 이를 통해 애저 사이트에 자신의 계정을 등록하고, lab 문서에 나와 있는 대로 애저 사이트에 자신의 솔루션 이름과 CardSpace 카드를 등록하면 <화면 5>와 같은 화면을 애저 사이트에서 확인할 수 있다. <화면 5>를 보면 Open_Interop 이라는 솔루션이 등록돼 있고 두 개의 CardSpace 카드가 각 머신별로 하나씩 등록돼 있는 것을 볼 수 있다.

정상적으로 설정이 끝나고 lab을 실행하면, 서버 실행과 클라이언트 실행 시 각각 한번씩 CardSpace 카드를 선택하라는 화면이 뜨고 난 후 데모가 실행되는 것을 볼 수 있다(<화면 6> 참조).


<화면 5> 등록된 .NET 서비스


<화면 6> 실행된 lab 샘플

정리하며
개발자들은 아직 피부로 느끼지 못하지만 생각보다 훨씬 더 가까운 곳에 클라우드 컴퓨팅은 구체적인 모습으로 다가와 있다. 2월 코드파티에서도 업계의 전문가들을 모시고 클라우드에 대한 이야기를 할 예정이다. 자세한 업데이트는 영욱닷컴(http:// youngwook.com)을 참조하길 바라며, 많은 참여와 관심을 부탁하는 바이다.




REFERENCE

http://www.imaso.co.kr/?doc=bbs/gnuboard.php&bo_table=article&wr_id=36757

Comments