Top

클라우드 API를 활용한 빅데이터 분석 [데이터 분석 기법부터 아마존 AWS와 구글 클라우드 API 활용까지]

  • 지은이공용준
  • ISBN : 9788960776883
  • 30,000원
  • 2015년 03월 31일 펴냄
  • 페이퍼백 | 344쪽 | 188*250mm
  • 시리즈 : 데이터 과학, 클라우드 컴퓨팅

책 소개

이 책에 나오는 예제 코드

이 책에서 제공되는 예제는 https://github.com/acornpub/bigdata-on-clouds에서 확인할 수 있다. 수정사항도 꾸준하게 업데이트될 예정이다.

요약

퍼블릭 클라우드의 대표인 아마존 AWS와 구글 클라우드 API를 사용하여 빅데이터 분석을 수행하고 실제 서비스까지 올리는 방법에 대해 설명한다. 단순한 맵리듀스는 물론, 고 수준의 데이터 분석이 필요한 추천 서비스까지 클라우드를 사용해서 해결하는 방법에 대해서 설명한다.

이 책에 쏟아진 찬사

현재 그리고 앞으로의 IT 환경에서 클라우드와 빅데이터를 빼놓고는 IT를 이해한다고 할 수 없을 정도로 클라우드 인프라와 빅데이터 기술은 핵심으로 자리잡았습니다. 클라우드가 단순히 빌려 쓰는 서비스를 넘어 컴퓨팅 파워가 클러스터링 되면서 대용량 데이터까지도 큰 어려움 없이 분석할 수 있는 인프라까지 제공함으로써 클라우드는 IT 백엔드 서비스의 모든 것이 되어가고 있음을 느낄 수 있습니다. 새로운 서비스를 시작하는 스타트업부터 이미 성장의 단계에 올라선 넷플릭스 같은 대형 서비스까지, 아마존 같은 클라우드 서비스를 이용해 모든 것을 해결하고 있는 모습을 보면 클라우드가 특히나 서비스 인프라의 확장성에 얼마나 유용한가를 가늠해볼 수 있습니다.

이 책은 구글과 아마존 등에서 클라우드 컴퓨팅을 이용해 그 안에서 데이터를 분석하기 위한 실질적인 방법을 제공하기 위해 빅쿼리, EMR 등의 여러 솔루션을 선정하고 그 사용법을 구체적으로 설명하고 있어서 해당 백엔드 기술을 깊이 이해하지 못하는 일반 개발자라고 하더라도 클라우드를 이해하고 실무에 적용하는 데 좋은 가이드가 될 것으로 보입니다.

아무쪼록 IT에 종사하는 많은 사람이 새로운 시스템이나 솔루션 도입에 큰 구애를 받지 않고 클라우드를 이용해 자신이 당면한 문제를 해결하는 데 이 책이 도움되길 바랍니다.
- 권영길 / 그루터 대표

적절한 예를 통해 이론적인 부분과 실제적인 부분을 잘 설명했습니다. 이 책은 IaaS 서비스에 하둡과 협업 필터링 같은 빅데이터 분석 서비스를 올리고자 하는 사람들께 좋은 자료가 될 것입니다.
- 제임스 클라크(James Clark) / Solinea 부사장(Vice President)

빅데이터와 클라우드 분야에서 열정적인 엔지니어로 살아온 저자의 경험과 인사이트가 고스란히 책 속에 담겨 있습니다. 이 분야에서 열정적으로 배우기를 원하는 수많은 독자에게 기쁜 소식이 될 것이라 생각합니다.
- 심탁길 / 쿠팡 데이터과학자, 데이터사이언스&분석팀 팀장

최근 가장 주목받고 변화가 빠른 구글과 아마존, 2대 IT 분야에 대해, 저자의 실무 경험을 기반으로 한 실용적 관점에서의 지식을 이해하기 쉽게 담고 있습니다. 특히 클라우드 환경에서의 데이터 분석 노하우를 필요로 하는 스타트업 개발자 분들께 이 책을 추천합니다.
- 강명철 / BDwise 대표이사

인프라, 플랫폼 전문가 없이 데이터를 분석하고자 하는 사람에게 이 책은 최고의 실습서다.
- 오영일 / 피보탈 빅데이터 플랫폼팀 수석 엔지니어

이 책에서 다루는 내용

■ AWS, GAE API 기본 사용 방법
■ 하둡, 맵리듀스 구조 및 사용 방법과 맵리듀스를 통한 분석 프로그램 개발 방법
■ 클라우드 API를 통해 맵리듀스 및 기계 학습 알고리즘을 개발하는 방법
■ 하둡용 기계 학습 패키지인 머하웃을 사용해 데이터를 분석하는 방법
■ 기계 학습 알고리즘과 데이터 분석 API를 사용해 추천 시스템을 개발하는 방법
■ 분석 결과물을 구글 차트 및 앱엔진을 통해 퍼블리싱하는 방법
■ 데이터 분석 툴을 클라우드와 연결해 분석하는 방법

이 책의 대상 독자

■ 빅데이터와 기계 학습 관련 기초 지식과 실제 개발에 대한 지식이 필요한 사람
■ 클라우드 서비스에 대한 지식이 필요한 사람
■ 데이터 분석을 해본 경험은 있으나 클라우드 관련 지식이 필요한 사람

이 책의 구성

이 책은 크게 3부로 구성된다. 1부인 1장과 2장에서는 데이터 분석 일반에 대해 설명하고 데이터 분석 기법 중 탐험적 데이터 분석EDA의 목적과 여기에 사용되는 분석 기법을 설명한다. 2부인 3장에서 6장까지는 구글 클라우드를 사용해 데이터 분석을 수행하는 방법에 대해 설명한다. 구글의 경우 데이터 분석 서비스 API를 제공하기 때문에 이 서비스에 대한 소개와 사용 방법을 설명하고 최종적으로 구글 클라우드에 웹 서비스를 올리는 방법을 알아본다. 마지막 3부인 7장에서 12장까지에서는 아마존 AWS를 사용한 빅데이터 분석 방법을 설명한다. 아마존 API를 사용해 하둡을 생성하고 맵리듀스를 수행해 필요한 분석을 하고, 아마존 클라우드에 웹 서비스를 올리는 방법에 대해 설명한다.

각 장에서 다루는 내용은 다음과 같다.
1장, ‘클라우드 서비스 프로바이더 종류와 특징’에서는 3대 클라우드 서비스인 아마존 AWS, 구글 앱엔진, 윈도우 애저의 특징을 설명한다.
2장, ‘빅데이터 분석의 종류와 특징’에서는 빅데이터 분석 시에 사용하는 분석 단계와 여기서 사용되는 알고리즘을 간단히 설명한다. 상용 알고리즘 패키지에 대해서도 알아본다.
3장, ‘구글 빅쿼리를 사용한 데이터 분석’에서는 구글의 데이터 분석 API 중에서 빅쿼리 서비스에 대해 알아본다. 빅쿼리의 구조를 설명하고, 샘플 데이터를 사용해 커맨드라인이나 자바를 통해 분석하는 방법을 설명한다.
4장, ‘구글 빅쿼리 활용’에서는 구글 빅쿼리를 엑셀과 연결해 분석하는 방법을 설명한다. 그리고 구글 앱엔진에서 빅쿼리를 사용해 데이터 분석 결과를 사용하는 방법도 알아본다.
5장, ‘구글 프레딕션 API’에서는 구글 프레딕션 API에 대한 기초적인 설명과 모델을 만들고 데이터를 통해 훈련시키는 방법을 설명한다. 그리고 간단하게 커맨드라인에서 사용하는 방법을 알아본다.
6장, ‘구글 프레딕션 API 활용’에서는 프레딕션 API를 사용해 영화 추천 서비스를 만들어본다. 데이터 모델을 만들고 훈련시키고 개선하고, 추천 서비스를 위한 사이트를 만드는 방법을 설명한다.
7장, ‘빅데이터 분석 커널 하둡’에서는 하둡 파일 시스템과 맵리듀스를 간단히 설명하고, 맵리듀스 개발 패턴에 대해 설명한다. 맵리듀스의 유닛 테스트부터 대규모 배포까지의 과정을 알아본다.
8장, ‘하둡 온디맨드 프레임워크’에서는 HOD라는 하둡 온디맨드 프레임워크에 대해 알아보고, 이것을 설치해 운영하는 방법을 설명한다. 그리고 AWS와 EMR에 대해 간단히 설명한다.
9장, ‘AWS EMR 사용’에서는 아마존의 맵리듀스 서비스인 EMR에 대해 알아본다. EMR의 사용법과 테스트 데이터를 사용해 데이터를 분석하는 방법을 설명하고, 커맨드라인을 통해 EMR API를 사용하는 방법에 대해서도 설명한다.
10장, ‘머하웃과 하둡을 활용한 데이터 분석’에서는 하둡의 기계 학습 분석용 패키지인 머하웃에 대해 설명한다. 머하웃에 들어가 있는 기계 학습 알고리즘을 간단히 알아보고, 추천 알고리즘을 사용하는 방법을 설명한다.
11장, ‘아마존 클라우드 서비스를 활용한 추천 서비스 개발’에서는 EMR과 머하웃을 사용한 데이터 분석 방법을 설명하고, 6장에서 만든 분석용 서비스와 연결하는 방법도 알아본다.

저자/역자 소개

저자 서문

클라우드가 처음 대중에게 알려진 지 약 5년 정도가 지났다. 관련 책들도 몇 권씩 나오긴 했지만, 클라우드 서비스의 소개에 그치는 경우가 많고 실제로 어떤 문제나 서비스를 클라우드 기반으로 만드는 방법을 다루는 책은 많지 않다. 아마도 클라우드 자체가 이해하기 어렵고, 실제적인 경험이 많이 없다면 더 어려운 형태의 기반 서비스이기 때문인 것 같다.

빅데이터는 클라우드보다는 좀 더 최근에 알려지기 시작했다. 그리고 데이터 사이언스라는 말과 학교에서 다시금 통계학, 수학 열풍이 돌 정도로 엄청난 센세이션을 일으켰다. 하지만 이것을 배우려는 사람들은 프로그래밍은 물론이고 기초 통계학과 기계 학습 등 너무 많은 범위를 접해야 하므로 접근 자체가 쉽지 않았다. 그리고 더 중요한 부분인 빅데이터에 사용되는 기술을 실제로 적용해 문제를 해결하는 부분에 대한 이야기와 사례는 거의 나오지 않는 듯하다.

클라우드 자체를 개발하거나 클라우드를 사용해 다른 서비스를 개발할 때 가장 중요한 일은 기존과의 차이점을 인지하는 것이다. 클라우드의 가장 큰 특징은 ‘ephemeral(단명, 짧은)’이다. 등장했다가 금방 사라지는 인프라 또는 서비스이기 때문에 이를 뒷받침해주는 기술이나 클라우드를 사용하는 기술 역시 반드시 어떤 컴퓨팅 리소스가 사라질 수 있다는 가정하에서 만들어져야 한다. 그래서 클라우드 컴퓨팅에서는 ‘고가용성’ 또는 ‘이중화’를 더 이상 인프라 레벨에서 하는 게 아니라 애플리케이션 내에서 처리해줘야 한다. 그리고 또 하나의 특징은 ‘스케일 아웃(scale out)’이라 불리는 확장성이다. 처음에는 한두 개의 인스턴스로 시작하다가 사용량이 많아지면 바로 몇 십 개 혹은 몇 백 개로 확장 가능하다는 것이다. 물론 애플리케이션이 이렇게 지원해야 한다.

이 부분은 빅데이터와 통하는 특징이다. 전문가들은 항상 빅데이터의 기본은 페타(peta byte)급 이상은 되어야 한다고 한다. 물론 나중에 데이터를 쌓다 보면 이렇게 커질 수는 있지만, 그 시작은 항상 작다. 빅데이터 커널인 하둡의 효시가 된 구글도 시작할 당시에는 컴퓨터 8대로 출발했다. 그 후에 확장성을 갖도록 인프라를 만들고 코드를 올렸다. 또한 이것은 래리 페이지(Larry Page)의 ‘페이지랭크(PageRank)’라는 유명한 알고리즘을 뒷받침하기 위한 트레이닝 데이터로 사용됐다. 즉 빅데이터보다 더 먼저인 것은 데이터에 대한 직관이며, 툴은 그것을 증명하기 위해 사용돼야 한다. 그런 면에서 빅데이터 관련 툴들은 작은 시작(lean start), 즉 한두 대로 시작해 필요해지면 크게 확장하는 데 아주 적당하다.

클라우드와 빅데이터의 이런 특징을 사용해 애플리케이션을 만드는 방법을 설명코자 책을 만들었다. 이 책에서 설명하는 방법들은 수많은 방법과 기술 가운데 일부에 지나지 않는다. 하지만 이렇게 간단하고 편리한 방법조차 설명하는 책을 몇 권 본 적이 없었기에 이 책이 독자들에게 조금이나마 도움이 되지 않을까 생각한다.

저자 소개

공용준

한양대 기계공학과를 졸업하고 동 대학원에서 석사학위를 취득했다. 박사 공부 중에 분산 매트릭스 솔버(distributed matrix solver) 개발 일을 시작하면서 정보통신 분야에서 커리어를 쌓고 있다. 본격적으로 2012년에 정통부 산하의 클라우드 정책 연구단 기술고문을 역임했고, 2013년부터 클라우드와 빅데이터에 대한 강의를 하고 있다. 요즘은 인메모리 기반 분석과 complex event processing 관련 연구를 진행 중이며, 항상 좀 더 빠르고 편하고 간단한 문제 해결을 위해 노력 중이다.

목차

목차
  • 1부 빅데이터와 클라우드
  • 1장 클라우드 서비스 프로바이더의 종류와 특징
  • 1.1 소개
  • 1.2 퍼블릭 IaaS 서비스의 최강자 아마존 웹 서비스(AWS)
  • 1.2.1 S3(Simple Storage Service)
  • 1.2.2 EC2(Elastic Compute Cloud)
  • 1.2.3 EMR(Elastic MapReduce)
  • 1.3 퍼블릭 PAAS 서비스의 선두주자 구글
  • 1.3.1 구글 앱엔진
  • 1.3.2 구글 빅쿼리
  • 1.3.3 구글 컴퓨트 엔진
  • 1.4 윈도우 진영의 클라우드 서비스, 애저(Azure)
  • 1.4.1 윈도우 애저 웹사이트
  • 1.4.2 가상 머신 서비스
  • 1.4.3 빅데이터 서비스
  • 1.5 정리

  • 2장 빅데이터 분석의 종류와 특징
  • 2.1 소개
  • 2.2 데이터 분석 프로세스
  • 2.2.1 목적 정의
  • 2.2.2 데이터 준비
  • 2.2.3 탐색적 자료 분석
  • 2.2.4 데이터 분석 목표 구체화 및 모델링
  • 2.2.5 데이터 분석 검증
  • 2.2.6 모델링 작업 현업 적용
  • 2.3 기계 학습 패키지 소개
  • 2.3.1 기계 학습이란?
  • 2.4 상용 기계 학습 알고리즘 패키지
  • 2.4.1 스카이트리
  • 2.4.2 시스템엠엘
  • 2.5 정리


  • 2부 구글 클라우드를 사용한 빅데이터 분석
  • 3장 구글 빅쿼리를 사용한 데이터 분석
  • 3.1 소개
  • 3.1.1 특징
  • 3.1.2 드레멜과 빅쿼리
  • 3.1.3 빅테이블 서비스 가격
  • 3.2 구글 빅쿼리 서비스 시작하기
  • 3.2.1 구글 API 사이트 접근
  • 3.2.2 구글 빅쿼리 프로젝트 생성
  • 3.3 구글 빅쿼리 브라우저 툴
  • 3.3.1 쿼리 수행해보기
  • 3.4 구글 빅쿼리 CLI 사용하기
  • 3.4.1 커맨드라인 툴 설치
  • 3.4.2 커맨드라인 툴 인증
  • 3.4.3 커맨드라인 툴 테스트
  • 3.5 구글 빅쿼리 API 사용
  • 3.5.1 인증 코드 생성
  • 3.5.2 메이븐 프로젝트 설정
  • 3.5.3 계정 정보 파일 추가
  • 3.5.4 빅쿼리 자바 클라이언트 사용법
  • 3.5.5 데이터 셋 리스팅 샘플 전체
  • 3.6 정리

  • 4장 구글 빅쿼리 활용
  • 4.1 소개
  • 4.2 앱엔진 엑셀 커넥터를 사용한 데이터 분석
  • 4.2.1 엑셀 커넥터 인증
  • 4.2.2 엑셀 커넥터 다운로드
  • 4.2.3 엑셀 커넥터 사용
  • 4.2.4 엑셀 차트를 통한 데이터 표현
  • 4.3 구글 앱엔진과 빅쿼리 연동
  • 4.3.1 이클립스용 구글 플러그인 설치
  • 4.3.2 배포용 구글 앱엔진 애플리케이션 생성
  • 4.3.3 사용자 인증 코드 생성
  • 4.3.4 앱엔진 샘플 코드 실행
  • 4.3.5 샘플 코드 구조
  • 4.3.6 코드 수정
  • 4.3.7 구글 앱엔진으로 배포
  • 4.4 정리

  • 5장 구글 프레딕션 API
  • 5.1 소개
  • 5.2 구글 프레딕션 API 사용
  • 5.2.1 구글 프레딕션 API 가격
  • 5.2.2 구글 프레딕션 API 사용 준비
  • 5.3 프레딕션 API 사용 샘플
  • 5.3.1 데이터 업로드
  • 5.3.2 시스템 훈련
  • 5.4 커맨드라인 툴을 이용한 프레딕션 API 사용
  • 5.4.1 oacurl 사용
  • 5.4.2 모델 훈련
  • 5.4.3 질문 수행
  • 5.5 정리

  • 6장 구글 프레딕션 API 활용
  • 6.1 소개
  • 6.2 프레딕션 API를 사용한 영화 추천 서비스 개발
  • 6.2.1 추천용 데이터 모델
  • 6.2.2 데이터 준비
  • 6.2.3 영화 추천용 예측 모델 훈련
  • 6.3 영화 추천 사이트 구축
  • 6.3.1 사이트 시나리오
  • 6.3.2 코드 개발
  • 6.3.3 이클립스 프로젝트 구성
  • 6.3.4 코드 수정
  • 6.3.5 코드 실행
  • 6.4 영화 추천 사이트 개선
  • 6.4.1 사용자 인터페이스 개선
  • 6.4.2 추천 알고리즘 개선
  • 6.4.3 추천 알고리즘 2차 개선
  • 6.5 정리


  • 3부 아마존 웹 서비스를 활용한 빅데이터 분석
  • 7장 빅데이터 분석 커널 하둡
  • 7.1 소개
  • 7.2 하둡이란 무엇인가?
  • 7.2.1 하둡 파일 시스템
  • 7.2.2 맵리듀스 컴퓨팅 플랫폼
  • 7.3 맵리듀스 프로그래밍
  • 7.4 맵리듀스 개발 패턴
  • 7.4.1 맵리듀스 유닛 테스트
  • 7.4.2 맵 유닛 테스트 작성과 테스트
  • 7.4.3 리듀스 유닛 테스트 작성
  • 7.4.4 맵리듀스 유닛 테스트 작성
  • 7.4.5 대규모 데이터에서 돌리기
  • 7.5 정리

  • 8장 하둡 온디맨드 프레임워크
  • 8.1 소개
  • 8.2 1세대 하둡 온디맨드 플랫폼: 하둡 온디맨드(HOD)
  • 8.2.1 하둡 온디맨드 구조
  • 8.2.2 토크 설치
  • 8.2.3 HOD 설치
  • 8.2.4 HOD와 관련된 그 밖의 사항
  • 8.3 2세대 하둡 온디맨드: 아마존 웹 서비스 EC2 사용
  • 8.3.1 아마존 웹 서비스 환경 설정
  • 8.3.2 hadoop-ec2 설정
  • 8.3.3 하둡 클러스터 생성
  • 8.3.4 하둡 EC2 디버깅
  • 8.4 3세대 하둡 온디맨드: AWS의 EMR
  • 8.5 정리

  • 9장 AWS EMR 사용
  • 9.1 소개
  • 9.2 AWS EMR 소개
  • 9.3 AWS EMR 웹 콘솔 사용
  • 9.3.1 AWS EMR 콘솔 접근
  • 9.3.2 신규 샘플 작업 흐름 생성
  • 9.3.3 신규 작업 정의
  • 9.3.4 변수 정의
  • 9.3.5 EC2 인스턴스 종류 정의
  • 9.3.6 추가 옵션 선택
  • 9.3.7 부트스트랩 옵션 정의
  • 9.3.8 리뷰
  • 9.4 AWS EMR API 사용
  • 9.4.1 루비 설치
  • 9.4.2 EMR 클라이언트 설치
  • 9.4.3 계정 정보 설정
  • 9.4.4 S3 생성
  • 9.4.5 EMR 설정 확인
  • 9.5 EMR을 사용한 워드 카운트 샘플
  • 9.5.1 워크 플로우 생성
  • 9.5.2 EMR 로그인
  • 9.5.3 웹 브라우저를 통한 EMR 원격 모니터링
  • 9.5.4 워드 카운트 스텝 추가
  • 9.5.5 워크 플로우 종료
  • 9.6 정리

  • 10장 머하웃과 하둡을 활용한 데이터 분석
  • 10.1 소개
  • 10.2 머하웃이란?
  • 10.2.1 기계 학습이란?
  • 10.2.2 머하웃과 기계 학습
  • 10.3 머하웃의 추천 알고리즘
  • 10.4 머하웃을 사용한 추천 알고리즘 예제
  • 10.5 정리

  • 11장 아마존 클라우드 서비스를 활용한 추천 서비스 개발
  • 11.1 소개
  • 11.2 EMR에서 사용할 추천 데이터 준비
  • 11.3 EMR과 머하웃의 연동
  • 11.4 작업 결과 확인
  • 11.5 구글 클라우드 SQL과 연결
  • 11.5.1 클라우드 SQL API 활성화
  • 11.5.2 앱엔진 소스 수정
  • 11.5.3 개발용 마이시퀄 서버 준비
  • 11.5.4 클라우드 SQL 데이터 로드
  • 11.6 정리

  • 12장 클라우드 서비스와 BI 툴 연동
  • 12.1 소개
  • 12.2 비즈니스 인텔리전스 2.0 시대
  • 12.3 엑셀과 하둡의 연동
  • 12.3.1 하둡 플랫폼 설치
  • 12.3.2 하둡 플랫폼을 이용한 맵리듀스 수행
  • 12.3.3 하이브 작업 수행
  • 12.3.4 엑셀과의 연동
  • 12.4 키마스피어 BI와 EMR 연동
  • 12.4.1 카마스피어 설치
  • 12.4.2 데이터 준비
  • 12.4.3 카마스피어와 EMR 연동 작업
  • 12.4.4 카마스피어용 하이브 테이블 생성
  • 12.4.5 테이블에 데이터 로드
  • 12.4.6 데이터 분석
  • 12.4.7 결과 확인과 차트 생성
  • 12.5 정리

도서 오류 신고

도서 오류 신고

에이콘출판사에 관심을 가져 주셔서 고맙습니다. 도서의 오탈자 정보를 알려주시면 다음 개정판 인쇄 시 반영하겠습니다.

오탈자 정보는 다음과 같이 입력해 주시면 됩니다.

(예시) p.100 아래에서 3행 : '몇일'동안 -> 며칠동안