공개 SW 기반클라우드컴퓨팅기술현황 Trend of Open Source SW-based Cloud Computing Technology 소프트웨어기술의미래전망특집 정의정 (U.J. Jeong) 강동재 (D.J. Kang) 정성인 (S.I. Jung) 고성능컴퓨팅 SW 연구팀 UST 연수생 고성능컴퓨팅 SW 연구팀선임연구원 고성능컴퓨팅 SW 연구팀책임연구원 목차 Ⅰ. 서론 Ⅱ. 클라우드 IaaS 구조와공개SW Ⅲ. 클라우드운영관리기술 Ⅳ. 다중클라우드호환기술 컴퓨팅자원을빌려쓰는시대를여는클라우드컴퓨팅은북미, 유럽뿐만아니라아시아전세계적으로확산되고있는추세이다. 더구나 SW 기술개발의새로운방식으로부상한공개 SW도클라우드컴퓨팅의빠른확산에역할을하며, 여러분야의클라우드요소기술발전에도기여하고있다. 따라서본고에서는오픈프로젝트로진화되고있는클라우드기술을살펴본다. 먼저, 클라우드인프라스트럭처서비스 (IaaS: Infrastructure as a Service) 를제공하기위한클라우드컴퓨팅구조와구성요소기술을분석하고, 관련공개 SW 기술들을분석한다. 여기서 IaaS 클라우드를운영, 관리하는기술을보다자세히분석하고비교한다. 마지막으로클라우드간호환성문제를해결하는공개 SW 기술도살펴본다. C 2011 한국전자통신연구원 43
Ⅰ. 서론클라우드컴퓨팅은컴퓨팅자원을빌려쓰는시대를열고있다. 서버, 스토리지, SW 등정보통신기술 (ICT) 의자원을구매하여소유하지않고, 필요시인터넷을통해서비스형태 (as a service) 로이용하는방식이다. 모바일시장의성장과함께모바일과결합하면서 ICT 분야의새로운패러다임으로부상하고있다. 클라우드컴퓨팅용어는 2006 년 9월구글직원인 Christophe Bisciglia 가유휴컴퓨팅자원에대한활용을제안하면서처음으로사용하였다 [1]. 공개SW 는클라우드컴퓨팅용어가출현하기휠씬이전인 1990 년대부터활성화되어, IT 산업에주요한역할을하는요인이되었다. 즉과거에는개인개발자의취미활동으로공개SW 를개발하고활용하였으나, 현재의공개SW 는기업개발자가많이참여하는산업표준기술, 제품화를위한기술, 기술검증방법으로활용되고있다. 공개SW 와클라우드컴퓨팅두기술이출현한시기는다르지만, 클라우드가빠르게확산되는데에있어공개SW 의영향도크다고생각된다. 클라우드의핵심기술인가상화기술이오픈프로젝트로진행되어, 리눅스공식버전 (mainline kernel) 에추가되었기때문이다. Xen 기술은 2007 년 11월, KVM(Kernelbased Virtual Machine) 기술은 2007 년 9월에리눅스커널에포함되어, 공개SW 기반의클라우드컴퓨팅을구축할수있도록되었다. 이외에도클라우드모니터링, 사용자인증, 대용량데이터관리등클라우드컴퓨팅분야의다양한기술들이공개되어활용이가능한상황이다. 라이선스측면에서도공개 SW는클라우드와의활용과부합된다. 기존의시스템 SW 라이선스정책은일반적으로사용자의수나구축된시스템의규격을 기반으로결정되었으나, 클라우드환경은이러한라이선스규칙을적용하는데다소애매한부분이있기때문이다. 그러나무엇보다도그동안의 HW 기술의발전, 네트워크기술의발전과유틸리티컴퓨팅등컴퓨터및 SW 기술의지속적인발전이오늘의클라우드컴퓨팅을탄생시켰다. 가트너에따르면 2010 년까지글로벌 2천대기업의 75% 에서사용됐던공개SW 가 2016 년에는 99% 까지확대될것으로전망한다. 특히클라우드컴퓨팅환경구축에공개SW 를활용하는추세로, 구글, 아마존, IBM 등에서도이미공개SW 를활용하고있다. 또한클라우드기반애플리케이션프레임워크구축에도공개SW 가활용되고있다. 구글 App Engine 과 NASA 의 Nebula 는공개SW 기반의웹애플리케이션프레임워크인 django 를기반으로서비스를제공한다. 아마존 EC2(Elastic Computing Cloud) 도 django, jboss, rails 등의공개SW 를사용한다. 따라서전세계많은기업들은빠르게시장의요구에대응하고제품을업그레이드하기위해공개SW 기술을활용하고있다. 구글, 아마존, KT, SKC&C, 삼성등국내외민간기업의클라우드기술확보뿐만아니라, 각국의정부및공공기관은클라우드컴퓨팅도입과국가차원의육성전략을수립하고있다. 미국의경우, 그린 IT 실현이라는목표로공공업무의클라우드화를추진하고있다. 영국은공개SW 기반의정부클라우드를구축하고, 정부앱스토어를통한자유로운정보공유를유도한다. 일본은자국기업으로전자정부및전자지자체클라우드를 2015 년까지구축하여새로운행정개혁을추진하고있다. 중국의경우, SW 산업경쟁력강화를위해우시, 북경, 청도, 상해등 10개이상의도시에클라우드기반전자정부, 게임, 번역, 전자진료등의서비스를구축하는시범사업을 2011 년에추 44 C 2011 한국전자통신연구원
정의정외 / 공개 SW 기반클라우드컴퓨팅기술현황 진하였다. 이외, 대만, 러시아, 말레이시아, 프랑스, 덴마크등많은국가에서클라우드컴퓨팅을도입하거나계획을추진하고있다. 따라서본고에서는클라우드컴퓨팅확산에있어주요한역할을하는공개SW 기술현황을살펴본다. 특히클라우드인프라스트럭처서비스 (IaaS: Infrastructure as a Service) 단계의기술과상호호환성에대한공개SW 기술을살펴보고자한다. Ⅱ. 클라우드 IaaS 구조와공개SW 1. 구조및기능클라우드 IaaS 서비스는가상의서버자원을제공하고사용한만큼비용을청구하는서비스이다. 사용자는 IaaS 서비스를이용하여회사시스템을운용하고업무환경을구축할수도있다. 사용할가상서버를만들고부팅하는데몇분정도의매우짧은시간이소요되며, 또한필요에따라컴퓨팅용량을늘리 거나줄여야하는경우에도신속하게사용용량을조절할수있다. 서비스가종료되면할당을받은자원은반환되고종료된다. 이모든서비스는가상화기술이라는핵심기술이존재하기때문이다. 이렇게가상자원으로제공받을수있는서비스는 CPU, 메모리등을활용한컴퓨팅서비스, 데이터를보관하고관리할수있는스토리지서비스와분산응용 SW 간통신을위한메시지큐서비스등이존재한다. 이러한서비스를제공하는대표적인기업은아마존, 구글, MS, IBM, Rackspace, Niravanix 등여러서비스사업자가있다. ( 그림 1) 은 IaaS 서비스를제공하기위한클라우드스택의개념적인구조도이며, 크게 4개부분으로구성되어있다. 첫째, 가상화층으로가장핵심적인부분이며, 물리적자원을가상화하고가상머신의동작을제어, 관리하는부분이다. 둘째, 사용자인증, 과금등 IaaS 서비스의제반사항을관리하는서비스관리층이다. 그리고셋째클라우드관리층은물리 Presentation Layer Service Portal Integrated Admin Portal End User Portal Open API Service Layer User Manager Account Manage Authentication Manage Virtualization Layer Virtualization Manager Hypervisor Load Balancing Physical Resource Layer Physical Resource Resource Abstractor CPU VM Manage Auto Scaling Service Manager Service Catalog Service Delivery Snapshot Provisioning Inter-Cloud Manager Inter Cloud Resource Manage Storage Manager Storage Manage Virtual Disk Manage Service Repository Manager Memory Storage Network Security Manage SLA Manage Cloud Management Software & Patch Manage Configuration Manage Audit Manage Virtualized Resource Management VM Configuration Manage Image Lifecycle Manage VM Monitoring VM Template Manage Physical Resource Management Capacity & Performance Manage Incident & Problem Manage Resource Monitoring & Event Manage License Manage Asset Manage ( 그림 1) 클라우드인프라서비스 (IaaS) 스택구조 C 2011 한국전자통신연구원 45
적인자원뿐만아니라, 가상자원관리를기반으로클라우드인프라를제어하고관리한다. 마지막으로 IaaS 서비스의창구인인터페이스층이다. 이인터페이스층은서비스사업자, 표준단체별로차이가존재하여표준화된인터페이스가존재하지않는상황이다. 따라서다중클라우드간 IaaS 자원을공유하고연계하는클라우드연동및호환을위해, 표준화문제를해결하는오픈프로젝트가있다. 이프로젝트의소개는 Ⅳ장에서한다. IaaS 서비스스택을구성하기위한필수적인기능들은다음과같다. 가상머신모니터 ( 하이퍼바이저 ) 기술 : 서버자원을가상화 가상머신모니터기능제어기술 : 가상머신모니터기능을사용하기위한여러인터페이스제공 스토리지가상화기술 : 스토리지가상화및대용량스토리지구축 가상머신이미지관리기술 : 가상머신등록, 저장관리및검색 가상머신시스템제어기술 : 가상자원으로 IaaS 클라우드를구축하고관리 물리시스템제어기술 : 물리자원을제어, 관리 관리자동화기술 : 대규모 IaaS 클라우드시스템을관리 사용자인증기술 : 서비스가입자관리, 접근제어 서비스품질관리기술 : 사용자서비스의품질관리및문제해결 미터링기술 : 자원사용량에따른과금 가상머신보안기술 : 가상머신모니터의보안기능을세분화하는배경은공개SW 로 IaaS 클라우드를구축할때어떤종류의공개SW 가있는지를파악하기위해서이다. 또다른이유는여러공개 SW 들의기능, 특징등이상이하여, IaaS 클라우드플랫 폼의기본기능을정립하여이들공개 SW 의기능과 수준을비교, 분석하기위해서이다. 마지막배경은 IaaS 클라우드구축을위한클라우드 OE(Operating Environment) 를정립하고자한다. 기존의운영체제 는물리적자원을제어, 관리한다면, 클라우드 OE 는 가상머신을제어관리하기때문에운영체제와유사 한개념으로정리할수있다. 분류된각세부기능별공개 SW 현황을다음절에 서소개한다. 2. 기능별공개 SW 본절에서는 IaaS 클라우드플랫폼의기본기능에 대한공개 SW 를나열한다. < 표 1> 은 IaaS 클라우드 플랫폼의기본기능에대한공개 SW 종류이다. 먼저, 가상머신모니터기술경우, 3 가지의공개 SW 가있다. Xen 는많은기업에의해서개발되어, 개 < 표 1> IaaS 클라우드구축에활용될수있는공개 SW 현황 기본기능 가상머신모니터기술 가상머신모니터기능제어기술 스토리지가상화기술 가상머신이미지관리기술 가상머신시스템제어기술 물리시스템제어기술 관리자동화기술 사용자인증기술 서비스품질관리기술 미터링기술 종류 Xen, KVM, VirtualBox Libvirt, Ovirt, virt-manager LVM, Hadoop, GFarm, Swift Glance, Aeolus OpenStack, CloudStack, Eucalyptus, Nimbus, OpenNebula, ConVirt Groundwork, Zabbix, Nagios, Hinemos, Ganglia Chef, Crowbar OpenSSO(Open-source Single Sign- On), Higgins, Shibboleth Zabbix, Ganglia 등이용가능하나, 서비스문제해결기능부족 Ovirt 등이용가능하나, 자원모니터링만가능하고과금기능부족 가상머신보안기술 - 46 C 2011 한국전자통신연구원
정의정외 / 공개 SW 기반클라우드컴퓨팅기술현황 발의공개성도높고, 안정성도높다. 기술의로드맵등기술추가방침등도명확하다. 최근 5년간의버그대응률은 69% 이다. KVM은레드헷의참여와리눅스커널버전에포함되어안정된개발이진행되고있다. 버그대응률은지난 5년간 65% 로기록되고있다. VirtualBox 의개발주체는오라클이며, 개발로드맵이공개되어있지않다. 1일다운로드수가 2만건을기록하고있어인기도가높다고할수있으며, 총다운로드수는 600만건이다. 버그대응률도다른공개SW 기술과유사한 64% 이다. 가상머신라이브이전등세부기능면에서도세가지 SW는유사하다. 가상머신모니터기능제어기술경우, 기능면에서세가지모두유사하다. ovirt 는주로 KVM 전용, Virt-manager 는주로 KVM, Xen 등에사용된다. 하지만 HW 감시기능또는스토리지기능등에서는 XenServer 와같은상용SW 보다기능이떨어진다. 스토리지가상화경우, 기능면에서큰차이가없지만, 이용상황에따라큰차이가생길가능성이있다. 가상머신이미지관리기술은가상머신생성관리측면의템플릿기능과배치기능, 이미지저장공간효율성을위한중복제거기능으로세분화할수있다. 그러나이러한기능을만족하는단독적인공개SW 프로젝트는존재하지않는것으로보이며, 다른공개 SW 프로젝트에포함되어기술개발이진행되고있다. 물리시스템제어기술은이미익숙한시스템관리기술이다. 따라서많은공개 SW가존재하지만, Zabbix와 Nagios 가개발의안정성, 지원성면에서다른공개SW 보다우수하다. Tivoli 등상용SW 와기본적인기능에서는동등한기능을가지고있다, 다만, HW 감시, 보안관리등의부가적인기능에서는차이를보인다. 또한가상머신감시기능은유상으로만사용할수있다. 관리자동화기술은대규모클라우드구축시, 관 리의편의성과자원운영의효율성을고려하는세부기능이요구된다. 즉클라우드의부하를고려한자동적인자원할당과분배기능은필수적이다, 관련되는공개SW 활동은활발하지않는것으로판단된다. 사용자인증기술경우 OpenSSO(Open-source Single Sign-On) 가안정성, 기능성, 지원성등모든면에서다른공개SW 보다우수하다. 서비스품질관리및미터링기술경우는단독적인공개SW 가존재하지않는다. 즉서비스품질관리와과금을위한자원사용량모니터링기능은다른공개SW 에존재하지만, 서비스품질을해결, 관리하고사용량에따른과금기능에대한공개SW 는없는것으로판단된다. 마지막으로 IaaS 클라우드구축에대표역할을하는가상머신시스템제어기술이며, OpenStack, Eucalyptus 등이해당된다. 앞절에서설명했듯이 IaaS 클라우드스택의세부기능을분류하였지만, 가상머신시스템제어기술이다른기술들을결합하여클라우드스택기능을제공한다. 그러나, 가상머신보안등앞절에서세분화한기능모두를잘결합하여제공하지는못하는것같다. 따라서, OpenStack 등의기술현황은다음장에서자세히다룬다. Ⅲ. 클라우드운영관리기술 1. OpenStack Nova OpenStack 은 RackSpace 와 NASA 가연합하여만든오픈프로젝트이며, IaaS 환경을구축하고관리하는 Nova, 클라우드스토리지서비스환경을구축하고관리하는 Swift, 가상머신이미지를등록하고관리하는 Glance 로나뉜다. Glance 는아마존의 S3로구축한스토리지클라우드도서비스구축이가능하다 [2]. 본고에서는 IaaS 환경을관리하는 Nova 에 C 2011 한국전자통신연구원 47
클라우드관리자모듈 OpenStack API API 서버 EC2 API REST Euca2ools 대해중점적으로기술한다. 인증관리자 클라우드컨트롤러 객체저장소 ( 그림 2) Nova 구조도 Nova 는 private, public, hybrid 방식을모두지 원하며, 파이션 (python) 으로구현되어있다 [2]. Nova 는 ( 그림 2) 와같이인증관리자, API(Application Program Interface) 서버, 객체저장소및가상머신 을관리하는 5 개의컴포넌트로구성되어있다. 인증관리자는접속하는사용자의공인키와비밀 키를확인하고해당사용자의접속여부와접근권한 을결정한다. API 서버는사용자가사용할수있는 인터페이스를제공하고사용자로부터들어온요청을 클라우드컨트롤러로전송하는역할을한다. 볼륨컨트롤러 네트워크컨트롤러 스케줄러 컴퓨트컨트롤러 가상머신을관리하는 5 개의컴포넌트는가상머신 이미지를저장하고관리하는객체저장소, 가상머신 이사용할스토리지공간을할당하고관리하는볼륨 컨트롤러, 가상머신에 IP 를할당하고프로젝트단위 로가상머신네트워크를연결하는네트워크컨트롤 러, 가상머신을생성하고관리하는컴퓨트컨트롤러 및가상머신이저장될물리적서버를선택하는스케 줄러로구성된다. 이중볼륨컨트롤러, 네트워크컨 트롤러, 컴퓨트컨트롤러는복수개의서버운용이가 능하며컴퓨트컨트롤러는클라우드컨트롤러와직 접통신하지않고, 스케줄러를통해데이터를주고 받는다. 이들컨트롤러는 Xen, KVM 등가상머신모 니터기술과연계되어동작한다. Nova 에서사용자는전체관리자, 프로젝트관리자, 네트워크관리자, IT 보안관리자, 개발자의다섯가지역할로구분되며기능에대한접근권한이세부적으로나누어진다. 또한사용자의역할에따라보안그룹으로사용자를묶어서사용자의접근권한을더쉽게관리할수도있다. 사용자는 REST(Representational State Transfer) 기반의통신을이용하여가상머신과서비스를관리할수있으며아마존의 EC2 API와 OpenStack 에서개발한 API의사용이가능하다. EC2 API를사용하는이유는기존에다수의사용자를보유하고있는 EC2의 API를제공함으로써운용상의확장성및범용성을지원한다. 추가적으로 Nova 는사용편의성을제공하기위하여 CUI(Cummand User Interface) 뿐만아니라웹개발프레임워크인 django 를이용한웹 GUI(Graphic User Interface) 툴도제공한다. 2. Eucalyptus Eucalyptus 는 Elastic Utility Computing Architecture for Linking Your Programs To Useful Systems 의약자로 private, public, hybrid 방식을지원하는클라우드환경구축을위한공개SW 이다. 캘리포니아산타바바라대학에서연구프로젝트로시작되었으며 Eucalyptus Inc. 에서상업화한후에도오픈프로젝트로유지, 개발되고있다 [3]. Eucalyptus 는 ( 그림 3) 과같이클라우드컨트롤러, 클러스터컨트롤러, 노드컨트롤러, Walrus, 스토리지컨트롤러로구성되어있다. 클라우드컨트롤러는전체시스템과사용자의접근을관리하는컨트롤러이다. 클라우드에접근하려면클라우드컨트롤러를거쳐야하며, 사용자는웹이나 SOAP(Simple Ob- 48 C 2011 한국전자통신연구원
정의정외 / 공개 SW 기반클라우드컴퓨팅기술현황 Web Browser SOAP-based tools REST-based tools 클라우드컨트롤러 클러스터컨트롤러스토리지컨트롤러 노드컨트롤러 노드컨트롤러 노드컨트롤러 ject Access Protocol), REST 기반의 API 를이용하 여클라우드컨트롤러와통신할수있다. 클러스터컨트롤러는 Eucalyptus 클라우드를구 성하기위해구축한클러스터를관리한다. Eucalyptus 는다수의클러스터로구축할수있으며각클러 스터별로클러스터컨트롤러를두어클러스터를구 성하는서버를관리한다. 따라서클러스터컨트롤러 는클러스터에연결되어있는노드컨트롤러에관한 모든정보를유지하며, 클러스터레벨의스케줄링과 네트워크를제어한다. 노드컨트롤러는각서버에동작하면서서버를관 리하는컨트롤러이다. 이것은클러스터를구성하는 서버의호스트운영체제와하이퍼바이저를제어하고 클러스터컨트롤러의요청에따라가상머신을실행 할서버를선택하고실행한다. Walrus 는 bucket 단위의저장소를구현한것으 로아마존의 S3 와호환하는 SOAP 와 REST 인터페 이스를통하여사용할수있다. 스토리지컨트롤러는아마존의 EBS 방식을이용 한블록기반스토리지이다. 아마존의 S3 인터페이 스를제공하고, 가상머신이미지를저장하고접근하 는데사용된다. 이렇게아마존의 S3 를제공함으로써 사용자의편의성을제공할수있으며더안정적인서 비스를제공할수있다. Walrus 클러스터컨트롤러스토리지컨트롤러 ( 그림 3) Eucalyptus 구조도 노드컨트롤러 노드컨트롤러 노드컨트롤러 Eucalyptus 는현재 Xen과 KVM을이용하여구축할수있으며 VMWare 도지원할수있도록개발중이다. 호스트운영체제는 CentOS, opensuse, Debian, Fedora 를지원한다. 사용자는 Eucalyptus 클라우드를관리하는관리자와생성된가상머신을관리하는사용자로나뉜다. 이들은 Eucalyptus 에서제공하는 Euca2ools 를이용한 CUI와웹API 를이용한 GUI 툴을이용하여클라우드컨트롤러에접근하여관리한다. 그러나 GUI 툴은 CUI에비해사용할수있는기능이제한적이다. 3. OpenNebula OpenNebula 는 IaaS 클라우드시스템을구축하기위한공개SW 로 Universidad Complutense de Madrid 의 DSA-research Group 에서처음개발하였으며 private, public, hybrid 형태의클라우드구축이가능하다 [4]. OpenNebula 는 ( 그림 4) 와같이 4개의관리모듈로구성되어있다. 가상머신을실행하고관리하는컴퓨트모듈, 가상머신의이미지와가상머신이사용할저장공간을관리하는스토리지모듈, 가상머신의네트워크를관리하는네트워크모듈, 외부클라우드와연결하여관리하는클라우드모듈이있다. 또한중간계층에있는가상 물리자원관리자는사용자의요청을받아서전달하는요청관리자와가상머신관리자, 호스트관리자, 가상네트워크관리자가있어자 Interfaces 스케줄러 OpenNebula API 가상 물리자원관리자 Driver API Compute Storage Network Cloud ( 그림 4) OpenNebula 구조도 C 2011 한국전자통신연구원 49
원을효과적으로사용할수있게한다. 사용자와클라우드관리자는 OpenNebula 에서제공하는인터페이스를이용하여클라우드를사용하고관리할수있다. 이때요청이들어온작업은자원정책과작업부하에따라스케줄러에의해처리된다 [5]. OpenNebula 에서는가상머신을띄울때가상머신의속성을나열한가상머신정의파일 (VMDF: Virtual Machine Definition File) 을함께생성해야한다. 그러나사용자의요구에모두적합하는파일을만드는것은어렵기때문에, DNS나사용자의 SSH key 등대표적인속성은가상머신을시작할때수정할수있다 [4]. 사용자에대한기준은 Eucalyptus 처럼 OpenNebula 클라우드를관리하는관리자와생성된가상머신을사용하고가상머신에할당된네트워크를관리하는사용자로나누며, 사용자에게는클라우드제어를위한 CUI가제공된다 [5]. 또한아마존의 EC2, OGF(Open Grid Forum) 의 OCCI(Open Cloud Computing Interface), vcloud 인터페이스를모두지원하여사용자의편의성을높였다 [6]. 4. CloudStack CloudStack 은 private, public, hybrid 방식을지원하는공개 SW로 Citrix 와 Cloud.com 에서개발하였다 [4]. CloudStack 은 ( 그림 5) 와같이 3 개의컨트롤러와 사용자를위한 API, 그리고중간계층에관리엔진을 두어사용자의요청에따라자원을효율적으로관리 할수있도록하였다 [7]. CloudStack 은사용자를관리자, 도메인관리자, 모니터링관리자, 사용자로나눈다. 관리자는전체 클라우드를관리하는권한을가지고, 도메인관리자 는클라우드에가상머신을생성하고관리하는등클 라우드서비스를관리하는권한을가진다. 모니터링 관리자는가상머신관리권한은없지만서비스환경 을모니터링할수있다. 사용자는도메인관리자가 제공하는가상머신서비스를이용할수있다. 제공하는 API 도사용자의권한에따라클라우드 관리자, 업체별관리자, 사용자로나누고있다. 클라 우드관리자는클라우드관리를위한모든 API 를사 용할수있고, 업체별관리자는가상머신서비스와 관련된 API 만사용할수있다. 사용자는가상머신사 용과관련된 API 만사용할수있다. CloudStack 은 AJAX(Asynchronous JavaScript and XML) 기반의 GUI 뿐만아니라, 웹인터페이스 컴퓨트컨트롤러 End Users CloudStack API CloudStack 관리엔진 네트워크컨트롤러 ( 그림 5) CloudStack 구조도 스토리지컨트롤러 운영체제 Hypervisor < 표 2> 클라우드운영관리 SW 비교 OpenStack Eucalyptus OpenNebula CloudStack Ubuntu, CentOS KVM, Xen 지원 Ubuntu, Debian, CentOS, REHL, Fedora, OpenSUSE KVM, Xen 지원 VMWare 지원예정 Ubuntu, Debian, OpenSUSE, CentOS, RHEL, Mac OS KVM, Xen, VMWare 지원 RHEL, CentOS, Ubuntu, Fedora KVM, Xen 지원 사용자요청방식 REST SOAP, REST CUI REST 개발언어 Python C, Java C/C++, Ruby 등 Java 50 C 2011 한국전자통신연구원
정의정외 / 공개 SW 기반클라우드컴퓨팅기술현황 와 CUI, REST 방식의통신을통해사용자의요청을 받아서내부컴포넌트로전달한다. < 표 2> 는소개한 4 가지클라우드운영관리공개 SW 의특징을정리한것이다. Ⅳ. 다중클라우드호환기술 IaaS 클라우드서비스사업자는서비스를위해자 신의인터페이스 (unique API) 를제공하며, 사용자는 이러한인터페이스를사용하여클라우드응용을개 발하고사용한다. 하지만서로다른클라우드인터페 이스로, 사용자는매번클라우드사업자에맞추어사 용방식이나응용을변경해야하는문제점이있다. 따 라서이러한문제점을해결하기위한공개 SW 를본 장에서소개한다. 1. Deltacloud Deltacloud 는클라우드사업자간인터페이스비 호환성의문제점을해결하고자하는공개 SW 이다 [8]. Deltacloud 는 REST 기반의 API 를제공 (Deltacloud API) 하며, Deltacloud API 를이용하여개발자는클 라우드응용을개발하고, 사용자는클라우드사업자 의서비스를이용할수있다. 즉, Deltacloud API 기 반의응용은클라우드에서수정없이사용될수있다. Deltacloud 프레임워크는 ( 그림 6) 과같이클라우드 사업자의 API (native API) 와 Deltacloud API(REST API) 를연결하는드라이버를제공한다. REST API REST API responder Driver API Deltacloud-framework Deltacloud driver ( 그림 6) Deltacloud 의동작원리 native API 현재제공되는드라이버는 EC2 드라이버, Eucalyptus 드라이버, RHEV-M 드라이버, Rackspace 드라이버, OpenNebula 드라이버, IBM Smartcloud 드라이버, RimuHosting 등이다. Deltacloud 프레임워크는웹서버방식으로운용된다. 즉사용자는직접 Deltacloud API를자신의프로그램에서사용하는것이아니라, Deltacloud API를지원하는웹서버를이용한다. 루비 (ruby) 로구현되어있으며, Deltcloud 프레임워크를설치 (# gem install Deltacloud-core) 후웹서버구동시사용할클라우드사업자의드라이버를지정 ($ Deltacloudd I sbc) 할수있다. 또한다른클라우드를사용하기위해서 Deltacloud 프레임워크동작중에도동적으로드라이버를변경 (http:// localhost:3001/api; driver=ec2; providers-euwest-1) 할수있다. Deltacloud API는 HTTP authentication 방식으로사용자을인증하며, 별도의로그인과정을거치지않는다. Deltacloud API는클라우드자원을표현하기위해서 HW 사양 (hardware profiles), 클라우드위치 (realms), 클라우드이미지 (images) 와실제클라우드시스템의현황 (instances) API를제공한다. 이들 API로사용자는사용할클라우드의세부사양과클라우드가있는위치, 제공되는 SW 환경등의동작사용을확인할수있다. 게다가, instance 의 <actions> 기능을통해클라우드를재부팅, 시작또는중지시킬수있다. 이들 Deltacloud API 기능은해당클라우드사업자의드라이버를통해각클라우드 native API로전달되어동작한다. 따라서, 드라이버에서도 Deltacloud API처럼, hardware_profiles(), images(), realms(), instances(), create_instance(), reboot_instance(), stop_instance(), destroy_instance() 등을제공한다. 현재 Deltacloud 프레임워크는루비언어로제공되지만, 다른언어도곧지원될예정이다. C 2011 한국전자통신연구원 51
2. Simple Cloud Simple Cloud API 는 PHP 에클라우드기술을추 가하여파일저장소 (file storage service), 문서저 장소 (document storage service), 그리고큐서비 스 (queue service) 를제공할수있도록한다. Sim ple cloud API 를지원하는주요사업자는 IBM, MS, Rackspace, Nirvanix, GoGrid 이며, 클라우드간호 환성이있는클라우드응용을구현할수있다 [9]. 참고적으로 Simple Cloud API 는 Zend 프레임워 크에서제공된다. Zend 프레임워크는 PHP 개발사 인 Zend 에서제공하는오픈소스프레임워크이며, 프레임워크에서제공하는컴포넌트기능으로웹응 용서비스를아주쉽게개발할수있다. 구글, MS 및 StrikeIron 등협력기업들이 Zend 프레임워크에다 양한컴포넌트기능을제공하고있다. 파일저장소경우, 제공되는인터페이스는 Zend_ Cloud_StorageService_Adapter 로각클라우드사 < 표 3> Simplecloud 파일저장소인터페이스 세부인터페이스 fetchitem storeitem deleteitem copyitem moveitem < 표 4> Simplecloud 를지원하는클라우드사업자 서비스 파일저장소 API 문서저장소 API 큐서비스 API 기능 해당위치의저장소로부터자료를가져오기 자료를해당위치에저장하기 해당위치로부터자료를제거하기 해당위치간에자료를복사하기 해당위치로자료를옮기기 renameitem 해당위치의자료이름을변경하기 listitem 해당디렉터리내용을보여주기 fetchmetadata 해당위치의메타데이터가져오기 storemetadata 해당위치에메타데이터를저장하기 지원하는클라우드벤더 아마존 S3, 윈도우 Azure Blob 스토리지, Nirvanix 아마존 simpledb, 윈도우 Azure 테이블스토리지 아마존 SQS, 윈도우 Azure 큐스토리지 업자별인터페이스, 즉윈도우 Azure 경우, Zend_ Cloud_StorageService_Adapter_WindowAzure 가각각제공된다. 그리고 < 표 3>, < 표 4> 와같은파일저장소의기능에대한세부인터페이스를제공한다. 3. Libcloud Libcloud 도다른클라우드서비스사업자와상호동작할수있는방법을제공한다. 클라우드사업자간호환성을제공하는다른기술과같이개발자의편의성을제공하는기술이다 [10]. Libcloud 는 Cloudkick 사에의해시작되었으며, 현재아파치라이선스 2.0하에오픈소스프로젝트로성장하고있다. 참고적으로 Cloudkick 사는고객의가상시스템을관리하고모니터링서비스를하는전문기업으로백만대규모의고객시스템을모니터링하고있다. 그리고 2010 년 12월 Rackspace 로인수되었다. Libcloud 인터페이스는클라우드사업자의서로다른 API들을추상화 (abstraction) 하여단일인터페이스의파이션 (python) 라이브러리로제공한다. 세개의종류의클라우드자원에대한인터페이스를제공하는데, 클라우드서버, 클라우드스토리지, 부하분산기이다. 클라우드서버경우, 현재 22개의서비스사업자를지원한다. 제공되는 Libcloud 의 API는, 클라우드서버경우, Deltacloud 처럼클라우드 HW 사양, 위치, 클라우드이미지정보등을기반으로노드를생성, 제거및부팅등의기능을제공한다. 관련하여사용자의인증등에대한인터페이스도제공된다. 클라우드스토리지경우, API는파일을저장할공간 (container) 를생성하거나제거, 생성된저장공간에파일을생성, 제거또는가져오기등 Simple Cloud 와유사한기능을제공하지만, 다른점은저장공간 (container) 을생성관리할수있다는점이다. 52 C 2011 한국전자통신연구원
정의정외 / 공개 SW 기반클라우드컴퓨팅기술현황 < 표 5> 다중클라우드호환기술비교 기술사용언어지원되는서비스지원되는클라우드 Delta cloud 루비 (ruby) 클라우드서버, 클라우드스토리지 Simple cloud libcloud PHP 파이션 파일저장소 문서저장소 큐서비스 클라우드서버, 클라우드스토리지, 부하분산서비스 구글, Linode, Rackspace, EC2, Terremark, Zerigo, Brightbox, Blue Nox Group, AWS 아마존 S3, 윈도우 Azure Blob 스토리지, Nirvanix 아마존 simpledb, 윈도우 Azure 테이블스토리지 아마존 SQS, 윈도우 Azure 큐스토리지 EC2, Gandi, GoGrid, OpenNebula, Rackspace, RimuHosting, Slicehost, VoxCloud, vcloud, CloudSigma 등 22 개 S3 Image factory Oz(install tools) Amazon EC2 Image warehouse Deltacloud, Simple cloud 과는달리, Libcloud 는부하분산기의기능을제공한다. 부하분산기를생성, 제거하거나, 생성된서버를부하분산기에연결, 제거하는기능등을제공한다. < 표 5> 에서는 Deltacloud, Simple Cloud, Libcloud 를비교하는표이다. 4. Aeolus Aeolus 는가상머신이수행될 private 클라우드또는 public 클라우드등적절한클라우드를선택하는클라우드브로커기술이다 [11]. 다중클라우드환경이기때문에서로다른클라우드간인터페이스문제는 Deltacloud 기술을이용한다. 참고적으로초기의 Deltacloud 프로젝트는클라우드공통 API 기술과클라우드간브로커기술로구성되었지만, 두기술은분리되어다른프로젝트로, Deltacloud 프로젝트와 Aeolus 프로젝트, 운영되고있다. 따라서 Aelous 에서는 Deltacloud 프로젝트결과물인 REST 기반클라우드 API기술을활용하고있다. Aeolus 기술의활용분야로는임의의클라우드장애대응, 클라우드서비스사업자간의가격경쟁환경, 지리적인문제로인한인접클라우드자원사용, 클라우드서비스의부한분산등의다중클라우드환경에서활용될수있다. Aeolus 기술은레드헷 RHEV(Red Hat Enterprise Virtualization), Eucalyptus, VMware v- Sphere 가상화기술과연계되어동작되며, 지원되는 public 클라우드는현재아마존 EC2 와 Rackspace 이다. Aelous 기술은리눅스 RHEL6(Red Hat Enterprise Linux 6), 페도라 14 와윈도우 2008 에서 동작한다. ( 그림 7) 은 Aeolus 기술의구성요소와다 중클라우드환경에서가상머신을어떻게배치, 관리 하는지를보여준다. User httpd Aeolus Conductor Cloud Cloud Files Servers Rackspace ( 그림 7) Aeolus 운용환경 Delta cloud 사용자의가상머신이미지는클라우드이미지빌 더인 imagefactory 와 OS 설치기능을가진 oz 구성 요소에의해서생성이되며, image warehouse 는생 성된가상머신을각클라우드서비스사업자에맞게 수정하여복제, 관리등을수행한다. 즉사용자는하 나의가상머신을생성하였지만, aeolus 의이미지관 리기능에의해다중의클라우드사업자별로가상머 신이생성되어존재하게된다. 가상머신생성후, 사 용자가가상머신을활성화하면, Aeolus conductor C 2011 한국전자통신연구원 53
는다중클라우드의모니터링데이터를기반으로사 용자의요청사항에적절한클라우드사업자를선택 하고가성머신을활성화시켜서비스가제공되도록 한다. 사용자는 Deltacloud API 를사용하여가상머 신을제어하기때문에, 가상머신이어느클라우드에 서동작되더라도가상머신의제어, 관리는문제가없 다. 게다가사용중에클라우드장애가발생되면다른 클라우드로전환도가능하다. 하지만실시간가상머신 이동을지원하지않으면서비스연속성을보장할수 없다. 용어해설 가상머신 : 물리서버위에생성하는가상의컴퓨터 하이퍼바이저 : 물리서버위에가상머신을만들기위한소프트웨어. Private Cloud: 사내등제한된조직에클라우드서비스를제공하는방식 Pubilc Cloud: 웹서비스를통해불특정사용자에게클라우드서비스를제공하는방식 Hybrid Cloud: 두개이상의클라우드를결합한방식 약어정리 AJAX Asynchronous JavaScript and XML API Application Program Interface CUI Cummand User Interface EC2 Elastic Computing Cloud GUI Graphic User Interface IaaS Infrastructure as a Service KVM Kernel-based Virtual Machine OCCI Open Cloud Computing Interface OE Operating Environment OGF Open Grid Forum OpenSSO Open-source Single Sign-On REST Representational State Transfer RHEL6 Red Hat Enterprise Linux 6 RHEV Red Hat Enterprise Virtualization SOAP Simple Object Access Protocol VMDF Virtual Machine Definition File 참고문헌 [1] 민옥기외, 훤히보이는클라우드컴퓨팅, 서울, 전자신문사, 2009. 10. [2] OpenStack LLC, OpenStack Compute Administration Manual. http://docs.openstack.org, June 8, 2011. [3] Eucalyptus Systems Inc., Eucalyptus EE 2.0 Administrator Guide, 2010. http://www.eucalyptus. com/resources/documentation [4] F. Gomez-Folgar et al., An Open-source Cloud Management Platform Comparison, Cloud comput. Edu. Study Dev., Russia, 2011. [5] OpenNebula Project Leads, OpenNebula 2.2 Documemtation, Mar. 2011. http://opennebula. org/documentation: documentation [6] Ignacio M. Llorente, The OpenNebula Standard-based Open-source Toolkit Build Cloud Infrastructures, 2009.http://www.rediris.es/jt/jt 2009/ponencias/Clausura1.pdf [7] Cloud.com Inc., CloudStack Introduction, 2011. http://www.cloud.com/index.php?option=com_k 2&view=item&layout=item&id=114&Itemid=346 [8] Deltacloud Core, Deltacloud Documentation. http://incubator.apache.org/deltacloud/documen tation.html [9] Zend Technologies, Simple Cloud API. http:// simplecloudapi.org/ [10] Apache Software Foundation, Apache Libcloud. http://libcloud.apache.org/ [11] RedHat. Inc., About Aeolus. http://www.aeolusproject.org/ 54 C 2011 한국전자통신연구원