[신현석]MS 클라우드 컴퓨팅과 애저 서비스 플랫폼 이해

일반입력 :2008/12/12 17:08

한국MS 신현석 개발자 및 플랫폼 사업총괄 부장

소프트웨어 기술의 진보가 IT 전 분야에 걸쳐 일반 소비자에게 이르기까지 커다란 영향을 주게 되는 사건은 컴퓨팅 역사를 통틀어 그렇게 많지 않습니다. 개인용 컴퓨터, 인터넷, 웹의 대중화에 이어 클라우드 컴퓨팅은 일반 소비자는 물론 IT 관련 전 산업 분야에 커다란 변혁을 가져 올 중요한 키워드라고 생각합니다. 클라우드 컴퓨팅은 차세대 컴퓨팅 패러다임으로의 변화를 총칭하는데 크게 다음과같이 설명할 수 있을 것 같습니다.-기술적 관점: Grid 컴퓨팅 + 유틸리티 컴퓨팅 + 가상화와 같은 컴퓨팅 기술의 융합-문화적 관점: 같은 인터넷의 자발적 참여 문화의 결합-산업적 관점: 전통 소프트웨어 산업의 일부가 서비스 산업으로 고도화 유행이 대중 문화나 대중 매체 등의 선도에 의해 일시적으로 급격히 나타났다가 사그라지는 부분적인 현상이라고 한다면 트렌드는 시장 전체가 대세로서 어떠한 방향성을 가지게 되는 것으로 대중이나 소비자 전반이 해당 방향으로 광범위한 변화를 일으키는 것 이라고 할 수 있습니다. 많은 사람들이 트렌드에 관심을 갖고 그 뒤를 따라가는 이유는 그 방향으로 움직일 것이라고 믿기 때문입니다. 지금까지 트렌드가된 많은 용어들은 기억하고 발음하기가 쉽다는 특징을 갖고 있습니다. 클라우드 컴퓨팅이라는 용어는 트렌드가 될 자격이 있다고 생각합니다. 2008년 12월 10일 한국과학기술정보연구원(KISTI)가 주최하고, 지식경제부, 방송통신위원회가 후원한 "The Clouds 2008" 행사에는 한국마이크로소프트, 썬, IBM, 인텔, HP 등의 글로벌 기업 외에 KT, SK텔레콤, 삼성SDS 등 국내 대기업이 적극 참여하였고 최초 예상 참가자 300명의 3배를 넘는 900여명이 등록, 당일 700여명이 참석한 것도 클라우드 컴퓨팅이 하나로 트렌드로 자리매김 하고 있다는 것을 증명합니다. 현재 시장 상황을 눈여겨보면 서비스가 새로운 성장 동력으로 발전하고 있습니다. 서비스 지향 아키텍처(SOA), 웹2.0, RIA(Rich Internet Application), SaaS(Software as a Service), 그리고 클라우드 컴퓨팅, 총 5가지가 시장의 관심을 받는 트렌드 입니다. 이 5가지의 공통점은 서비스가 주체라는 것입니다. 하지만, 서비스가 소프트웨어를 완전히 대체하는 일은 없다는 것을 명심해야 합니다. 기업 IT인프라를 살펴보면 서비스를 이용하면 좋을 것과 내부에서 소프트웨어로 운영하면 좋은 것으로 구분할 수 있는데 두 가지 아키텍처상의 Trade Off을 살펴보는 것이 중요합니다. 서울에서 부산 하야트 호텔까지 가는 방법 두 가지를 생각해 보겠습니다.승용차, 편리하지만 경제적으로 비효율적입니다. 대중교통, 즉 기차, 비행기는 약간 불편하지만 가격이 저렴합니다. 그런데 왜 승용차를 이용하는 걸까요? 이유는 하고 싶은 대로 할 수 있기 때문입니다. (통제)언제 출발 할지, 어디로 갈지(고속도로, 국도, 해안도로 등), 아파트 주차장에서 최종 목적지 하야트 호텔 주차장까지 직접 연결된다는 장점이 있습니다. 기차의 경우는 정해진 시간표에 맞춰서 기차를 타야 하고, 정해진 경로, 즉 서울역에서 부산역까지 간 후 다시 대중교통을 이용해야 하며, 시끄러운 승객으로 인해 잠을 설칠 수도 있습니다. 장점은 가격이 싸고, 운전할 필요가 없다는 것이겠죠. (규모의 경제) 어떤 수단이 최선인가요? 이건 비용과 하고 싶은 대로 할 수 있는 것 어디에 우선순위를 둘 것이냐에 따라, 즉 상황에 따라 다를 것 입니다. 약간의 비약 같지만, 기차를 클라우드라고 생각해보겠습니다. 서울역에서 부산역까지 역과 역까지만 타고 갈 수 있다면 승용차에 비해 비용 효율적이겠지만 그렇게 매력적이지 않습니다. 원하는 목적지, 하야트 호텔까지 가려면 버스, 택시, 오토바이, 자전거 등의 다른 운송수단이 필요합니다. 즉, 다양한 교통 수단이 혼합된 하이브리드 형태입니다. 높은 규모의 경제 (기차, 주요 도시간), 중간 정도의 규모의 경제 (버스), 낮은 규모의 경제지만 최대의 유연성을 가진 택시, 오토바이, 자전거 등이 혼재되어 실제 사회를 이루게 됩니다. 이제 운송수단을 정보 시스템으로 바꿔 이야기를 진행해보도록 하겠습니다. 기업 내부 시스템도 마찬가지로 완전한 통제를 원하는 경우 소프트웨어를 직접 설치하여 운영하는 On-Premise (직접 설치), 호스팅 (운영 대행), 클라우드 및 SaaS로 상황에 따라 다른 방식을 선택하게 되기 때문입니다. 즉, 소프트웨어와 서비스는 어느 하나가 다른 하나를 완전히 대체하는 것이 아닌 서로 보완하는 관계로 이해하는 것이 바람직합니다. 마이크로소프트가 이야기하는 소프트웨어 플러스 서비스 전략이란, 전통 소프트웨어 산업의 비즈니스 모델과 서비스 모델의 장점을 결합하여, 각 개인과 조직의 사업 특성에 딱 들어맞는 "최적의 플랫폼"을 조립식으로 구성하고 변형할 수 있도록 돕는 기술 전략과 제품 개발 방식을 의미합니다. 클라우드 컴퓨팅은 서비스에 관계된 이야기 입니다. 포레스터 리서치에 의하면 "고객이 애플리케이션을 구동하고자 할 때 사용량 증가에 따른 인프라의 무한 확장을 제공하며, 고가용성 환경이며, 사용량을 기준으로 비용을 지불하는 컴퓨팅 방식" 이라고 정의하고 있습니다. 클라우드 컴퓨팅을 항공산업이 태동하던 때와 비교하여 설명해 보겠습니다. 한 회사가 대한항공 같은 비즈니스를 시작하려고 합니다. 만약, 직접 공항, 출입국사무소, 세관 등 모든 기반 시설을 다 갖춰야만 할 수 있다면 시작도 못할 것 입니다. 이러한 공항을 포함한 항공 산업에 필요한 모든 기반 시설을 제공하는 것, 이것을 인프라스트럭처 클라우드, Infrastructure as a Service (IaaS)라고 합니다. 고성능의 컴퓨팅 환경을 대여해주는 방식으로 기존의 데이터 센터 비즈니스와 가장 유사하지만 무한 확장 및 탄력성을 제공하는 것이 차이점 입니다. 탄력성은 웹의 불확실성이라는 특징을 해결해주는데 수강 신청 기간, 접속이 폭주하여 서버 장애가 일어날 수 있을 때 많은 서버 자원을 할당하고, 평상시 상황으로 복귀했을때 서버 자원을 바로 이전 상태로 돌릴 수 있는 것을 의미합니다. 실제 운항을 하려면 파일럿, 승무원, 식사 제공, 수화물 처리 등이 필요하게 되는데 이 부분을 플랫폼 클라우드, Platform as a Service(PaaS)라고 합니다. 소프트웨어 사업자들이 소프트웨어의 일부 또는 전부를 개발하여 클라우드에 올릴 수 있도록 <소프트웨어 개발 플랫폼>을 대여하는 방식을 의미합니다. 단순히, 개발자들에게 개발 플랫폼(물건 만드는 공장)을 빌려주느냐, 아니면 개발한 애플리케이션을 곧바로 구동하고 서비스할 수 있는 환경(물건을 배치하고 팔 수 있는 사업장)까지 제공하는가에 따라 DaaS(Development-as-a-Service)와 PaaS를 구분할 수도 있습니다. 마지막으로, 실제 항공기를 만들어 서비스를 해야 합니다. 이 항공기가 실제 서비스 애플리케이션이라고 할 수 있고, 우리가 흔히 알고 있는 애플리케이션 클라우드, Software as a service(SaaS)가 바로 이 영역에 해당 됩니다. 최종적으로 사용자에게 소비되는 것은 애플리케이션 클라우드에 의해 만들어진 서비스지만 (예, CRM) 이 서비스는 플랫폼 클라우드가 제공되어야 만들어 질 수 있고, 인프라스트럭처 클라우드 기반 위에서 구동되기 때문에 서로 연계 되어 있습니다. 한 개인이 컴퓨터를 사용할 때 그 내부가 얼마나 복잡한지 몰라도 쓸 수 있듯이 클라우드라고 불리는 단 한 대의 무한확장이 가능한 고성능 컴퓨터 한 대가 있다고 생각하면 이해가 쉽습니다. 클라우드 컴퓨팅이 트렌드로서 성장하려면 자연스럽게 생태계를 형성해야 합니다. 생태계 형성에 있어 가장 핵심은 바로 플랫폼 클라우드 입니다. 애플리케이션 클라우드, 즉 SaaS 서비스를 개발하려면 지금까지는 서비스를 개발하는 회사가 인증, 권한 관리, 워크플로우, 확장성 및 안정성, 데이터베이스 구축 등을 모두 고려해야 했기 때문에 진입장벽이 높았지만, 플랫폼 클라우드에서 다양한 기능들을 제공하면 어느 누구든 SaaS 서비스를 개발할 수 있고, 글로벌 비즈니스를 수행할 수 있기 때문에 생태계가 자연스럽게 만들어지게 됩니다. 실제로 플랫폼 클라우드, 인프라스트럭처 클라우드가 없이 애플리케이션 클라우드 개발은 정말 어렵습니다. 이런 이유 때문에 현재까지 SaaS 사업자가 많지 않습니다. 하지만 플랫폼, 인프라 클라우드 위에 서비스를 만드는 것은 누구나 할 수 있습니다. 그 서비스는 어떤 것도 될 수 있습니다. 웹메일, 블로그, 위키, 검색을 비롯하여 CRM, ERP, SCM, KMS, 전자세금계산서 등 생각할 수 있는 것은 다 가능합니다. 그리고 이 서비스는 24*7*365 안정성, 확장성이 보장되고, 비용도 사용한 만큼만 지불하는 방식이기 때문에 진입장벽이 낮습니다. 이런 플랫폼 클라우드, 인프라스트럭처 클라우드는 지금 현재도 사용 가능합니다. 마이크로소프트가 2008년 10월 28일, PDC(Professional Developer Conference) 2008에서 윈도우 애저 서비스 플랫폼, CTP (Community Technology Preview) 버전을 발표했습니다. 그때 참석했던 분들은 이 클라우드 플랫폼을 쓸 수 있는 토큰(Token)을 제공 받아서 지금 열심히 서비스를 개발하고 있습니다. 지금 사용하시려면 대기자 명단에 올리시면 추후에 제공 받을 수 있습니다. (www.azure.com) Yankee 그룹에서는 클라우드 컴퓨팅을 크게 4개의 비즈니스 모델로 구분하고 있습니다. 스토리지 제공 사업자 (Storage as a Service), 인프라 제공 사업자 (Infrastructure as a Service), 플랫폼 제공 사업자 (Platform as a Service), 애플리케이션 서비스 사업자(Software as a Service)로 앞에 제가 설명 드린 내용과 거의 다르지 않습니다. 마이크로소프트의 Azure Services Platform을 이 모델로 구분한다면 Windows Azure는 인프라 제공 사업자 (IaaS), Azure Services Platform은 플랫폼 제공 사업자 (PaaS)에 해당 됩니다. 이 플랫폼 위에 개발되는 모든 서비스는 SaaS 서비스가 됩니다. 즉, SaaS 서비스를 위한 토대를 제공하는 것입니다. 정리하면 이렇습니다.윈도우 애저: 클라우드 운영체제입니다. 사진 및 동영상 등의 Blob(바이너리 형식의 큰 파일)을 저장하는 스토리지, 실제 연산 및 처리 작업을 수행하는 컴퓨팅, 서비스에 대한 관리의 역할을 제공합니다. 애저 서비스 플랫폼은 애저가 제공하는 무한한 클라우드 컴퓨팅 파워를 활용하여 누구나 손쉽게 서비스를 개발할 수 있도록 해줍니다. 부연 설명하면 다음과 같습니다.1) 기반 애플리케이션 모듈- Live Services: Live Mesh 개념의 Social Service 애플리케이션 개발- SQL Services: 클라우드 서비스용 SQL Server 연동 모듈- .NET Services: 클라우드 애플리케이션 서비스 개발 프레임웍 2) 전용 애플리케이션 모듈- Sharepoint Services: 협업 관련 서비스 개발- Dynamics CRM Services: CRM 관련 서비스 개발 인터넷의 대역폭, 속도는 급격히 늘어났지만 SaaS 서비스를 개발하는 것은 특정 기업밖에 할 수 없는 영역 이었습니다. 하지만, 이제는 누구나 개발할 수 있는 것이 됐습니다. 또한, Azure는 개방성(Openness), 상호운영성(Interoperability) 철학 위에 설계 되었고 SOAP, REST 등의 표준 프로토콜을 지원 합니다. 현재 소프트웨어 산업에서 가장 중요한 성공 요소는 건전한 기술 생태계 확보에 있으며, 건전한 생태계는 개방성과 상호운영성을 보장하지 않고는 만들어질 수 없고, 철저한 기술 표준 준수에 뿌리를 두고 있어야 합니다. 윈도우 애저 및 애저 서비스 플랫폼은 전통적인 Microsoft의 .NET 기술을 포함하여Java, Ruby, PHP 등의 수많은 개발 언어, Eclipse와 같은 개발 환경을 쓰는 다양한 기술 공동체들이, 국제표준 기술만으로 쉽게 접근할 수 있습니다. 클라우드 상에 구동되는 서비스 개발을 위해 각 언어를 위한 SDK가 제공되는 것이 차별화 요소입니다. 인프라 클라우드 자체로는 기존에 있던 슈퍼컴퓨팅, HPC, Grid 컴퓨팅과의 차별화가 어렵지만, 플랫폼 클라우드를 통해 현재 사용하는 언어를 통해 누구나 서비스를 개발하여 비즈니스가 가능한 것이 특징입니다. 서비스의 혁명이라고 할 수 있습니다. 애저는 모든 클라우드 컴퓨팅 서비스를 다 아우릅니다. 업계 최초로 IaaS, PaaS, AaaS를 결합한 완전한 클라우드 컴퓨팅 기반하에 완전한 SaaS 서비스 환경을 제공하기 때문입니다. 현재 소수의 업체가 제공 가능한 SaaS 서비스(예, CRM, 사진공유 서비스)를 애저가 제공하는 플랫폼, 인프라 클라우드를 기반으로 개인 및 기업이 보유하고 있는 기술로 개발 가능하고, 애저 위에 올리면 글로벌 서비스가 가능해 지기 때문에 개발력 및 아이디어가 뛰어난 대한민국 개발자들에게는 엄청난 기회라고 할 수 있습니다. 애저 서비스 플랫폼을 활용하는 시나리오를 몇 가지 생각해 볼 수 있을 것 같습니다. 첫째, 기존 IT 인프라의 일부를 클라우드 서비스로 이식하거나, 향후 확장될 서비스를 애저에서 개발하고 연동.애저 서비스 플랫폼의 SQL Services, .NET Services를 활용합니다. 기존 인프라가 마이크로소프트 서버 제품으로 구축되어 있지 않아도 관계 없습니다. 표준 웹 기반의 프로토콜만 이용해서 연동 되도록 설계 되어 있기 때문입니다. 최종 사용자들은 스스로가 이용하는 서비스가 기업 내부 인프라에 있는지 클라우드에 있는지 느끼지 못하게 확장 가능합니다. 둘째, 새로운 서비스를 개발하여 사업을 하려는 독립 사업체.기업 대상의 CRM, SCM 또는 일반 소비자 대상의 검색, 블로깅 서비스 등을 서비스로 개발할 수 있습니다. 일반 소비자용 서비스 개발 편의를 위해서 Live 프레임웍과 Live Services 활용할 수 있습니다. 셋째, Startup.Microsoft가 제공하는 BizSpark 프로그램을 이용하면 Azure Service를 포함하여 3년 동안 거의 모든 최신 제품을 무료로 활용할 수 있고, 3년 지난 후에 100달러만 지불하면 활용하던 제품을 그대로 이용할 수 있습니다. 참고로 BizSpark는 소프트웨어 산업 생태계 조성을 위해 진행 되는 Global Startup 프로그램입니다. 넷째, 개발자.언제 어디서나 복잡한 환경 설정 없이 개발 플랫폼으로 사용할 수 있습니다. 개발 도구만 설치하면 애저 플랫폼 에뮬레이터가 내장되어 있어 서비스에 연결되어 있지 않아도 개발의 전 과정을 개별 PC에서 마칠 수 있습니다. 개발이 완료되면 클라우드에 서비스로 올려서 서비스로 제공할 수 있고 수익 창출이 가능합니다. 계속 강조하지만, 개발 언어는 현재 상태에서는 .NET을 제공하고, PHP, Ruby, Java에 대한 SDK를 조만간 제공할 예정입니다. 다섯째, 기업 내부 IT 인프라의 일부를 클라우드 서비스와 연동.엔터프라이즈 기업이 사내 직원의 e-learning을 서비스로 이용하고자 하면 Identity 연동이 가장 큰 이슈가 됩니다. 임직원들이 해당 사이트에 방문하여 별도로 가입한 후 아이디/패스워드를 발급받아야 한다면 불편하고, 교육 이수 여부, 점수 등의 데이터를 연동하는 등의 시스템 통합이 너무 어렵기 때문입니다. 이질적인 인증/권한 부여 정책과 기술로 인해 Single Sign On의 경험을 보안 상의 문제 없이 해결할 수 있어야 하고, 기업 내부에 구축된 비즈니스 프로세스를 클라우드 서비스로 연동 확장하는데 문제가 없어야 엔터프라이즈 기업이 서비스를 사용할 수 있습니다. 이런 부분은 .NET Services의 Access Control, Service Bus, Workflow로 해결 가능 합니다. 애저 서비스 플랫폼을 통해 인터넷 자체가 “공용 서비스 소프트웨어 개발 플랫폼”으로 한 단계 진화하였습니다. 또한, 소프트웨어와 서비스를 쉽게 하나처럼 연결할 수 있게 되었다는 것에 큰 의미가 있습니다. 소프트웨어와 서비스가 상호 보완하면서 기업의 경쟁력을 향상시키고 PC, 웹, 다양한 디바이스를 중단 없이 연결시켜주는 소프트웨어 플러스 서비스 세상이 구체화, 현실화 되고 있습니다.