1. 들어가며
사실 블로그를 처음 시작한 이유는 일하는 분야인 클라우드를 설명하고 구체적으로 아마존 웹서비스 같은 대세 기술들을 소개 하자는 것이었다. 하지만 어쩌다보니 잉여와 공포, 영웅등의 이야기에 빠져들어가 꼭 써야 할 클라우드 이야기를 미루고 있었다. 그런데 막상 글쓰기를 시작하고 발견한 사실은 클라우드, 이놈이 설명하기가 정말 까다롭다는 점이다. 사실 어제도 두어시간 키보드를 타닥 타닥 대다가 접고 말았다. 모두들 대세라고 인정하는 IT 기술 클라우드. 이 회사 저 회사마다 “내가 진짜 클라우드요!” 등장하고 있고, 특히 애플에서 독점적인 컨텐츠가 결합된 플랫폼 iCloud 를 가지고 나오니 사람들마다 “클라우드 어우썸!”을 연발하고 있다. 장님이 코끼리 만지기 시합하듯 “컨텐츠가 클라우드요~”, “가상화가 클라우드요~”, 비용절감이 클라우드요~” 제각각 만져본 코끼리 모양을 설명하고 있다. 오늘은 나도 그럼 내가 만져본 클라우드의 몸통을 묘사해 보리라.
“새술은 새부대에 담아라” – 성경에 나오는 교훈인데 왠지 클라우드의 출현배경을 설명하기에 적절해 보여서 제목으로 따왔다. 우선은 클라우드라는 새 “부대”에 담길 “새 술”로 시작해보자.
2. 불어나는 새 술
굳이 길게 설명하지 않아도 이제는 스마트폰과 타블렛이 지배하는 세상이 되었다. 새 세상이 왔구나! 가장 강렬히 느낀건 컴맹이였던 우리 부인께서 침대에 누워 아이폰으로 아이돌의 동향을 탐색하고 있을때였다. 나만 해도 정보에 중독이라도 되어 있는지 쉴새 없이 트위터와 페이스북을 살피고 스카이프로 통신하며 하루의 대부분 시간을 보낸다. 아래의 그림처럼 불과 3년이 채 안된 사이에 손바닥위의 컴퓨터가 우리 일상을 완전히 지배하기 시작했다. 스마트폰뿐 아니라 이제는 자동차 [1], 바다위 서핑보드 (제임스 고슬링의 새 벤처) [2], 풀뜯는 가축들까지 데이터를 인터넷으로 발산하고 있다. 마크 앤더슨 (Marc Andreessen)은 10년안에 지구의 절반 50억 인구가 스마트폰을 휴대할 것이라 예견했고 [3], 더 나아가 IBM은 2015년까지 1조개의 디바이스들이 인터넷에 연결될 것이라고 전망했다 [4]. 1조개의 디바이스들이 뿜어낼 데이터의 양은 상상하기도 힘들다.
폭발적인 디바이스, 데이터증가와 더불어 생기는 변화는 기존의 구식 산업들이 점차 온라인 소프트웨어로 대체되어 간다는 점이다. 앤더슨이 최근 유명한 “왜 소프트웨어가 세상을 먹어치우는가 [3]”, 기고문에서 밝혔듯 넷플릭스는 TV를, 킨들은 종이책을, 스카이프는 전화선 통신사들을 최근 몇년사이에 먹어치웠다는 사실이 이를 잘 보여준다. 땅 덩어리가 너무 넓어 택배 서비스가 형편 없는 미국인데, 아마존에서 주문한 물건은 빈틈없이 하루만에 배달된다. 몇시까지 주문했을경우 다음날에 배달되는지를 초단위로 정확히 계산해주는 아마존 백엔드 소프트웨어는, 이미 대부분 미국인들을 구식 택배서비스에 만족할 수 없게끔 중독시켰다. 얼핏 보면 IT와 거리가 있어 보이는 회사(월마트, 페덱스)와 산업 분야들(자동차, 금융, 의료, 음악) 모두 허겁지겁 온라인 소프트웨어로 달려들고 있다. 소프트웨어에 의해 잡아먹히느냐 아니면 잡아먹느냐 무한 경쟁을 시작했다해도 과언이 아닐것이다. 아래의 그림은 현재 아마존 클라우드로 운영되는 일부 회사들이다. 대부분 설립된지 5년이 안된 기업들인데, 세개의 회사(Netflix, Zynga, Dropbox) 추산가치만 합해도 20조원이 넘는다. 그리고 이들은 각각 DVD대여, PC 게임(EA), 하드디스크와 같은 구식 산업들을 잡아먹고 있다.
불어나는 새 술 — 데이터의 폭발적 증가와 온라인 소프트웨어의 확산 — 이 산업 전반에 퍼져나가고 있음은 확실하다. 아마존 클라우드의 수백개 고객리스트(참조 [5]) 를 보면 거의 모든 산업분야들이 총망라 되어있다. 내가 일하는 갓 2년된 클라우드 스타트업에서는 종종 전혀 예상치 못한 회사와 기관들이 고객이 되는 것을 경험한다. 예를 들어 신발회사 퓨마, 정부기관 NASA, FDA, 무기회사, 심지어 이름을 밝힐수 없는 종교기관까지(!)…급증하는 데이터를 온라인 소프트웨어로 처리하는 “새 술” 어플리케이션은 분야를 가리지않고 생겨나고 있다.
3. 헌 부대: 클라이언트-서버 시스템
그런데 문제는 불어난 새 술을 담기엔 기존의 기술이 헌 부대라는 사실이다. PC가 안방을 차지하고 웹이 거미줄처럼 세상을 엮어버린게 이제 15년 지났다. 초기 인터넷 시대의 아키텍춰는 클라이언트-서버 (C/S) 모델로 쉽게 요약할 수 있다. 몇대의 서버들이 수만명 클라이언트의 웹 요청을 처리하는 방식이다. 사실 C/S 모델은 더 오래전으로 거슬러 올라가는데, 호랭이 담배피던 옛날엔 회사나 학교에서 돌리는 메인프레임에 집에서 dumb (멍청한) 터미널로 접속하는 너드들이 있었다. 쉰세대의 로망 하이텔, 천리안 시대를 생각해 보라. PC와 웹의 시대가 도래한 이후에도 기본적인 클라이언트/서버 구조는 증가하는 웹서버와 PC 인구를 무리없이 커버했다. 흔히 LAMP 스택 (Linux-Apache-MySQL-PHP) 으로 칭하는 오픈소스로 구성된 백엔드가 대표적인 기술이다. 아래의 그림은 흔하게 볼수 있는 C/S모델의 백엔드 구성을 보여준다.
하지만 폭발적으로 증가하는 인터넷 접속 단말들과 데이터의 양은 점점 기존의 C/S 모델이 지탱할 수 있는 범위를 넘어서고 있다. 우선 서버가 감당해야할 클라이언트의 수가 너무 많아진다 (뻥쟁이 IBM임을 감안하더라도 1조개의 숫자가 갖는 의미는 대단하다). 그리고 과거 단순히 사용자가 PC로 정보를 읽어내려가던 웹이 이제는 실시간으로 사용자가 정보를 제어, 융합하는 interactive media로 변하기 시작했다 (Ajax, HTML5 등등). 누군가 외쳤던 것처럼 이제는 “네트워크가 컴퓨터다”, 이게 현실이다. PC, 타블렛, 스마트폰은 이제 거대한 컴퓨터(네트워크)와 상호 작용하게끔 돕는 사람들의 네트워크 말단(edge) 인터페이스가 되어가고 있다 (스카이넷의 손, 발, 눈이 되어간다고나 할까?)
디바이스, 데이터, 온라인 소프트웨어가 범람하는 이 시대엔, 헌 부대 — 클라이언트/서버 모델 — 로는 담을 수 없는 몇가지 중요한 특성이 있다.
- 스케일: 디바이스가 게임이나 검색등으로 네트워크에 무언가를 요청할때마다 백엔드에서는 서버자원을 소모한다. 디바이스가 많아지는 만큼 백엔드의 서버도 증가하게 되어있다 (최근 122개의 타블렛 컴퓨터가 팔릴때 1대의 서버가 증가한다는 인텔의 보고서가 있다 [6]). 최고로 재미있는 웹게임을 만들었어도, 백엔드가 준비되어 있지 않을 경우 급속히 증가하는 게이머를 받아들일 수가 없다 (예를 들어 앵그리버드의 제작사는 이미 아마존 웹서비스를 사용중이다). 한정된 서버를 두고 서비스하는 C/S 모델은 근본적으로 디바이스의 폭발적 증가를 감당할 수 없다.
- 정보의 실시간성: 트위터와 페이스북이 재미있는 이유는 정보들이 바로 몇초전에 누군가의 뇌에서 튀어나온 신선한 것이기 때문이다. 이미 우리는 어제 생산된 지식은 의미가 없어진 시대에 살고 있다. 농산물을 가공해 음식을 만들어내듯, 정보들은 온라인 소프트웨어에 의해 유용한 지식으로 가공돼 사람들에게 전달된다. 헌데 정보의 양이 많아질수록, 단 몇분 안에 정보를 유용한 지식으로 가공해 내는 것은 제한된 서버로는 불가능하다. 불현듯 마이너리티 리포트에서 탐크루즈가 몇번의 손짓으로 영상정보를 조합해내던 모습이 떠오른다. 그게 현실이 된다면 탐크루즈가 손가락을 까딱할때마다 어딘가에서 수백대의 서버들이 그가 원하는 영상을 처리해야 한다.
- 디바이스의 이동성: 한가지 확실해지는 트렌드는 네트워크 말단 디바이스들이 끊임없이 이동한다는 점이다. 사람과 함께 걷는 스마트폰뿐 아니라 앞으로 자동차에 장착될 디바이스들은 빠른 속도로 이동하며 주변의 정보를 모으고 네트워크와 소통할 것이다. 헌데 기존 C/S 모델에서의 서버는 IP 주소와 물리적 위치가 고정되어있기 때문에 재빨리 이동하는 디바이스들에 적절한 서비스를 제공할 수 없다. LA 공항에서 보던 스트리밍 영화를 인천 공항에 내려 연속해서 플레이 할 수 있을까? 이것은 단순히 한 사람 이동경로의 문제만은 아니다. 종종 유명한 서비스들은 한 국가에서 다른 국가로 흥행이 전파되는것을 본다. 한국에서 흥행한 게임을 미국 유저에게는 어떻게 서비스 할까?
기존의 C/S모델을 뛰어넘어 위 특성들을 해결하는 시스템은 사실 지금도 존재한다. 구글의 경우 100만대 이상의 서버로 매일 매일 데이터를 처리하고 있고, 그 결과로 오늘 올리는 이 글은 몇 분안에 인덱스에 업데이트돼 검색 결과에 나타날거다. 하지만 구글과 같은 소수의 회사들이 독점하는 시스템을 클라우드라 부를수는 없다. 일반에게 오픈되어 새로운 아이디어를 가진 사람이 단 며칠만에 수천대의 컴퓨터를 프로그래밍 하게끔 하는 기술, 그게 정말 클라우드다.
4. 새 부대: 클라우드
클라우드는 그래서 서비스의 스케일, 정보의 실시간성, 디바이스의 이동성을 모두 해결하는 거대한 기술의 모음이다. 어떤 회사든 위 조건을 충족시키는 서비스를 제공한다면 클라우드라고 부를만 하다. 그래서 “클라우드는 아마존이다, 구글이 진짜다. 아니다 끝판왕은 MS다” 이런 논쟁은 그다지 의미가 없다. 각각의 특성을 해결하는 몇가지 클라우드의 예를 들어보면 —
- 스케일: 아마존의 데이터 서비스 S3는 현재 5,000억개의 데이터 오브젝트를 저장하고 있다 (세계 인구가 100개씩 오브젝트를 갖고있는 셈이다!). 최근 한 회사가 아마존 EC2를 사용해 3만개의 코어로 구성된 초대형 클러스터를 만들었다 [7]. 슈퍼컴퓨터 랭킹으로 30위쯤에 위치할만한 성능인데, 아마존이 직접 만든게 아닌 제 3의 회사가 아마존의 컴퓨팅 자원을 사서 구성했단다! 2009년 팜빌 (Farmville)이라는 초대형 히트게임을 출시한 징가는 게임 출시후 몰려든 하루 3천만명의 유저를 아마존 클라우드로 서비스 할 수 있었다. 영화 스트리밍 1위 회사 넷플릭스는 전체 시스템을 아마존에서 돌리고 있다.
- 정보의 실시간 처리: 하둡(Hadoop)은 원래 구글이 내부적으로 사용하던 MapReduce라는 분산프로그래밍 시스템을 오픈소스로 만든 것인데, 대규모 정보를 유용한 지식으로 재가공해야 하는 사람들에게 가장 각광받고 있는 시스템이다. 이제 사람들은 하둡 프로그램을 아마존, 구글, MS 클라우드의 수백, 수천대의 서버에서 돌리고, 빠른 시간안에 유용한 지식을 산출해서 각자의 분야에 활용한다.
- 디바이스의 이동성: 아마존은 미국의 동부와 서부, 유럽의 아일랜드, 아시아에서는 싱가폴, 일본에 데이터센터를 운영하고 있고, 사용자는 어느 지역의 데이터센터에서든 같은 서비스를 운영할 수 있다. 즉, 영화를 보다가 인천 공항에 내렸을 경우 가까운 일본의 서버에서 영화의 남은 부분을 스트리밍 하는것이 가능하다.
클라우드는 이러한 속성들을 다양한 레이어의 서비스로 제공한다. 아마존은 사용자가 마음껏 환경을 꾸미고 무제한의 서비스를 만들수 있는 가상머신과 스토리지 서비스를 제공하고 (IaaS), MS와 구글은 웹, DB, 이메일등 잘 알려진 서비스 패턴을 손쉽게 구성하는 플랫폼을 제공한다 (PaaS). 누군가 “새로운 술” 아이디어가 있다고 한다면 나는 주저없이 “새 부대” 클라우드로 가라고 권할것이다. 우선 아마존, 구글, MS의 클라우드에서 한두대의 서버로 서비스를 운영해보라. 하루 운영하는데 커피 한잔값밖에 들지 않는다. 혹 서비스에 사람이 몰려든다면 하루 몇만원 더 지출하면 된다. 그렇게 서비스를 늘려가다보면, 언젠가 우리도 몇조원 비지니스를 클라우드에서 운영하는 날이 올지도 모른다.
5. 결론
글을 다 마쳐가는 지금에 와서도 내 클라우드 소개가 완전히 맘에 들진 않는다. 내가 만져본 코끼리 몸통을 설명한것은 같은데, 어째 몸통 반 정도나 제대로 묘사했는가 싶다. 아마도 클라우드가 그만큼 거대한 흐름이고 또한 여전히 진화하며 모양을 형성해가는 기술이기 때문일 것이다. “새로운 술 (폭발적인 디바이스와 데이터의 증가, 그리고 이것들에 끊임없이 서비스를 제공하는 백엔드 소프트웨어)을 담는 새 부대가 클라우드다!” 이 정도로만 정리하는 것으로 오늘은 만족해야겠다. 나는 새 부대를 짜는 일 (클라우드 시스템을 만드는)을 하는데, 지금까지완 전혀 다른 방식의 시스템을 만드는 것은 정말 신나는 일이다. 그런데 새 술을 빚는 사람들 (게임, 컨텐츠, 소셜네트웍…)은 얼마나 더 신선한 아이디어를 가지고 신나게 클라우드를 프로그래밍 하게 될까 상상해 본다.
[1] http://www.youtube.com/watch?v=WyBO32jz7Vg&feature=player_embedded#
[2] http://nighthacks.com/roller/jag/entry/i_ve_moved_again
[3] http://online.wsj.com/article/SB10001424053111903480904576512250915629460.html
[4] http://www.readwriteweb.com/enterprise/2010/06/ibm-a-world-with-1-trillion-co.php
[5] http://aws.amazon.com/solutions/case-studies
[6] http://www.ft.com/cms/s/2/48f1caac-81bd-11e0-8a54-00144feabdc0.html#axzz1Yd2YknDN
[7] http://blog.cyclecomputing.com/2011/09/new-cyclecloud-cluster-is-a-triple-threat-30000-cores-massive-spot-instances-grill-chef-monitoring-g.html
[8] Man-Computer Symbiosis, J.C.R. Licklider. http://groups.csail.mit.edu/medg/people/psz/Licklider.html