지난번 블로그 포스팅[1]이 다소 먼 미래를 예견하는, 새로운 어플리케이션 관점에서 클라우드 컴퓨팅을 소개했다면, 이번 글에서는 클라우드로 이동하는 현재의 기업들의 입장에서 클라우드의 효과가 무엇인가를 설명하려고 한다. 오늘 forbes.com 에 올라온 서베이의 결과가 이를 잘 보여준다 [2]. 이번 forbes.com 서베이는 900명 이상의 기업 중역에게서 받은 응답이기 때문에 신뢰성이 높다고 생각된다. 또 현재 우리 회사에 들어오는 정보들과 거의 일치한다. 서베이결과를 요약하면 이렇다:
- 81%의 응답자들은 자기 회사의 IT가 일정 부분 클라우드로 이동했다고 대답했다.
- 76%의 응답자들은 클라우드의 경제성이 중요한 요인이라고 답했고,
- 80%의 응답자들은 신속(agility), 유연성(elasticity)이라고,
- 76%의 응답자들은 데이터센터에 비해 기능의 다양함이라고 답했다.
- 87%의 응답자들은 클라우드가 중대한(significant) 변화를 불러온다고 답했다.
우선 가장 많은 응답자가 선택한 신속, 유연성에 대해 알아보자.
기업들에게 기존 IT 의 문제점중 하나는 비지니스 세계의 변화 속도를 IT 프로세스가 따라잡지 못한다는 점이다. 예를 들어 신발회사의 홍보팀에서 새로운 운동화 A의 출시에 맞추어 대대적인 사이트 개편을 추진한다고 생각해보자. 홍보팀은 A의 장점을 부각시킬수 있는 다양한 아이디어, 예를들어 아바타에 신발 신겨보기, 기발한 광고 영상 상영 ([3]과 같은)등을 추진하고 IT 부서는 허겁지겁 아이디어를 구현하는 프로세스를 시작한다. 예를들어 이런식이다:
- 홍보팀에서 예상하는 100만명 뷰어를 감당할 서버 100대를 구매신청한다.
- 네트웍팀에서는 100만명 부하를 감당할 스위치장비를 구매신청한다.
- 개발팀에서는 기존 LAMP (Linux-Apache-MySQL, PHP) 스택을 100만명 수요에 맞춰 다시 디자인한다.
- IT지원팀에서는 급증하는 트래픽과 데이터에 대비 할 수 있는 백업 시스템을 준비한다.
- 등등등….
이처럼 끝도 없이 이어지는 IT 프로세스는 기획부터 실행까지의 시간을 엄청나게 연장시키고 홍보팀은 IT 부서의 능력을 의심하는 결과만 낳고 만다. 설령 IT부서의 밤샘작업으로 데드라인전에 구현을 해도 예측불가능한 이벤트 (예를들어 200만명의 뷰어가 몰려옴)에는 속수무책으로 서버가 무너지는것을 지켜볼 수 밖에 없다.
클라우드 컴퓨팅의 유연성/신속성은 이의 문제점을 직접 해결한다. 위의 예에 비추어보면:
- 장비팀에서는 100만명 뷰어를 커버할 아마존 EC2 인스턴스 100개를 구입한다. 몇분 안 걸린다. EC2의 네트웍 장비를 사용하므로 스위치등은 구매가 필요없다.
- 지원팀은 백업을 위해 여러군데의 아마존 데이터센터에 S3 오브젝트나 Elastic Block Store 같은 스토리지들을 준비한다.
- 개발팀은 클라우드에 올라가있는 웹 프레임워크(LAMP, node.js, ruby on rails 등 흔히 PaaS 로 지칭)를 사용해, 코딩 없이도 실시간으로 확장하는 웹 백엔드를 제작한다.
즉, 아이디어의 기획부터 실행단계까지 몇배의 신속성을 얻게 된다.
두번째로 경제성을 알아보자.
위 홍보팀의 기획안이 일회성이라면 100대의 서버와 스위치를 구매하는 것은 낭비일 수 밖에 없다. 혹 몇달후에 다음 이벤트가 준비된다 예측해도 100대의 서버들은 하루 이틀 서비스하고 남은 몇달은 서버실에서 놀수 밖에 없다. 그래서 클라우드 컴퓨팅의 Pay-per-hour 모델은 아주 매력적일 수 밖에 없다. 흔히 경제성을 이야기할때 서버 구입 비용만을 생각하지만, 실제로는 데이터 센터의 전기설비, 전기세/쿨링 비용등이 많은 부분을 차지한다. 아래는 아마존의 James Hamilton 이 분석한 데이터 센터의 비용 감가상각을 보여준다. 서버의 구입비만큼의 비용이 유지비로 들어가는 셈이다.

하지만 명심할점은 클라우드가 언제나 비용을 절감시키는 것은 아니라는 사실이다. 아마존도 한국의 KT도 이야기하지 않는 한가지 사실은, 연속적으로 거의 1년내내 돌아가야 하는 어플리케이션이 있다면 클라우드의 비용이 실제 서버를 사서 내부에서 운용하는 것보다 더 비싸다는 점이다. 예를들어 ec2의 extra large instance (실제 서버와 성능 비슷)은 시간당 $0.68 로 값이 저렴해 보이지만, 이를 1년으로 계산하면 $5,956 비용을 지불해야 한다. 같은 성능의 서버 머신을 구매하고 운용하는 것을 비교하면 ec2의 비용이 오히려 높음을 알 수 있다.
그래서 최근 징가(Zynga) 와 같이 처음부터 클라우드에서 시작한 게임 회사들은 아마존에서 일정부분 어플리케이션을 빼서 자신들의 프라이빗 클라우드에서 운용하고 있다. 새로운 게임이 출시되서 유저가 급증할 경우 ec2로 급히 자원을 할당하고 (흔히 bursting 이라 표현), 오래된 게임이어서 유저수가 예측가능해질 경우 비용을 줄이기 위해 내부의 프라이빗 클라우드에서 운영한다. 이때 기술적으로 중요한 것은 어떻게 ec2와 같은 퍼블릭 클라우드와 프라이빗 클라우드를 연동시키는가의 문제인데, api 호환성을 꼭 고려해야 한다. 그 이유로 eucalyptus 같은 시스템은 ec2 api 호환성을 최고 우선순위에 놓는다. 심지어 아마존과 경쟁하기 위해 출범한 open stack 같은 곳도 ec2와 api 호환성을 제공한다.
끝으로 기능성을 알아보자. 기능성의 비교 대상은 5년전쯤부터 크게 성장한 가상화 기반 데이터 센터다. 미국에서는 VMware 가 최근 가장 잘나가는 IT 기업인데, vsphere같은 가상화 솔루션이 높은 가격에도 불구하고 불티나게 팔리고 있다. 가상화된 데이터센터와 비교했을때 클라우드의 기능성은 대략 이렇게 요약할 수 있다.
- API 를 통해서 자원을 컨트롤
- 사용자가 모든 IT 프로세스를 시스템 관리자를 거치지 않아도 처리 할 수 있는 셀프 서비스 포털
- VM 뿐 아니라 네트워크, 스토리지를 모두 포괄하는 광범위한 IT 자원 처리
API를 통해서 IT 자원을 컨트롤하기 때문에 클라우드에서 어플리케이션을 돌리는 전체의 과정을 프로그래밍 할 수 있고, 흔히 이야기하는 클라우드 생태계가 가능해진다. 실제 많은 Platform as a Service 기술들은 내부적으로 EC2 API를 사용해 서비스를 제공한다. 다음으로 기존 가상화 데이터센터는 사용자에게 제한된 기능을 제공하고, 복잡하거나 보안을 요하는 기능의 경우에 시스템 관리자의 승인하에서만 기능을 가능케 한다. 이에 비해 클라우드는 시스템 관리자의 개념 없이 모든 사용자가 스스로 관리자이면서 end-user의 역할을 하는 셀프서비스 기능을 제공한다. 마지막으로 VMware등이 단지 VM을 운영하는 기능에 머무르는것에 비해 ec2와 같은 클라우드는 네트워크 (IP, DNS, 방화벽) 와 스토리지 (S3, Elastic Block Storage) 자원을 모두 포괄하는, 마치 자신의 데이터센터에 물리적으로 접근하는 것과 비슷한 수준의 광범위한 인터페이스를 제공한다.
오늘은 그래서 클라우드의 몇가지 두드러진 이점들 — IT 프로세스의 신속/유연성, 경제성, 기능성 — 에 대해 알아보았다. 다음 시간에는 클라우드의 세가지 레이어 (IaaS – PaaS – SaaS) 에 대해 다루어 보려고 한다.
박상민 http://twitter.com/#!/sm_park
[1] 클라우드, 새술 담는 부대
[2] Cloud Computing Set to ‘Skyrocket’
[3] K-Swiss의 “I am the CEO” 광고 (재밌음)


