2009년 5월 4일 월요일

Cloud Computing 1

요즈음 Cloud Computing에 관심이 많다.

현재 Google AppEngine, Microsoft Azure, Amazon Web Services 정도가 major player가 아닐까 싶고, 다른 중소 업체도 있는 것 같다. 나로써는 뭐 이런 걸 가지고 사업을 한다든가 그런 건 아니니 가격 정책에서의 차이는 그냥 참고용. 오히려 기술 모델에 더 관심이 많다.

 

먼저, Google AppEngine은 정말 구글스럽다. 전체적으로 HTTP Request/Response 구조이며, 현재는 Python과 Java를 구현해 놓았다. 서비스 가입, 운용, 개발 모두 간단하게 뚝딱뚝딱 해낼 수 있는 형태인 듯 하다. Java는 Early View 상태이고 (현재) 내 Python 실력이 매우 짧아서 모든 면을 다 파악할 순 없었지만 시스템 구성을 볼 때 대/중/소 어떤 사이즈의 사이트에도 적절하게 적용될 수 있는 요소를 갖추었다고 생각된다. 다만 단점은 Python을 쓸 수 있어야 한다는 점 정도?

 

Microsoft Azure는 아직 완전히 풀 가동 되고 있는 상용 서비스는 아닌 듯 하다. 하지만 언제나 MS의 제품들이 그러하듯이, 수많은 약자들로 대표되는 컴포넌트들이 산재하고, 그들끼리는 매우 tight하게 결합될 수 있도록 (외부로의 연결은 장담 못 함) 준비되어 있는 듯 하다.

Visual Studio 2008 SP1(2008! Oh My… 심지어 SP1이다. 단, VWD Express SP1도 지원은 함)이 SDK Requirement이며, 로컬 개발서버를 돌리기 위해서는 OS의 내장 IIS를 구동해야 한다. (Sucks! 이부분은 아마 바뀌지 않을까. AppEngine은 python 스크립트 하나를 실행하는 것으로 대체. 해당 python 프로그램 종료하면 리소스 전체 해제. Yay!)

AppEngine과 마찬가지로 HTTP Request/Response 는 당연히 잘 지원하며, Storage도 SQL Data Service라는 형태로 제공하고, 그 외 Google Auth API에 대응되는 Live User 기능도 존재한다.

Azure에는 Web Role 외에도, Worker Role이 존재해서, 별도의 heavy computation을 수행하는 것이 가능하다는 것 또한 AppEngine과의 중요한 차이점이다. AppEngine에서는 이러한 response보다는 computation result가 중요한 작업, 혹은 주기적으로 시스템 관리를 위해 수행되어야 하는 작업 (cron job 같은)들에 대해서도 하나의 웹 페이지로 만들고 그 URL을 호출하는 방법으로 수행하라고 권고하고 있다. Cron과 같이 내부적인 Scheduler는 제공한다고 한다. 대신, 이러한 경우 HTTP Timeout이 얼마나 될 것인지에 따라 상황이 달라지긴 하겠지만 heavy한 computation을 수행할 수 있을지는 미지수이다.

 

개인적으로는 Azure가 내 취향에 더 맞지만, 단기적으로는 AppEngine이 시장지배적인 player가 될 가능성이 높은 것은 거의 명백해 보인다. (약 6개월~1년 내) 그 이후에도 서로 competing 한다기보다는 ecosystem이 분리될 가능성이 좀더 높다고 생각한다. Startup(신생기업)의 경우 AppEngine을 선호할 것으로 보이고 (더 손쉽고 빠르게 적용할 수 있기 때문. 고객지원이나 기술기반(서버 업체, 호스팅 등)의 브랜드 이미지는 상대적으로 덜 중요하기 때문.), Mid-level player이상에서는 MS를 선호할 가능성이 높아 보인다. 이렇게 추측한 이유는 고객 관리, 기술지원, 마케팅, 브랜드 이미지 등이 주된 이유이지 Technology의 차이에 기반한 판단은 전혀 아니다.

 

더 장기적으로는 어떻게 될까? 사실 이 시점에서 이렇게까지나 멀리 나가는 것은 심히 오바이긴 하지만 재미로 추측을 해 본다. 구글은 수많은 low-traffic 아웃라이어들 (주로 스타트업, 개인 개발자, 수퍼개발자들의 장난감 등)을 무지막지하게 수용함으로써 easy-entry로서의 입지를 굳히되, facebook이나 myspace, 혹은 그에 대응될만한 ultra-mega player를 한 두 개, 혹은 몇 개 정도 수용해서 solid한 money source를 확보하고, 돈을 긁어 모으겠지. (여기까지 2~3년) 그러다가는 너무나 점점 낮아질 수밖에 없는 price policy (난 현재의 price policy($/byte) 가 무조건 낮아질 것이라고 확신한다)와 high competition때문에 어정쩡해 하고 있다가 갑자기 확 줄어든 고객 탓에 AppEngine 서비스를 버리고 새로운 모델로 진출하겠지.

Azure는 좀더 확신에 차서, 실현 가능성이 더 높은 예측을 할 수 있다. (진심이다) MS빠인 mid-level player들을 수백~수천개 정도 월드와이드로 확보해서 각각 수백만~수억달러씩을 사이트별로 3년 내에 벌어들이지 않을까 생각된다. 그 동안에 MS는 약 3~4년 이내에 Azure브랜드 전체가 담당하고 있던 기능을 포함하는 더 큰 범위의 브랜드를 런칭하고 (그게 퍼블릭 씬 클라이언트가 되었든, 새로운 프레임웍이 되었든) Azure를 가차없이 버릴 것이다. 또다시 수백개의 약어와 개념들을 남발한 뒤 수천만, 수억달러의 마케팅비용을 들여 새 플랫폼을 마케팅하겠지. 그러나 실제로 작업이 수행되는 핵심 개념은 Azure와 유사할 것이라고 생각된다. PC용 윈도우즈 OS가 X Window와 같은 GUI만 남을지도 모른다.ㅎㅎ

 

Amazon Web Services? 머신 자체를 아예 이미지로 만든다는 것을 제외하고는 잘 모른다. 아마존에 대한 선입견일지도 모르겠지만, 몇개월 남짓 먼저 시작했음에도 불구하고 시장에서 지배적인 player가 되기는 어렵고, 자사의 서비스(THE Amazon ㅎㅎ)에 dependent한 기발한 서비스를 두세개 만들어서 그럭저럭 잘 굴리고, 자신의 서비스를 AWS 기반으로 전환한뒤, 지속적인 영업을 계속하지 않을까 생각한다. entry가 아무래도 google보다는 어렵기 때문에,(가격, 기술모델 등) mid-level player가 주된 고객층이 되지 않을까 생각된다.

 

클라우드 컴퓨팅에 대해서 주마간산식으로 기술컨셉을 간단히 소개하고, 매우 선입견 가득하고 부정확할 수 있는 개인적인 의견을 개진해 보았다. 다음 글에서는 (언제 쓸 것인가…ㅎㅎ) 클라우드 컴퓨팅을 이용한 다른 아이디어를 간단하게 (아주 간단하게) 써 볼까 한다. 글 길이는 이 글의 1/10쯤 될지도 ㅎㅎ;;

 

 

ps. 애초에 Google의 AppEngine과 Amazon Web Service를 소개해준 MJ에게 Thanks 를 날림.

 

댓글 없음: