클라우드의 불편한 진실…

우승님이 빅 데이터의 불편한 진실(http://kimws.wordpress.com/2012/02/11/%EB%B9%85%EB%8D%B0%EC%9D%B4%ED%84%B0big-data%EC%9D%98-%EB%B6%88%ED%8E%B8%ED%95%9C-%EC%A7%84%EC%8B%A4/) 이라는 멋진 글을 쓰신 걸 읽고 감동 받아서, 저는 클라우드에 대한 나름의 생각을 정리해보려고 합니다.(그래서 제목도 카피를 …)

 

빅 데이터 처럼 여기저기서 클라우드를 외치고 있고, 일반인의 대부분은 Storage Service 라고 생각하고 있지만, 여기서의 내용은 주로 IaaS 와 PaaS 수준까지만 얘기를 하겠습니다.(사실 이것도 말할 정도도 아니구요.)

 

저는 주변에 “클라우드를 쓰지 왜 서버를 사느냐?” 라고 항상 말하는 등의 클라우드 빠돌이라고 말할 정도로 클라우드에 대한 애정이 많습니다.  사실 아직도 많고, 여전히 클라우드로 가는 커다란 흐름은 꼭 주시해야 하고, 그 방향이 맞다고 생각합니다.

 

보통 개발자의 입장에서 클라우드 특히 IaaS를 말하면, 가상화에 대해서 떠올리게 됩니다. 그런데, AWS등의 기업은 모르겠지만, 일반적인 기업이 가상화를 서비스에 사용하려고 하면 다음과 같은 문제가 발생하게 됩니다.

1. 물리 서버의 장애, 패치등으로 가상 서버를 사용할 수 없는 케이스가 종종 생긴다.

– 당연한 얘기지만, 믈리 서버의 패치나, 장애등으로 가상화 서버를 사용할 수 없는 경우가 생깁니다. 얼마전에 AWS의 보안 패치로 인해서 가상 서버들을 리부팅 해야했던 사건(?) 이 대표적인 예라고 할 수 있습니다. 그리고 가상화 서버를 운영하는 업체 입장에서 보면, 기술력이 부족하면, 가상화 서버 관리 때문에 해당 서버들을 사용하기 어려운 상황이 종종 생깁니다.

2. 특정 타입의 가상화 서버들이 몰리면 전체적으로 서버의 성능이 저하됩니다.

– 당연한 얘기지만, 가상화는 서버의 자원을 효율적으로 사용하기 위해서 적용되는 것입니다. CPU, I/O, Memory 등, 어떤 서버는 CPU만 많이 쓰고, 어떤 서버는 I/O(웹서버)만 많이 쓴다면 이런 서버들이 한군데에 고루 고루 섞이면, 적절한 성능이 나오겠지만, 어떤 서버가 어디로 할당될지 모르는 상황에서 I/O가 많은 서버들끼리 한 곳으로 가거나, CPU만 많이 쓰는 서버들이 모이게 되면, 성능의 저하가 일어나게 됩니다. 또한, 클라우드 벤더등은 어느 정도 적절한 서버 사양이나, 가상화 서버 수가 예상이 되겠지만, 처음 적용하는 업체들은 많은 시행 착오를 하게 될 것 같습니다.

 

그래서 이런 저런 이유로, 많은 기업이 성공적으로 클라우드로 이동하고 있고, 이동하는 중이지만( Netflix) 클라우드로 이동했던 업체들이 다시 일반 서버로 돌아오는 케이스도 많습니다. 또한 특정 업체들은 가상화를 제외하고, 물리 서버 팜을 구성하고 이를 돌려쓰는 방안에 대해서 고민하는 업체들이 많더군요. 클라우드가 꼭 가상화를 포함할 필요는 없으니…

 

그리고 사실 AWS를 사용하는 것만으로 Lock-in 이 되는 걸 피하기가 어렵습니다. 아마존의 특별한 서비스를 사용한다면, 그냥 100% 이미 Lock-In이 된 것이고, AWS API만 이용하더라도 어느 정도 Lock-In이 되었다고 봐야할 듯  합니다. 그래서 차후에 후발주자나 오픈 소스에서는, 아마존의 서비스를 사용하더라도 같은 API 기반에 오픈소스나 이동할 수 있는 방안이 제공될 듯 합니다.( 예를 들자면, 오픈소스로, 아마존 Queue 서비스와 같은 기능을 구축한다든지…) 즉, PasS 서비스등을 이용하게 되면, 어쩔 수 없게 Lock-In이 디폴트 속성으로 딸려오게 됩니다. 예를 들어 Google App Engine으로 서비스를 하는데, 구글이 사용료를 올리면, 다른 서비스로 옮기기 매우 힘들껍니다.

 

그리고 아마존 AWS를 사용하기가 어렵습니다. 많이 써보신 분들의 얘기를 들어보면, 공통적으로 여러가지 장애가 있고, 원인을 찾기 힘들때가 많다라든지, 실제 물리 서버들을 쓸 때는 쉽게 해결 할 수 있는 것들을, AWS에서는 쓸 수가 없거나 환경이 달라서 힘들다 라는 얘기들을 듣게 됩니다.

 

결정적으로, Startup 에게 기존의 클라우드 서비스는 비쌉니다. 저도 몇몇 Startup 분들에게 들고, 계산해봐서 알게 된 것이지만, Startup은 기본적으로 돈이 부족합니다. 즉, 돈을 인력과 시간을 들여서, 처리하게 되는데, 아마존 AWS등의 클라우드 서비스를 쓰게되면 한달 서버비만, 감당할 수 없는 돈이 나오게 됩니다. 서버 몇대로 거의 2배 이상의 운영비가 차이가 난다고 하더군요. 즉, StartUp 이라면 그냥 서버 사서, 몸빵을 하시는게 돈을 아끼게 됩니다.

 

클라우드가 항상 강점을 가지는 부분은 순간적으로 서버가 많이 필요할 때, 예측 하기 어려울 때가 아닐까 싶습니다. 하루 이틀 잠시 쓰고 반납을 해야하기에는 지금의 클라우는 어떻게 보면 정말 좋은 툴입니다.  즉, 클라우드의 최대 장점은 On-Demand 에 바로 바로 대응이 가능하다 이지 않을까 싶습니다.

 

불편한 진실이라는 이름으로, 남들이 다 아는 얘기를 블라블라 하게 되었는데 클라우드로의 전향이라는 큰 흐름은 바뀌지는 않을꺼라는 생각이 듭니다. 빅 데이터에 대한 대비가 되어 있지 않아서, 빅 데이터에 수 많은 시행 착오를 겪어야 하는 것 처럼, 우리는 클라우드에 대해서도 대비가 되어 있는 기업이 별로 없는 듯 합니다. 자, 클라우드에 대해서 다들 삽질한 준비가 되어 있는지 우리 모두 돌이켜보면 좋을듯 합니다.