제공 :
한빛 네트워크
저자 : Edd Dumbill
역자 : 조성규
원문 :
Big data in the cloud
Amazon, Google, Microsoft이 제공하는 클라우드 서비스는 어떻게 다른가?
빅 데이터와 클라우드 기술은 함께 발전한다. 빅 데이터는 처리를 위해 클라우드 서비스가 제공해 줄 수 있는 서버군을 필요로 한다. 하지만 실제로는 어떨까? "클라우드"와 "빅 데이터" 모두 상당한 과장으로 인해 모호하고 아주 넓은 의미로 사용되고 있다. 이 기사는 이 모든 것들을 가능한 간단하게 분석하고, 무엇이 실제로 가능하고, 뭐가 앞으로 가능해질지를 강조할 것이다.
IaaS와 개인 클라우드
"클라우드"라고 불리는 것은 종종 가상서버로 요약된다. 이는 사용량에 따라 대여가능하고, 자기 자신을 일반 서버로 표현하는 컴퓨터 자원이다. 일반적으로 서비스로 제공되는 기반체계(IaaS)라고 불리고, Rackspace Cloud나 Amazon EC2 같은 플랫폼으로 제공된다. 여러분은 이 서비스의 시간을 구입하고 Hadoop이나 NoSQL 데이터베이스 같은 소프트웨어를 설치하고 설정한다. 내 기사 "
Big Data Market Survey"에서 언급된 대부분의 솔루션은 IaaS 서비스에 배포될 수 있다.
IaaS 클라우드 서비스를 이용한다는 것은 모든 배포를 수동으로 해야 한다는 것을 의미하지 않는다. 빅 데이터가 요구하는 장비군에는 다행스러운 소식이다. 자원을 관리하고, 기반도구를 자동화하고, 서버 설치와 설정을 다루는 통합 프레임워크를 사용할 수 있다.
RightScale은 클라우드 서버를 관리할 때 일어나는 문제 일부를 완화시키는 상업적인 다중 클라우드 관리 플랫폼이다.
OpenStack이나
Eucalyptus 같은 것은 개인 데이터센터와 공개된 클라우드를 같은 인터페이스로 표현하기 위한 프레임워크다. 업계를 아우르는 지지를 끌어들이는 OpenStack은 현재 컴퓨터 자원과 (Amazon의 EC2 같은)과 스토리지(Amazon S3같은) 문제를 해결하고 있다.
향후 2년 간 클라우드 서비스를 쓰는 것은 판매자들이 초기 표준을 채택함에 따라 더욱 간단해 질 것이다. 공통된 인터페이스가 있을 것이고, 공개나 개인 클라우드 장비, 아니면 둘다를 쓰더라도 관계 없을 것이다.
빅 데이터의 경우, 많은 설정 도구가 이미 명백히 Hadoop을 대상으로 하고 있다. 그 중에서 Dell의
Crowbar 클러스터를 간단히 설정하고 배포하는 것을 주 특징으로 하고,
Apache Whirr는 Hadoop 서비스와 다른 클러스터 데이터 처리 시스템을 가동하는데 특화되어 있다.
오늘날, IaaS를 쓰게 되면 많은 클라우드 서비스 공급자 중 원하는 것을 선택해서, 개인 클라우드도 사용할 수 있고, 모든 것을 통제할 수 있다. 하지만 배포, 관리, 유지보수를 직접 해야 한다.
플랫폼 솔루션
IaaS를 사용하는 것은 기껏 어느 정도까지만 빅 데이터에 데려다 줄 뿐이다. 그것들은 연산과 저장 자원의 생성을 다룬다. 하지만 더 높은 단계를 해결해 주지 않는다. Hadoop, Hive나 비슷한 솔루션들의 설치가 해결책이다.
IaaS를 넘어서, 많은 클라우드 서비스들이 빅 데이터가 작동하는 애플리케이션 레이어를 제공한다. 때로 관리 솔루션이나 서비스로서의 플랫폼(PaaS)이라 지칭되는 이 서비스들은 데이터베이스나 MapReduce 같은 것들을 설정이하거나 확장할 필요를 없게 해 주고, 작업부담과 유지보수를 줄여준다. 추가적으로, PaaS 공급자는 애플리케이션 단계에서 호스팅을 하는 것이 얼마나 효율적인지 알게 되고, 그것 절약분을 고객에게 돌려줄 수 있다. 주력인 VMware(Cloud Foundry)와 Salesforce(Heroku, force.com)를 포함해서, 일반적인 PaaS 시장은 급성장 중이다. 빅 데이터와 기계 학습의 필요성이 업계에 스며드는 만큼, 이 업체들은 빅 데이터 특화 서비스를 추가할 것이다. 이 기사의 목적에 맞게, 이미 빅 데이터 솔루션을 구현한 업체들에 집중해 볼 것이다.
최근, 빅 데이터 플랫폼 서비스의 기본적인 제공자는 Amazon, Google, Microsoft이다. 기사 말미의 표에서 그들의 서비스에 대한 요약을 볼 수 있다. Amazon 웹 서비스와 Microsoft의 Azure 모두 IaaS와 플랫폼 간의 경계를 흐리고 있어서 원하는 대로 조합할 수 있다. 대조적으로, Google의 철학은 서버라고 하는 개념을 뛰어넘어, 애플리케이션의 기본 개념에만 초점을 맞춘다. 이들 중에서, Amazon만이 상품에 대해 풍부한 경험이라는 말을 붙일 수 있다.
Amazon 웹 서비스
Amazon은 빅 데이터 처리 운영에 분명한 경험이 있다. Hadoop을 위해 Amazon EC2를 사용하는 것은 초기에 빅 데이터를 적용한 곳에 널리 퍼져 있고, 자연스런 움직임이었다. Amazon의 확장성 있는 컴퓨팅 파워 공급에 힘입은 바 컸다. 이에 기반하여, Amazon은 2009년 확장 가능한 Hadoop 서비스 호스팅을 제공하는
Elastic Map Reduce를 출시했다.
Amazon의 플랫폼에서 애플리케이션은 IaaS와 PaaS 중에서 좋은 것만 고를 수 있다. 범용 EC2 서버들은 적절히 개별 목적에 맞게 Amazon이 세심히 관리해 주는 서비스에 접근하는 애플리케이션을 운영할 수 있다.
Elastic Map Reduce 만큼이나, Amazon은 빅 데이터와 관련 있는 많은 서비스를 제공한다. 조정 분산 컴퓨팅을 위한
Simple Queue Service라든가, 관계형 데이터베이스 운영 같은 것이다. 빅 데이터 전문의 결과로, Amazon의 고성능 컴퓨팅 솔루션은 과학이나 기술 관련 애플리케이션에서 요구되는 대기율이 낮은 클러스터 컴퓨팅으로 조정되었다.
Elastic Map Reduce
Elastic Map Reduce(EMR)은 보통 Hadoop이 하듯, Pig, Hive 또는 다른 프로그램 언어를 통해 프로그램될 수 있고, 데이터 입출력에 Amazon"s S3 스토리지 서비스를 쓴다.
Elastic Map Reduce는 Amazon의 SDK와 도구들을 통해서, 아니면
Karmasphere에서 제공되는 GUI 분석도구나 IDE 제품을 가지고 접근할 수 있다. 이런 도구들의 결합으로 EMR은 실험과 분석 작업에 강한 면모를 보인다. Amazon의 EMR 가격 정책은 EMR을 쓰는 것을 직접 EC2를 설정해서 Hadoop을 실행하는 것보다 훨씬 매력적으로 만든다.
Hadoop을 구조화된 자료를 만들어내는 애플리케이션에 통합하고, S3를 주 데이터 원천으로 쓰는 것은 거추장스러울 수 있다. 왜냐하면, Hadoop의 HDFS와 비슷하게, S3는 불분명한 데이터를 저장하는 단계에서 작동하기 때문이다. 이에 대한 Hadoop의 해결책은 나머지 Hadoop 스택을 통합하는 NoSQL 데이터베이스 HBase이다. 불행히도, Amazon은 현재 Elastic Map Reduce에서 HBase를 제공하지는 않는다.
DynamoDB
HBase 대신, Amazon은 직접 관리하고, 확장가능한 NoSQL 데이터베이스 DynamoDB를 제공한다. 관리되는 솔루션이므로, EC2에서 직접 데이터베이스를 돌리는 것보다 성능과 경제성 양 쪽에서 나은 선택이다.
DynamoDB 데이터는 S3에서 받아갈 수도, 불러올 수도 있다. EMR과 상호 운용도 제공한다.
Google
Google의 클라우드 플랫폼은 경쟁자들과 확연히 구분된다. 가상화를 제공하는 것이 아니라 정의된 API와 서비스를 사용하는 애플리케이션 콘테이너를 제공한다. 개발자들은 기계의 구조에 대해 신경 쓸 필요가 없다. 애플리케이션은 클라우드 환경에서 동작하고, 정의된 자원 한계 안에서 필요한 만큼 사용한다.
Google의 플랫폼을 쓰기 위해서는 그 API의 제한 안에서 뭔가를 해야 한다. 하지만, 잘 맞게 만든다면, 구글이 서비스에 적용하는 안정성, 튜닝과 성능 개선을 얻을 수 있다.
AppEngine은 Google의 클라우드 애플리케이션 운영 서비스다. 데이터를 병렬처리하는 MapReduce 기능을 제공하는데, 이는 분석 목적으로 이용한다기 보다는 복잡한 애플리케이션의 일부로 기능이다. 대신, Google의 빅 데이터에서 핵심인 BigQuery와 Prediction API가 제공된다. 각각 분석과 기계 학습 기능을 제공한다. 이 서비스들은 둘 다 Google의 웹 기반 컴퓨팅 비전에 일관성 있게 REST API를 통해 독점적으로 사용 가능하다.
BigQuery
BigQuery는 1TB가 넘는 데이터셋에 대한 대화식 분석에 적합한 분석 데이터베이스이다. 작은 수의 테이블에 많은 로우(row)가 있는 경우 가장 잘 작동한다. BigQuery는 익숙한 SQL 인터페이스를 제공한다. 사실, Apache Hive와 비슷하다. 하지만 통상 속도가 더 빠르므로, 탐사 데이터 분석에는 BigQuery를 선택하는 것이 좋다. 데이터를 BigQuery에 넣으려면 직접 업로드 하거나 Google의 클라우드 스토리지 시스템에서 가져와야 한다. 이는 BigQuery에서 가장 크게 개선이 요구되는 측면이다 Amazon의 S3가 디스크 자체를 보내 데이터를 가져올 수 있는 반면, Google은 현재 그런 설비가 없다. 데이터를 BigQuery로 스트리밍을 통해 보내는 것도 불가능하므로, 데이터를 최신으로 유지하려면 정기적인 데이터 입력이 필요하다. 거기다, BigQuery가 콤마로 분리된 값(CSV)형식 파일만 허용하므로, 사전에 데이터를 정리할 외부 수단이 필요하다.
최종 사용자 인터페이스를 제공하는 대신에, Google은 Elastic Map Reduce이 도구 통합을 이룬 것과 같은 식으로 BigQuery가 판매자들의 상품에 포함되는 것으로 성장할 생태계를 원한다. BigQuery는 현재 베타 테스트 중이고, 원하는 사람은 누구나 테스트에 지원할 수 있고, 2012년 중에 일반 공개될 것으로 예상된다.
Prediction API
기계학습의 많은 사용처는 잘 정의되어 있는데, 분류, 감정분석이나 추천 발생 같은 것이다. 이를 해결하기 위해 Google은
Prediction API 상품을 제공한다.
Prediction API를 사용하는 애플리케이션은 구글 시스템 안에서 운영되는 모델을 생성하고 훈린시켜서 작동한다. 한 번 훈련되면, 이 모델은 스팸 탐지 같은 예측을 하기 위해 사용될 수 있다. Google은 이 모델들을 공유하고, 선택적으로 과금할 수 있도록 하기 위해 작업 중이다. 이렇게 되면 이미 훈련된 모델의 장점을 이용할 수 있게 되면, 많은 경우 시간과 노력을 절약하게 될 것이다.
유망하지만, 구글이 제공하는 것은 아직 초기 단계다. 더 많은 서비스간 통합이 필요하며, 그들의 도구를 더욱 쉽게 쓸 수 있도록 생태계가 발전할 시간 또한 필요하다.
Microsoft
내 기사 "
마이크로소프트의 하둡과 빅 데이터 계획"에서 Microsoft의 빅 데이터 전략을 상세히 다룬 바 있다. Windows 서버에 더해 Windows Azure에서 데이터 플랫폼을 제공함으로써, Microsoft의 목표는 현장 기반이나 클라우드 기반의 배포를 모두 같은 기술로 만드는 데 있다. Azure는 Amazon이 제공하는 웹 서비스와 많은 면에서 닮아 있고, SQL 서버 같은 관리되는 소프트웨어를 통해 IaaS서비스를 섞은 것도 제공한다.
Hadoop은 Microsoft의 빅 데이터 접근에서 가장 중심되는 기둥이고, 자체 데이터베이스와 경영 정보 도구의 생태계로 둘러싸여 있다. Microsoft 플랫폼에 이미 투자한 단체를 위해, Azure는 빅 데이터 통합을 위한 가장 부드러운 경로를 제공한다. Azure는 언어 선택에 실용적이라, Microsoft 것 이외에도 Java, PHP, Node.js를 지원한다.
Google의 BigQuery 처럼, Microsoft의 Hadoop 솔루션도 지금은 비공개 베타 테스트 중이며, 2012년 중순에는 일반에 공개될 것으로 보인다.
빅 데이터 플랫폼 비교
아래 표는 Amazon, Google, Microsoft의 클라우드 플랫폼에서 데이터 저장장치와 분석력을 요약한것이다. 빅 데이터를 제대로 제공하지 않는 Iaas솔루션은 의도적으로 제외하였다.
결론
클라우드 기반 빅 데이터 서비스는 오버헤드를 제거하고, 서버군을 설정하고 튜닝하며, 딱 쓴 만큼만 돈을 내면 되는 상당한 장점을 제공해준다. 데이터를 옮기는 것은 느리고 비싸기 때문에 가장 큰 문제는 항상 데이터 지역성이 될 것이다. 가장 효율적인 빅 데이터 클라우드 솔루션은 데이터가 모이는 곳에 있는 것들이 될 것이다. 이는 EC2, Azure나 AppEngine을 기본 애플리케이션 플랫폼으로 삼을 이유가 될 것이고, 빅 데이터 해결에 우선순위를 두어야 할 Cloud Foundry나 Heroku같은 PaaS 경쟁자들의 지표가 될 것이다.
클라우드 서비스에서 빅 데이터는 아직 초기다. 이 시점에서 Amazon만이 검증된 서비스를 제공한다. 클라우드 서비스 자체가 초기 형태이고, 향후 2년간 표준화와 혁신의 증가를 동시에 보게 될 것이다.
어쨌거나, 기반 시설에 대해 신경 쓸 필요 없다는 것과 확장의 경제성이라는 두 장점은 빅 데이터를 위해 클라우드 서비스에 투자할 가치가 충분하다는 것을 의미한다. 실험적이거나 해외투자의 경우에는 더 그렇다. 미래를 보면, 빅 데이터 분석능력이 컴퓨터 솔루션의 기능 중 필수적인 형태가 될 것은 자명하다.