블로그 이미지
평범하게 살고 싶은 월급쟁이 기술적인 토론 환영합니다.같이 이야기 하고 싶으시면 부담 말고 연락주세요:이메일-bwcho75골뱅이지메일 닷컴. 조대협


Archive»


 
 

다르게 생각해볼만한 클라우드 컴퓨팅 활용 전략


조대협 (http://bcho.tistory.com)


근래에 스타트업 기반의 빠른 속도의 개발을 경험하고, 클라우드 컴퓨팅 도입 전략에 대해서 고민할 기회가 생겨서 여러 자료를 검토하던중에 퍼블릭 클라우드 도입 전략에 대해서 기존과 다른 접근 방식이 필요하다고 생각되어 그 내용을 정리합니다.


특정 벤더의 의존성 배제


퍼블릭 클라우드 하면 거의 공식 처럼 AWS 클라우드가 소위 말해서 갑이었으나, 근래에 들어서 구글이나 마이크로소프트가 큰 딜을 잡아나가면서 약간씩 구도가 바뀌고 있는 형상이다.  

 특히 구글의 Spotify와, Quizlet의 사례를 보면 구글 사용사례이기 때문에 구글이 좋다는 이야기지만, 내용을 디테일하게 살펴보면 꽤나 재미 있는 인사이트를 얻을 수 있다.

  • Quizlet의 사례 https://quizlet.com/blog/whats-the-best-cloud-probably-gcp
  • Spotify의 사례 https://news.spotify.com/us/2016/02/23/announcing-spotify-infrastructures-googley-future/




Quizlet의 사례는 가격과 성능에 대한 이야기인데 내용을 요약하면 비슷한 VM이면 구글이 더 싸고 성능 (CPU,메모리, 네트워크)이 훨씬 좋다는 것이다. 아마존은 다양한 가격정책으로 다양한 컴퓨팅 파워를 제공하지만 그만큼 세밀한 가격 정책에 의해서, 높은 성능을 내려면 그만큼 추가 상품을 사야 하는데 비해서, 구글의 경우에는 기본 VM들의 네트워크가 IO 성능들이 높다는 것이다.


여기서 구글의 우수성을 보는것 보다, 이게 왜 좋은지에 대한 인사이트를 얻어야 하는데, 아마존은 다른 클라우드 벤더에 비해서 포트폴리오가 매우 다양하다. 인코딩, IAM, 하드웨어 기반의 키 보안 기술 등 그래서 한번 특정 클라우드에 들어가면 다른 클라우드로 옮기기가 쉽지 않은게 사실인데, 잘 생각해보면, 근래의 클라우드 기반의 아키텍쳐는 다음과 같은 트렌드를 갖는다.


VM위에 직접 설치해서 사용


EC2와 같은 VM만 있으면 그위에 직접 소프트웨어를 설치해서 운영을 하면 된다는 것이다. 아마존에서 제공하는 RDS나 RedShift 와 같은 서비스도 결국은 MySQL이나 Postgres와 같은 오픈 소스 기반이고 대부분이 오픈소스나 기존 제품을 기반으로 되어있기 때문에 교체가 가능하다는 것이다. 강한 기술조직을 가지고 있는 기업의 경우 직접 이러한 제품들을 설치 및 운영이 가능하기 때문에 특정 벤더에 Lock in이 되는것을 최소화할 수 있다.

단 이런 소프트웨어를 설치해서 사용하기 위해서는 VM 자체의 성능과 가격이 중요해진다. 네트워크나 디스크 IO의 속도나 GPU 지원 여부등이 중요한 판단 포인트로 작용을 하게 된다.


즉 이 이야기는 EC2와 같은 컴퓨팅과 S3와 같은 스토리지와 같은 필수 서비스만 제공한다면 어떤 클라우드가 되던지 크게 문제가 없다는 것으로 생각할 수 있다.


매니지드 서비스의 분리


스타트업이나 또는 운영을 자동화하여 개발에 집중하는 조직의 경우 RDS와 같은 클라우드 서비스 제공자가 운영을 대신 해주는 managed 서비스를 이용하는 것을 선호하는데,  근래에 들어서 매니지드 서비스를 전문적으로 제공하는 업체들이 많아졌다. mongoDB나 Redis와 같은 NoSQL의 솔루션을 매니지드 서비스의 형태로 제공하는 compose.io를 보면, 이러한 서비스를 AWS, IBM Softlayer, Digital Ocean등의 몇몇 클라우드 (IaaS)위에서 제공한다는 것이다. 


내가 어떤 IaaS를 사용하건간에, 전문화된 업체를 통해서 특정 솔루션을 매니지드 서비스 형태로 사용이 가능하다. 또 다른 사례중의 하나는 PaaS 플랫폼으로 유명한 Heroku의 경우인데, Heroku는 PaaS 이지만, 사실상 아래 인프라는 AWS로 되어 있다. 현재는 AWS만 지원 하지만, 클라우드 시장이 커감에 따라서 다른 인프라를 충분히 지원이 가능하다고 볼 수 있다. Heroku의 경우 아마존 회사가 아니라 Salesforce.com에 인수되었기 때문에 아마존을 꼭 사용해야 하는 이유가 없다, Cloud Foundary라는 오픈소스를 이용해서 구현이 되었기 때문에 VM만 있다면 큰 문제 없이 다른 인프라에 배포가 가능하다.  (Heroku는 CF를 기반으로 하지 않는다. IBM의 Bluemix가 CF 기반임)





정리해서 말하자면 인프라 클라우드 사업자가 있고 그 위에 매니지드 서비스를 제공하는 전문 사업자들이 점점 더 늘어날 것이고, 이 사업자들은 인프라에 대한 종속성이 없기 때문에, 인프라 클라우드의 차별화가 그다지 크지 않아질 수 있어서 특정 벤더에 대한 종속성이 약해질것이라고 본다.


오픈 API를 통해서 하이브리드 클라우드 기반의 서비스 분산 배치


오픈 소스로 대체가 불가능한 특별한 서비스들이 있는데, AI나 빅데이타에 관련된 것들이 그러하다, 마이크로 소프트나 구글의 경우 머신 러닝 기능을 OPEN API 형태로 제공하고 있고, 알고리즘이 자사의 노하우가 들어가 있는 형태이기 때문에, 다른 오픈소스로 대처가 어렵다 물론 Spark ML과 같은 라이브러리등이 있기는 하지만 개발에 들어가는 노력이나 알고리즘의 품질이 차이가 많이 난다. 얼마전에 구글이 영상 인식을 가능하게 해주는 VISION API를 발표하였고, 마이크로 소프트도 이 보다 많은 기능을 가지고 있는 영상 인식 API를 발표하였다. 흥미로운 점은 이것들이 API로 서비스가 된다는 것이고 이말인 즉, 원격에서 호출이 가능하다는 이야기다. 

이런 API의 특성상 처리 시간이 호출시간에 비해서(네트워크 시간) 길기 때문에, 리모트로 호출한다고 해서 아주 크게 문제가 되지 않고, 근래의 아키텍쳐 특성상 MSA(마이크로 서비스 아키텍쳐)와 같은 분산 서비스 아키텍쳐가 주류를 이루고 있기 때문에, 메인 시스템과 이러한 API 시스템이 꼭 같은 위치에 있지 않더라도 크게 문제가 없다.


클라우드 서비스 제공자 선택은 가격 보다는 부가 서비스와 기술 지원이 관건


Spotify에 사례를 보면 재미있는 것중에 하나가 구글 클라우드를 선택한 주요 이유가 빅데이타 플랫폼과 기술 지원이다.

 Spotify 의 블로그 내용을 보면 가격은 크게 의사 결정 요소로 작용하지 않았다는 것이다. 실제로 요즘 클라우드 시장이 과열이 되면서 디스카운트가 많이 들어가고 있고, 특히 소위 잘나가는 벤더와 잘나가지 못하는 벤더 (조이언트나 랙스페이드 등)가 갈려지면서, 잘 나가지 못하는 벤더들이 레퍼런스를 잡기 위해서 파격적인 할인에 나서고 있다. 클라우드 컴퓨팅의 인프라 가격은 규모의 경제 측면에서 큰 벤더들이 계속해서 시장을 잠식해 나갈 것이고 자체 기술 개발을 통해서 점점 더 가격을 낮춰갈것이다. 아마존의 경우에도 자사의 데이타 센터에 최적화된 CPU를 인텔에 주문했을정도로 이제 인프라 최적화는 점점 더 가속화되어가고 있고, ARM CPU 기반의 서버도 시장에 조금씩 나오는 만큼 가격 경쟁은 가속화 되리라 본다. 특히 통계를 보면 클라우드 가격은 매년 13% 정도씩 감소하고 있다고 한다.


그러면 Spotify가 구글 클라우드 플랫폼을 선택한 이유는 무엇일까?

빅데이타 플랫폼에서 찾을 수 있다. 구글이 경쟁사 대비 더 좋은 빅데이타 플랫폼 서비스를 제공하고 있다는 것인데, AWS의 빅데이타 플랫폼의 하둡이나 스파크, RedShift와 같은 기존의 오픈 소스를 매니지스 서비스로 제공하는 것이 주요 전략이라면, (물론 Dynamo처럼 직접 원천 기술을 만들어서 제공하는 서비스도 있다.) 구글은 기술의 종가답게 이러한 기술들에 대해서 강점을 가지고 있다고 Spotify 블로그에서 전하고 있다.


즉 앞에서 설명한것과 같이 VM 서비스는 평준화 되어 크게 비교 포인트가 되지 못할 것이며, 부가 서비스들 중에서 AI나 빅데이타 영역과 같이 특화되어 대체가 어려운 서비스를 가지고 있는 업체가 강점을 가지게 될것이다.


아울러 기술 지원 부분은 기술 도입에 있어서 중요한데, AWS의 경우 일주일이 멀다하고 계속해서 신기술과 업데이트가 발표되고 있다. 이러한 상황에서 실무 입장에서 새로운 기술을 일일이 찾아보고 자사의 시스템을 클라우드 서비스 제공자에 최적화 하는데는 많은 공부가 필요하고 서비스 제공자에게 서비스 개선등을 요청하기 위해서 원할한 커뮤니케이션 채널이 필요하다. 이를 흔히 프리세일즈(물건을 팔기전에 기술적으로 기술을 설명해주는)와 포스트 세일즈(물건을 판후에, 잘 사용할 수 있도록 지원하는)라고 하는데, 클라우드는 특성상 Self Service의 개념을 가지고 직접 배워서 직접 사용한다는 개념인데, 그러기에는 기술의 속도가 너무 빨라서 이에 대한 지원이 필요하다는 것이다. 실제로 엔터프라이즈 시장에서 성공했던 오라클이나 IBM과 같은 공룡들도 많은 매출이 제품을 판 후에 구현을 도와주는 포스트 세일즈에서 발생을 하였고, 프리세일즈 과정에도 많은 리소스를 투여했던 것이 사실이다.


아직은 클라우드 서비스 제공자의 프리/포스트 세일즈가 강하지는 않지만 (있기는 있다). 이쪽이 성장하면서 좋은 프리/포스트 세일즈 조직을 가진쪽이 비지니스 딜에 좋은 포지션을 가지게 될것이라고 생각해본다.


하이브리드 클라우드 전략


기업의 클라우드 전략을 보면 크게 두가지 갈래로 나뉘어 지는데, 자체 데이타 센터 구축 전략과 클라우드 활용 전략이다.

페이스북과 같은 경우 자체 클라우드를 사용하고, 애플의 경우에도 자체 데이타 센터를 구축하고 있는 것으로 알려지고 있다. http://fortune.com/2016/02/02/apple-data-center-move/

페이스북이나 구글같은 전통적인 테크 기업이면서 서비스 볼륨이 일정 규모 이상되는 경우는 규모의 경제상의 경제상에서 자체 데이타 센터를 구축하고, 자체 서비스에 맞는 인프라를 최적화 해가는 방향으로 집중을 하고 있다. 


반면 Netflix나 Spotify와 같은 서비스 기업은 서비스 개발에 집중을 하고, 인프라는 퍼블릭 클라우드를 사용하는 형태로 방향을 잡아가고 있다. 아무리 인력을 투여해도 퍼블릭 클라우드에서 개발하는 신규 기능을 따라 잡기도 힘들뿐더러, 비용 최적화 면에서도 규모의 경제 특성상 퍼블릭 클라우드가 유리하다는 판단하에서다.





그러면 퍼블릭 클라우드와, 자체 데이타 센터 무엇이 정답일까? 사실은 잘 모르겠다. 

하나 힌트를 얻자면, 애플의 클라우드 전략에서 살펴볼 수 있는데, 애플은 규모의 경제면에서 자체 클라우드를 갖출 정도로 큰 iCloud 서비스를 사용하고 있지만, 자체 클라우드 전략의 이면에서는 데이타 보안에 대한 부분이 있다. 고객의 중요 데이타를 타사의 클라우드에 넣는 것이 계속해서 부담이 되어 왔다. 


그렇다면, 중요 데이타나 중요 시스템은 자사의 클라우드에서 서비스하고, 다른 서비스나 또는 모자른 자원은 퍼블릭 클라우드를 사용하는 하이브리드 클라우드 전략을 갖추지 않을까 조심스럽게 생각해본다.


근래에 얻은 인사이트를 기록해놓고자 정리를 하였지만, 클라우드 컴퓨팅은 이제 거의 필수제가 되어가는것 같다. 특히나 구글,MS,아마존과 같이 규모의 경제를 앞세운 거대 기업들이 이 주도권을 잡아가면서 다른 사업자들은 힘을 잃어가면서 대형 서비스 제공자만 살아 남을것으로 보이고, Digital Ocean과 같은 niche vendor (특정 도메인에 선택과 집중을 통해서 가치를 창출해나가는)들은 특화된 서비스로 특화된 시장을 열어 나갈것이라고 보인다.


서비스 전략이나 시스템 아키텍쳐 설계도 이러한 클라우드 벤더의 변화에 맞춰서 다양화를 해나가야 하지 않을까?

예전 같으면 AWS를 깔고 시스템을 디자인 했다면, 요즘에 다시 시스템을 디자인 한다면 One of IaaS 서비스 + Compose.IO 와 같은 매니지스 서비스 기반의 설계가 조금 더 실용적이 아닐까 생각해본다.

클라우드 컴퓨팅이 IaaS,PaaS,SaaS와 같은 서비스 제공자 입장
Private,Public 클라우드와 같은 사용 대상에 대한 입장에 대한 정의가 이제는 다 이루어졌고, 구축 및 서비스가 성숙해가는 단계에서 근래에 시트릭스에서 3P 라는 클라우드 컨셉을 발표했다.

기존 클라우드가

  • 기업 내부에서 사용하는 Private
  • 기업이 외부 자원을 사용하는 Public 이었다면
  • 여기에 하나 더해서 + Personal Cloud의 개념을 추가하여 발표하였다.


새로운 클라우드 컴퓨팅 개념이라기 보다는 기존에 있었던 형태의 서비스를 조금 관점을 바꿔서 체계화 시킨 것에 불과하지만, 이 체계화 자체가 의미를 갖는다.
Personal Cloud는 기업이 아니라 각각의 개인에게 클라우드 서비스를 제공한다는 개념이다. 즉 클라우드 컴퓨팅이 컴퓨팅 리소스를 서비스로 제공하는 개념인 만큼 개인에게 컴퓨팅 파워를 제공한다는 개념인데, 가장 보편적인 서비스가 Personal Storage Cloud이다. 인터넷을 통해서 스토리지 공간을 개인에게 제공하는 서비스로,
국내에는 네이버 NDrive, 다음 클라우드, KT uCloud, 해외에는 Microsoft SkyDrive, SugarSync, DropBox, Box.net 등이 대표적인 서비스로 꼽힌다.
이 서비스의 특징들은 개인에게 

  1. 스토리지 공간 제공
  2. 파일 동기화 서비스 제공 (슈가싱크, Microsoft의 LiveMesh)

하는 특징을 가지고 있다.
이 서비스들도 서비스 제공업자의 형태에 따라서 여러가지로 나뉘어 질 수 있는데,

1. 순수 스토리지 공간만 제공하는 스토리지 서비스 사업자
이는 슈가 싱크나 DropBox처럼 순수하게 개인에게 스토리지 서비스(+싱크 서비스)를 제공하는 모델

2. 스토리지 공간을 제공하면서 자사의 다른 서비스와 융합 시키는 형태
대규모 벤더가 이에 해당하는데, Microsoft의 SkyDrive는 인터넷 저장 공간으로도 사용을 하지만, Microsoft의 Office와 연동이 되서 문서를 클라우드에 저장하여 다른 디바이스에서도 그 문서를 공유할 수 있도록 해준다.
즉 개인 스토리지 공간을 단순하게 개인에게 파일 저장공간으로만 제공하는 것이 아니라, 자사가 가지고 있는 서비스나 애플리케이션과 융합하여 시너지를 불러내는 형태이다.

3. 스토리지 공간을 타사의 다른 서비스와 융합 시키는 형태
스토리지 공간을 자사의 애플리케이션이 아니라 타사의 애플리케이션과 연동하도록 지원해주는 형태로, Box.NET의 경우 Zoho나 SalesForce.COM과 같은 다른 클라우드 서비스와 연동을 통해서 자사의 스토리지 사용량을 올리는 형태이다.

특이한 iCloud
그 중에서 조금 재미있는 비지니스 모델을 보면 애플의 iCloud 모델을 볼 수 있는데, 애플의 iCloud 모델중에 일반 사용자에게 잘 노출 되지 않는 서비스가 "Document 공유" 라는 서비스 이다. 이 Document 공간은 개인이 사용하는 개별의 애플리케이션이 사용할 수 있는 스토리지 공간으로 예를 들어 메모 애플리케이션이 이 스토리지 공간에 메모를 저장하여 다른 디바이스에서도 접근하여 자신의 디바이스에서는 어디서든지 같은 컨텐츠를 접근할 수 있도록 하는 형태이다.
 기존의 에버노트등이 이미 클라우드를 이용하여 멀티 디바이스간의 컨텐츠 공유를 지원하는데, 이게 모가 새롭냐? 라고 생각할 수 있겠지만 기본적인 비지니스 모델이나 목적 자체가 다르다.
 다른 스토리지 모델이 스토리지 판매를 통해서 수익을 창출하거나 자사의 서비스의 가치를 높이는데 목적을 두는데 반해, iCloud의 Document 서비스는 개발자 생태계를 지원하여 품질 높은 App을 만들 수 있게 해주는데 그 목적을 두고 있다고 판단할 수 있다. 
 이유는 기존에도 에버노트와 같이 다른 클라우드 예를 들어 Azure나 Amazon 클라우드를 이용하여 스토리지를 사용할 수 있었지만, 스토리지 사용에 필요한 비용을 애플리케이션 개발업체가 부담해야 하는 비지니스 모델이었다. 한번 앱을 판매해서 수익을 창출하는 입장에서 매달 들어가는 스토리지 사용비는 당연히 부담이 될 수 밖에 없고 그로 인해서 대규모 서비스나 인기있는 서비스가 아니라면 선뜻 이런 클라우드 스토리지를 사용하기 어려웠다.
 애플이 여기서 사용한 재미있는 트릭은 iCloud는 개인에게 5GB의 스토리지를 무료로 제공한다. 이 스토리지 비용은 단말에 포함이 되어 있는 금액이고 5G 이상을 사용할때는 개인이 사용에 대한 금액을 지불한다. 눈치가 빠른 사람은 이미 이해했겠지만

애플리케이션이 클라우드 저장소를 사용할 때 비용을 개발자가 지불하지 않고 개인에게 전가시킨 모델이다


는 것이다.
클라우드에 대한 사용비용을 절묘하게 사용자에게 전가 시킨 비지니스 모델로, 개발자의 경제적인 부담을 덜어주고
여기에 +해서 iPhone SDK에 이 클라우드 접근 기능을 단순화 하여 탑재해 놓음으로써 관리에 대한 기술적인 진입 장벽을 없앰과 더불어 개발자가 클라우드를 관리해야 하는 수고를 덜어준 것이다.

사실 다른 PIMS와 같은 서비스는 OutLook이나 Google mail, calendar가 있기 때문에 그다지 매력적이지 않다. Photo Stream도 일종의 샘플앱 정도의 개념이고, iCloud의 궁극적인 의미는

 개발자에게 클라우드를 무료로 줘서 애플리케이션 생태계를 윤택하게 함으로써 iOS의 생태계를 발전 시키고 이를 통해서 단말의 매출을 증대화 시키는데 있다.


3P 모델을 설명하다가 목표를 벗어나서 iCloud에 대해서 짚고 넘어갔는데, iCloud에 대한 분석 내용은 나중에 별도로 자세하게 포스팅 하겠다.