대용량의 미가공 데이터를 호스팅하고 공유하기(1)

등록일: 2014. 08. 18

데이터는 언제나 옳다! 대규모 데이터 처리와 분석 실무: 유스케이스별 빅데이터 및 NoSQL 기술 가이드

  • 마이클 마누체흐리 지음
  • 정부환, 류상호, 염화음, 이화경 옮김
  • 256쪽
  • 25,000원
  • 2014년 05월 28일

불쌍한 친구, 파일 더미에서 괴로워하고 있구나

아누린 베난(Aneurin Bevan)

인터넷의 두 가지 진실은 “아무도 당신이 개인지 모른다(no one knows you’re a dog)”와 많은 데이터를 세상과 공유하기가 쉽다는 것이다. 그렇지 않은가?

많은 양의 공개 데이터를 공유하는 것은 정부와 연구 단체의 일반 관행으로 자리 잡아야 한다. 데이터는 명철한 정책을 수립하는 데 도움되기도 하고, 탐사 보도를 위한 혁신적인 불씨를 제공할 수 있다. 하지만 지방자치단체의 공공 데이터를 찾기란 실제로 쉽지 않다. 사실 공공 데이터를 제공하는 지방자치단체들은 유능한 정부라면 당연히 했어야 하는 일인데도 마치 혁신적 선구자인 양 언론에서 조명받을 때가 많다. 설사 데이터에 자유롭게 접근할 수 있더라도 사람이나 컴퓨터 프로그램이 의미 있는 방식으로 소비하기가 거의 불가능한 데이터 포맷으로 공유되고 있다. 공공 데이터를 온라인에서 공유하는 작업은 언뜻 보기에 간단하고 당연한 것으로 여길 수 있지만 현재는 일반적이라기보다는 예외적인 경우에 속한다. 2011년, 유명 웹툰인 XKCD에서는 인터넷을 통해 대용량 파일을 보내는 작업을 “얼리 어댑터들도 여전히 어떻게 해야 할지 파악 중인 어떤 것”이라고 묘사한 적이 있다1.

이러한 모든 문제에도 불구하고 많은 양의 데이터를 수천, 심지어 수백 만의 개별 문서로 저장하고 공유하는 것은 더 이상 기술적으로나 경제적으로 불가능하지 않다.

2장에서는 공적으로 소비되는 대량의 문서를 공유하는, 언뜻 보기에는 간단한 작업이 직면한 기술적인 도전과제와 이를 극복하기 위해 어떤 기술을 활용할 수 있을지 살펴본다. 비슷한 상황에 처했을 때 어떤 것이 가장 좋은 방안이고, 어떤 도구가 유용한지 이해하는 것이 목표다.

파일 더미에서 괴로워하다

여러분이 큰 회사의 CIO라고 상상해보라. 직원들은 각기 다른 역할을 수행하는 일종의 데이터 소비자다. 많은 직원들은 회계 보고서를 작성하는 데 관심이 있지만 역할 때문에 민감한 인사 정보에는 접근할 수 없다. 일부 직원들은 소프트웨어 개발자이고, 애플리케이션을 구축하기 위해 프로그램을 통해 데이터에 접근해야 한다. 일부 사용자는 기술에 서툴러서 대시보드를 통해 회사 지표 같은 데이터에 접근해야 한다. 동료 임원들은 대부분의 데이터에 접근할 수 있을지도 모르겠지만 그들이 정말로 추구해야 하는 것은 주요 트렌드를 높은 수준으로 이해하는 것이다.

기가바이트, 심지어 테라바이트급의 데이터를 공유해야 하는 문제에 직면할 경우 선택 가능한 다양한 구현 방안이 등장한다. 이러한 선택은 비용, 고객, 전문성 등 다양한 요소에 영향을 받는다. 사용자마다 데이터 소비 요구는 다양하다. 다음과 같은 데이터 주문을 기억하라. “데이터의 가치를 드러내는 데 초점을 맞춰라.” 사용자들이 의미 있는 방식으로 데이터에 접근할 수 없다면 다량의 데이터를 공유하겠다는 계획은 모두 무용지물일 것이다.

다량의 파일을 공유할 때 직면하는 문제

많은 파일을 공유할 때 생기는 문제를 제대로 해결하려면 먼저 관련된 모든 문제를 이해해야 한다.

데이터 저장 방법 선택하기

첫 번째 문제는 파일을 확장 가능하고 경제적인 방식으로 공유할 수 있으면서 물리적으로 저장하는 방식을 선택하는 것이다. 단순히 웹 서버에 다량의 파일을 올리는 것은 간단하지만 스토리지 비용과 대역폭을 데이터의 양과 사용자의 수에 맞춰 확장해야 한다.

2장에서는 우선 대량의 정적 파일을 다루는 예제에 집중한다. 데이터베이스 기술에 관해서는 이어지는 장에서 다루 겠다.

적합한 데이터 포맷 선택하기

데이터 공유의 두 번째 문제는 사용자에게 제공하는 데이터의 포맷을 결정하는 것이다. 데이터를 제공하는 대상이 누구인가에 따라 포맷 선택이 달라진다. 데이터 파일은 컴퓨터 프로그래머가 사용하기 쉬워야 하는가, 아니면 평범한 사람들이 스프레드시트에 쉽게 업로드할 수 있어야 하는가? 파일의 용량도 고려해야 한다. 가능한 한 간단한 포맷을 사용해야 하는가? 아니면 사람이 쉽게 읽을 수 있게 최적화해야 하는가? 어떤 경우에는 지원하고자 하는 다양한 활용 사례에 맞게 다양한 포맷으로 제공해야 한다.

어떻게 데이터를 보여줄 것인가?

세 번째로 고려할 점은 사용자가 어떻게 데이터에 접근할 것인가다. 시민들에게 정보를 공유하려는 지방자치정부는 시각적으로 잘 설계된 온라인 데이터 대시보드를 제공해서 기술에 미숙한 시민들도 참여할 수 있게 해야 한다. 그러나 데이터 언론인이나 연구자들은 대시보드 이상의 기능을 요구한다. 상세한 분석을 위해 컴퓨터가 읽을 수 있는 다량의 미가공 데이터를 필요로 한다. 지방자치정부는 요청에 따라 데이터를 소비하는 소프트웨어 애플리케이션 개발을 장려하기 위해 웹 기반 API를 통해 프로그램 방식으로 데이터에 접근할 수 있게 하는 데도 투자해야 한다.

문제 해결하기

2장의 나머지 부분에서는 첫 두 가지 도전과제에 집중한다. 즉, 데이터를 저장하고 공유하는 전략을 다루고, 특정 활용 사례에 맞는 최적의 데이터 포맷을 이해하는 데 맞춘다. 다양한 활용 사례와 데이터를 처리하고 분석하고 시각화하는 전략은 이어지는 장에서 다룬다.

많은 파일로 구성된 다량의 공개 데이터를 가지고 있다고 해보자. 지방자치단체의 담당 공무원이라면 데이터를 공유하는 주요 목표 중 하나는 데이터 접근성을 최대화하는 것이고, 데이터 접근성이 데이터 처리 시스템을 설계할 때의 핵심 요소다. 안타깝게도 공공 데이터를 제대로 공유하는 지방자치정부는 극소수에 불과하다.

이 문제를 해결하기 위해 데이터 성공을 위한 실행 계획을 재고해보자. 가능하다면 자체 인프라를 구축하지 않고 데이터를 세상에 공유하는 방법을 살펴보자. 데이터 소비자의 요구를 파악하는 데 집중하자. 항상 데이터 처리와 관련된 도전과제와 고객을 염두에 둬야 한다. 단지 대중적이거나 친숙하다는 이유로 파일 포맷을 선택하지 말고 고객에게 적합한 포맷으로 데이터를 배포하자.

스토리지: 인프라 서비스

아직은 사무실에 있는 서버에서 파일을 서비스하지는 않을 것이다. 안타깝게도 많은 조직에서는 여전히 인하우스(in-house) 인프라를 이용해 바깥 세상과 파일을 공유한다. 거대 인터넷 기업의 필요에 맞게 개발됐던 고급 기술들이 지난 몇 년 동안 일반 애플리케이션 개발자들도 널리 사용할 수 있을 정도로 저렴해졌다. 랙스페이스(Rackspace), 아마존, 구글과 같은 많은 기업에서 유틸리티 컴퓨팅 또는 서비스로서의 컴퓨팅으로 여겨지는 서비스를 제공하기 시작했다. 사실 이러한 종류의 컴퓨팅 관련 가격 및 비즈니스 모델은 전기나 상하수도 기업들이 공익사업에 적용했던 모델을 모방한 것이다. 소량의 하드디스크나 서버 하드웨어를 구입할 만한 비용이면 이제는 세계 최대의 웹사이트들을 관리하는 데 사용되는 것과 똑같은 스토리지와 서비스 인프라를 갖춘 훨씬 더 많은 컴퓨터에 접근하는 권한을 구입할 수 있다.

컴퓨팅에서 서비스로서의 인프라(IAAS, Infrastructure-as-a-service ) 모델에는 많은 물리적 컴퓨터가 네트워크 클러스터로 서로 연결되어 마치 하나의 거대한 컴퓨터처럼 동작한다. 한 사용자에게 속한 데이터는 여러 대의 수많은 컴퓨터에 조각난 형태로 저장된다. 여기에 사용되는 하드웨어는 보통 저렴하고 쉽게 교체될 수 있다. 가장 중요한 것은 데이터 복제가 시스템 내에 구비돼 있다는 점이다. 하드웨어 장애를 처리하는 어려운 문제는 IAAS 제공자가 처리하고, 잠재적인 장애 복구를 위해 데이터가 복제돼 있다.

이러한 스토리지 모델은 여러 잠재적인 트레이드오프뿐 아니라 장점도 많다. 비용 관점에서 이러한 시스템은 개별 고객의 스토리지 비용을 줄이기 위해 규모의 경제를 이용할 수 있다. 예산이 제한돼 있는 조직에서 대단히 많은 파일을 제공하고 공유하려면 이 모델만이 터무니없는 스토리지 및 대역폭 비용을 지불하지 않고 높은 가용성으로 데이터를 공유하는 경제적으로 타당한 유일한 방법이다.

IAAS 스토리지 솔루션을 사용하는 것은 1장에서 다룬 다양한 가이드 원칙을 충족한다. 첫째, 확장에 대한 계획을 세울 수 있다. 즉, 스토리지나 대역폭이 크게 증가하는 경우를 적절히 처리할 수 있다. 또한 하드웨어를 구입 및 유지하고, 시스템 관리자를 고용하며, 백업이나 전력 등에 고민하는 대신 데이터에만 집중할 수 있으므로 인프라를 구축하지 않아도 된다.

네트워크는 느리다

네트워크는 정말 느리다. 2012년 전 세계의 평균 인터넷 전송 속도는 초당 2.3Mbps이고, 미국 평균은 5.3Mbps다2. 25GB 데이터를 5.3Mbps로 꾸준히 전송한다고 생각해보자. 이 속도로는 거의 11시간이 걸린다. 광섬유를 이용해 평균 인터넷 연결 속도를 1,000Mbps로 높이려는 구글 파이버(Google Fiber) 같은 프로젝트도 있지만 수년 내에 미국 전역으로 널리 퍼지지는 못할 것이다. 앞서 제기한 여러 문제의 해결책은 태생적으로 분산 유비쿼터스 컴퓨팅 시스템을 사용하는 방법을 선호한다. 그러나 빅 데이터와 관련된 문제에는 네트워크 대기시간이 문제로 부각될 것이다.


  1. http://xkcd.com/949/ 

  2. http://www.theverge.com/2012/5/1/2990469/average-global-internet-speed-drop-us