클라우드 컴퓨팅 구현 기술 [구글, 페이스북, 야후, 아마존이 채택한 핵심 기술 파헤치기]
- 지은이김형준, 조준호, 안성화, 김병준
- ISBN : 9788960771703
- 30,000원
- 2010년 12월 23일 펴냄 (절판)
- 페이퍼백 | 544쪽 | 188*250mm
- 시리즈 : acorn classics, 클라우드 컴퓨팅
판매처
- 현재 이 도서는 구매할 수 없습니다.
책 소개
(https://github.com/AcornPublishing/cloud-computing-tech)
<책 소개>
그동안 클라우드 컴퓨팅 분야에서 많이 다루지 않았던 시스템이나 서비스의 개발과 관련된 내용을 다룬다. 기존의 클라우드 컴퓨팅이 기술적인 분야에서 가상화, 프로비저닝 등에 초점이 맞춰져 있었다면 이 책에서는 분산 아키텍처를 이용해 확장성, 가용성 있는 시스템, 서비스를 개발하기 위한 아키텍처를 제시하고, 이를 구현할 수 있는 오픈소스를 소개한다. 책에서 소개하는 아키텍처와 오픈소스를 이용해 스토리지 서비스 같은 인프라 서비스에서부터 블로그, 소셜네트워크 분석 서비스 등과 같은 클라우드 서비스를 구축할 수 있다.
[ 지디넷코리아 | 저자대담 ] 클라우드 컴퓨팅의 미래를 보다
[ 이 책에서 다루는 내용 ]
■ 클라우드 컴퓨팅의 출현 배경과 구글, 아마존, 세일즈포스닷컴의 클라우드 컴퓨팅 소개
■ 클라우드 컴퓨팅의 정의와 분류
■ 확장성, 가용성 있는 클라우드 컴퓨팅 시스템을 구축하기 위한 아키텍처
■ 분산 아키텍처를 적용한 애플리케이션 서버 구축 방법
■ 분산 환경에서의 동기화 제어와 쉽게 해결해 주는 오픈소스 주키퍼(ZooKeeper)
■ 대용량 파일을 저장하고 빠르게 분석할 수 있는 하둡(Hadoop)
■ 대용량 구조화된 데이터를 저장할 수 있는 NoSQL, 오픈소스 클라우데이터(Cloudata), Hbase, 카산드라(Cassandra), 몽고디비(MongoDB)
■ 분산 환경에서의 로그 수집 및 저장을 위한 오픈소스 척와(chukwa), 스크라이브(scribe)
■ 시스템의 성능 향상을 위한 캐시 솔루션인 memcached, 멤베이스(membase)
■ 단원별로 사용된 오픈소스에 대한 설치 방법과 블로그 예제 프로그램을 통한 실제 사용 방법
[ 이 책의 대상 독자 ]
이 책은 클라우드 컴퓨팅을 다루지만 인프라 측면이 아닌 시스템, 서비스의 개발과 관련된 내용을 다룬다. 따라서 분산 아키텍처를 이용한 확장성, 안정성있는 시스템을 구축하려는 개발자들을 위한 책이다. 분산 파일 시스템, NoSQL 등과 같은 클라우드 기반의 시스템 소프트웨어에 대해서도 설명함으로써 대용량 데이터 저장소를 구축하려는 운영자들에게도 도움이 된다.
자바, C 언어 등과 같은 프로그래밍 언어를 이해하고 있거나 시스템을 구축해 본 경험이 있으면 쉽게 이해할 수 있을 것이다.
[ 이 책의 구성 ]
이 책은 두 개의 부로 구성되어 있다.
1부에서는 클라우드 컴퓨팅의 개요와 속성을 설명하며, 클라우드 컴퓨팅의 속성을 만족하는 시스템을 구축하기 위한 아키텍처를 제시한다.
2부에서는 제시된 아키텍처의 세부 구성 요소를 설명하고, 실제 적용을 위해 현재 사용 가능한 오픈소스를 소개한다. 각 분야의 오픈소스는 개념에 대한 이론적인 설명, 설치, 사용 방법, 예제 프로그램 등의 형태로 다뤘다.
[ 추천의 글 ]
Scene 1
오늘은 36살이 얼마 남지 않은 크리스마스 이브다. 한 달 전 소개팅으로 만난 그녀와의 저녁 약속을 생각하니 벌써부터 가슴이 설렌다. 그녀와는 마음도 잘 맞고 관심사도 비슷해 애인 사이로 발전해 내년에는 반드시 결혼했으면 좋겠다. 개발자의 삶을 살면서 여자를 만나 결혼까지 골인한다는 것이 쉽지 않음을 몇 번의 경험을 통해 알고 있기 때문에 그 간절함이 더 크다.
그녀를 만나러 가는 버스 안이다. 현재 시간은 6시 45분. 약속 시간이 7시 30분이라 아직까지 시간적인 여유가 있다. 이때 걸려오는 전화 한 통에 갑자기 불안감이 몰려든다.
……
역시 내 예상은 빗나가지 않았다. 오늘 크리스마스에 맞춰 진행한 이벤트가 대박이 나면서 서버가 다운됐다는 것이다. 서버 재시작을 통해 복구하고 있지만 엄청나게 몰려드는 트래픽을 감당하지 못해 계속 다운되는 상황이 반복 중이라 한다.
근본적인 해결책은 서버를 증설하는 것인데, 서버를 증설하고 재설정하는 데 며칠이 소요되는 상황이라 현재는 이 방법을 택할 수 없다. 딱히 좋은 해결책이 떠오르지 않아 막막할 따름이다.
그나저나 오늘 데이트도 물건너 갔다. “개발자는 일과 삶의 균형을 맞추면서 살수는 없는 것인가?”라고 중얼거리면서 회사로 향하는 버스로 갈아탄다.
Scene 2
개발자로서 거의 10년의 경력을 쌓아왔지만 서비스를 통해 사용자와 호흡을 맞춰 간다는 것이 이렇게 기쁜 일이라는 경험을 처음하고 있다. 스스로 경험을 쌓으면서 날로 개선되는 기능은 사용자가 원하는 기능을 우선적으로 개발하는 선순환 구조를 열어가면서 서비스는 빠른 속도로 성장하고 있다.
임원진들은 지금 시점이 서비스를 한 단계 더 성장시키기 위한 기회로 보고 최근 가장 인기 있는 가수 중 한 명인 ‘아이유’를 CF 모델로 선정해 대대적인 마케팅을 펼치는 중이다. 이 같은 마케팅 효과 때문에 이전보다 서비스의 성장 속도는 2배 이상 가파르게 증가하고 있다. 서비스가 급격히 성장하는 것은 기쁜 일이지만 한편으로는 현재 시스템이 이 같은 성장 속도를 견뎌낼 수 있을지 걱정스러움이 앞선다. 트래픽이 증가할 때마다 주기적으로 웹 애플리케이션 서버를 증설해 해결하고 있지만 서버를 증설하고 모니터링하는 데 너무 많은 시간을 투자하고 있어 개발 업무에 투자할 수 있는 시간도 줄고, 업무에 대한 만족도도 계속 떨어지고 있다.
……
드디어 올 것이 왔다. 그동안 우려하던 일이 현실에서 발생했다. 트래픽이 증가할 때마다 웹 애플리케이션 서버를 증설했더니 이에 대한 부담이 모두 데이터베이스 서버로 집중되면서 오늘 오후 데이터베이스 서버가 다운됐다. 데이터베이스 서버를 증설하는 일은 애플리케이션에 대한 수정도 필요하기 때문에 웹 애플리케이션 서버를 증설하는 일에 비해 몇 배의 시간이 필요하다. 이 문제를 단기적으로 해결할 수 있는 방법은 기존 데이터베이스 서버보다 사양이 더 좋은 초울트라 슈퍼짱인 서버를 도입하는 길밖에 없기 때문에 막대한 비용을 투자해 서버를 확보하고 서비스를 정상화시킨다. 그나저나 얼마나 버틸 수 있을까?
위 두 상황은 우리 주위에서 흔히 볼 수 있다. 일과 삶에 균형을 맞추는 것이 힘들어 제대로 된 사람으로서의 삶을 살지 못하고 있는 개발자들… 서비스의 급격한 성장에 제대로 대응하지 못해 그저 그런 서비스로 전락해 버린 국내의 많은 사례들… 그 이면에는 빨리빨리 문화로 인해 품질을 보장하지 못하는 것이 하나의 원인이며, 또 한편으로는 급격하게 변화하는 서비스 환경에 시스템 인프라가 발 빠르게 대응하지 못하는 것이 또 하나의 원인이다. 이 책은 이런 문제점에 대한 해결책을 제시해준다. 일과 삶에 균형을 맞추고, 서비스 변화에 발 빠르게 대응하기 위한 방법을 찾고자 한다면 이 책을 통해 새로운 전략을 세울 수 있을 것이다.
- 박재성 / XLGames 웹 개발자, 자바지기 커뮤니티 운영자
클라우드 컴퓨팅의 이론부터 구현까지, 사례를 통해 생생하게 느낄 수 있다. 실무담당자라면 이 책에서 유용한 힌트를 얻을 수 있을 것이다.
- 김민석 / NHN I&S
메인프레임, 클라이언트/서버를 이어 클라우드 컴퓨팅은 컴퓨팅의 새로운 장을 열고 있다. 항상 새로운 패러다임이 나올 때마다 제각각 부족한 정보와 지식으로 왜곡되고 편협한 재단을 하면서 훼예포폄하고 있다. 그러나 이 책에서는 클라우드의 기본부터 세밀한 구조까지 균형 잡힌 설명을 하고 있다. 클라우드의 사용자, 사업자, 개발자, 학생 등까지 널리 추천할 만하다.
- 서정식 / KT Cloud 추진본부 본부장
클라우드 컴퓨팅은 이제 거스를 수 없는 큰 흐름이 됐다. 최근의 클라우드 컴퓨팅이 인프라에 집중하고 있다면 이 책은 그 다음을 준비하는 내용을 담고 있다. 가상의 인프라 환경에서는 그 위에서 운영되는 소프트웨어도 가상 환경으로 운영될 수 있는 아키텍처로 구현돼야 한다. 이 책에서는 어떻게 그런 소프트웨어나 서비스를 만들 수 있는지 알려준다. 지금까지 클라우드 컴퓨팅에 관한 기술 서적이 제대로 없었는데, 이 책이 하나의 획을 그을 수 있지 않을까 생각한다.
- 성기준 / SKC&C 클라우드컴퓨팅 사업본부 본부장
이 책은 모호하게만 들리던 클라우드가 무엇인지 아주 쉽고 명확하게 알려준다. 또한 대용량 시스템을 오랜 시간 경험해온 저자들답게 IT 환경에서 항상 고민해 온 각종 자원 관리에 대한 수많은 고민을 매우 수준 높은 시각에서 실질적인 해결책을 제시한다. 클라우드가 무엇인지, 또 시스템의 효율적인 관리를 고민해온 개발자나 운영자라면 반드시 읽어볼 것을 권한다.
- 이정룡 / 삼성SDS 인트라넷혁신그룹
클라우드 컴퓨팅을 취재하면서 곳곳에 포진한, 열정을 가진 전문가들을 만날 수 있었다. 그것이 가장 좋았다. 장님이 코끼리 뒷다리 만지듯 헤매고 있었을 때 이들은 내게 클라우드가 무엇인지, 그리고 지금 우리에게 필요한 것과 채워야 할 것 등을 아무런 대가 없이 흔쾌히 가르쳐줬다. 새로운 흐름을 파악하고 구현하기란 생각처럼 쉬운 일이 아니다. 끊임없는 문제 해결에 대한 호기심과 열정, 도전이 필요하다. 이 책을 쓴 이들은 한결같이 이런 공통점이 있는 것 같다. 그런 호기심들을 통해 경험하고 쌓은 지식들이 새로운 열정을 가진 이들에게 고스란히 전파될 것이다. 이 책은 충분히 그런 열정과 경험들을 전달하고도 남음이 있다. 지식과 경험을 공유하면 상상할 수 없는 일들이 일어난다. 클라우드 컴퓨팅은 그런 지식의 공유에서 온 커다란 선물일지도 모르겠다. 쉽지 않지만 이 책은 그 선물에 한 발짝 다가서서 제대로 흐름을 읽고, 구현되는 기술을 알 수 있도록 조언해준다. 여전히 모자란 기자에게도 한걸음 더 내딛게 도와주는 도우미 역할을 해줄 것 같다. 혹시 이 책을 보고 열심히 구현했는데 도통 세상에 알려지질 않아 열 받으시는 분들은 언제든지 @eyeball에게 연락 주시기 바란다. 물론 자신들의 경험을 흔쾌히 세상에 공개해준 필진들을 먼저 다룬 다음 서둘러 찾아갈 것이다. 뜬구름들 속에서 가을 하늘에 떠 있는 뭉게구름을 만들고 싶은 이들이 있다면 이 책을 적극 권한다.
- 도안구 / 블로터닷넷 기자
클라우드 컴퓨팅에 대해 강연이나 컨설팅을 하다 보면 듣게 되는 가장 큰 오해가 클라우드 컴퓨팅을 사용하면 애플리케이션이나 서비스가 무조건 확장성 있고 견고하게 된다는 것입니다. 하지만 클라우드라는 것은 그러한 것을 가능케 하는 인프라를 제공해 줄 뿐, 나머지는 모두 사용자의 몫입니다. 결국 애플리케이션이나 서비스 역시 ‘클라우드화’가 돼야 비로소 클라우드의 이점을 십분 발휘할 수 있습니다.
해외에서는 구글, 페이스북, 야후 등이 그러한 클라우드화된 서비스 구조로 돼 있고, 이를 위해 다양한 오픈소스 소프트웨어를 활용하며, 직접 개발해 다시 오픈하고 있습니다. 하지만 국내에서는 그러한 경험이 거의 없고 학습을 위한 자료도 매우 부족한 상황입니다. 이런 국내 현실에서 이 책은 클라우드 마을에 내린 가뭄의 단비 같은 책이라고 평가합니다.
이 책에서 소개된 다양한 오픈소스 소프트웨어는 실제로도 클라우드를 구축하는 데 활용 중이며, 구글, 페이스북 등의 선도 기업에서 핵심 기술로 사용 중입니다. 또한 도입부에서 설명한 IT 아키텍처의 변화는 저자가 오랜 기간 직접 경험하면서 얻은 통찰력을 공유하는 매우 소중한 정보입니다. 현재 클라우드 기술 관련 국내외 서적을 통틀어 이 책만큼 다양하고 중요한 오픈소스를 심도 있게 다루고 있는 책은 없다고 단언합니다.
클라우드를 직접 구축하려는 분, 클라우드를 이용하려는 분, 클라우드 관련 사업을 기획하는 분,클라우드 관련해 연구하시는 분, 클라우드 기술에 관심 있는 분, IT 기술의 미래를 내다보고 싶은 모든 분께 이 책을 권합니다.
- 한재선 / 넥스알 대표이사, 한국 Hadoop 커뮤니티 회장,
KAIST 정보미디어 경영대학원 겸직교수
목차
목차
- 1부 클라우드 컴퓨팅 개요
- 1장 클라우드의 출현
- 인터넷 서비스 업체의 성공
- 아마존의 인프라 서비스
- 구글의 컴퓨팅 인프라와 플랫폼 서비스
- 세일즈포스닷컴의 소프트웨어 서비스
- 뉴욕타임즈의 클라우드 컴퓨팅 활용 사례
- 클라우드 컴퓨팅 개념의 등장
- 포괄적인 개념으로서의 클라우드
- 클라우드 컴퓨팅에 대한 정의
- 클라우드 컴퓨팅의 분류
- 인터넷 서비스 업체의 성공
- 2장 클라우드 컴퓨팅 아키텍처
- 아키텍처의 변화
- 분산 아키텍처의 출현
- 프레임워크와 경량 컨테이너
- 클라우드 서비스를 위한 아키텍처
- 분산 기술의 발전
- 아키텍처
- 단계별 진화
- 오픈소스 솔루션
- 아키텍처의 변화
- 2부 클라우드 컴퓨팅 기술
- 3장 경량 애플리케이션 서버
- 쓰리프트: 페이스북의 애플리케이션 서버
- 시스템 요구 사항
- 설치
- 인터페이스 정의 언어
- 코드 생성과 개발
- 데모: 블로그 애플리케이션 서버
- 에이브로: 더그 커팅이 만든 애플리케이션 서버
- 스키마
- 객체 컨테이너 파일
- 프로토콜
- 설치
- 코드 생성와 GenAvro
- 서버와 클라이언트 코드 개발
- 제티: 내장형 웹서버
- 쓰리프트: 페이스북의 애플리케이션 서버
- 4장 분산 코디네이터
- 분산된 환경에서의 고려 사항
- 네임 서비스/부하 분산
- 분산 락이나 동기화 문제
- 장애 상황 판단 문제
- 환경 설정 값 관리
- 주키퍼: 야후의 분산 코디네이터
- 주키퍼 시스템 구성
- 주키퍼 설치
- 데이터 모델
- 세션
- 이벤트 처리
- 데이터 관리 정책
- 멀티서버 구성과 운영
- C 언어 API
- 분산 락 구현
- 분산 시스템 구성: 주키퍼 활용
- 클러스터 멤버십과 네이밍 서비스
- 이중화 구성
- 애플리케이션 환경 설정 관리
- 생성자/소비자
- 분산된 환경에서의 고려 사항
- 5장 하둡 분산 파일 시스템
- 구글 파일 시스템
- 하둡 파일 시스템 구성
- 동작 방식
- 특징과 장단점
- 설치
- 설치 요구 사항
- ssh 환경 설정
- 다운로드
- 환경 설정
- 배포
- 하둡 파일 시스템 운영
- 실행과 관리
- 데이터 노드 제거
- 사용자 루트 패스
- 안전 모드
- 파일 시스템 API 활용
- 기본 파일 처리 API
- 데모: 블로그 애플리케이션
- 응용 사례: 클라우드 스토리지 서비스
- 6장 대용량 데이터 분석 프레임워크 맵리듀스
- 맵리듀스 소개와 구조
- 맵리듀스 프로그램 모델
- 시스템 구성
- 맵리듀스 처리 흐름
- 설치
- 스크립트 환경 설정
- mapred-site.xml
- 실행과 중지
- 작업 관리 명령
- 맵리듀스 프로그래밍
- WordCount 예제
- 맵리듀스 프로그래밍 요소
- 데이터 흐름 설계
- InputFormat 구현
- 파티셔너 구현
- OutputFormat 구현
- 공통 데이터 배포
- 디버깅
- 맵리듀스 튜닝
- 맵 태스크
- 병합 정렬(Merge Sort)
- 리듀스 태스크
- 잡 트래커와 태스크 트래커 튜닝
- 정렬
- 부분 정렬
- 전체 정렬
- 조인
- 맵 사이드 조인
- 리듀스 사이드 조인
- 하둡 버전
- 맵리듀스 소개와 구조
- 7장 NoSQL
- NoSQL 개요
- CAP 이론
- NoSQL의 특징과 분류
- 구글 빅테이블
- 클라우데이터
- 시스템 구성
- 데이터 모델
- 데이터 분산
- 데이터 저장
- 클러스터 멤버십과 장애 복구
- 설치
- 실시간 데이터 처리
- 배치 데이터 처리
- 클라우데이터 셸
- 응용 사례 1: 블로그 데이터 저장
- 응용 사례 2: 크롤과 검색 서비스
- 성능
- HBase
- 데이터 모델
- 설치
- 예제 프로그램
- 배치 데이터 처리
- 카산드라(Cassandra)
- 다이나모(Dynamo)
- 카산드라 시스템 구성
- 데이터 모델
- 데이터 분산
- 클러스터 멤버십과 장애 복구
- 설치
- 예제 프로그램
- 정합성 수준
- 응용 사례: 블로그 데이터 검색
- 몽고디비
- 데이터 모델과 인덱스
- 데이터 복제와 샤딩
- 설치와 실행
- 가용성, 확장성 구성
- 예제 프로그램
- 맵리듀스
- MySQL 분산 구성
- MySQL 마스터-슬레이브
- MySQL 고가용성 구성
- MySQL MMM
- MySQL MMM 설치
- NoSQL 사용 시 주의 사항
- NoSQL 개요
- 8장 로그 수집과 분석
- 척와: 하둡 기반의 로그 저장 분석 솔루션
- 시스템 구성과 동작
- 딜리버리 모델
- 데이터 모델과 처리
- 설치
- 동적 로그 수집 설정
- 스크라이브: 페이스북의 로그 관리 솔루션
- 설치
- 스토어 구성
- 분산 구성
- 척와: 하둡 기반의 로그 저장 분석 솔루션
- 9장 캐시: 성능 향상을 위한 필수 요소
- 메모리 캐시
- memcached
- 설치
- 프로토콜
- 명령
- C/C++ 클라이언트 라이브러리
- 자바 클라이언트 라이브러리
- 멤베이스(Membase): 분산 memcached 서버
- 멤베이스 서버 개요
- 멤베이스 서버 설치
- 버킷 구성
- 멤베이스 클라이언트 예제
관련 블로그 글
대세를 잡아라! 『클라우드 컴퓨팅 구현 기술』
구글, 페이스북, 야후, 아마존이 채택한 핵심 기술 파헤치기
김형준, 조준호, 안성화, 김병준 지음
544쪽 | 30,000원 | 2010년 12월 23일 출간
YES24, 교보문고, 강컴, 인터파크, 알라딘, 리브로
페이스북의 마크 주커버그가 <타임>지 올해의 인물로 뽑혔을 때 최종까지 경합을 벌인 인물이 있었다고 합니다. 바로 위키리크스(WikiLeaks)의 줄리안 어샌지였죠. 우리나라 정치판마저 벌벌 떨게 한 파급효과가 컸던 위키리크스는 올 연말 아마 최대의 화젯거리가 아닌가 싶습니다. 아마존 페이스북 트위터 등 각 사이트가 기부 결제 서비스를 중단하고 해커 계정을 삭제하며 전방위 압박에 나섬과 함께 어샌지 지지자들은 어샌지에 등을 돌린 각국의 단체와 기관, 기업, 웹사이트에 대규모 분산서비스거부(디도스, DDos) 공격을 시도했습니다.
여타 정황에 대한 것은 뒤로 하고, 우리가 주목해야 할 부분이 있습니다. 지지자들의 대규모 사이버 보복에도 멀쩡하게 아무런 장애를 입지 않은 기업이 하나 있었으니 바로 아마존닷컴(amazon.com)이었습니다.
위키리크스 사이버공격 아마존엔 안 먹혀
위 기사에서는 간단히 '연말 성수기에 대비한 초대형 서버용량'이라고 표현했지만, 그 엄청난 양의 대규모 공격을 피할 수 있었던 가장 큰 요인은 바로 아마존의 뛰어난 클라우드 컴퓨팅 기술 덕분이었습니다.
고래가 나타났다!
부쩍 트위터에서 고래 그림을 자주 만납니다. 서버에 부하가 걸려 장애가 일어났음을 알리는 이 그림이 처음에는 사용자를 위한 센스나 배려같은 느낌으로 다가왔지만, 한두 번 반복되면 짜증이 나기 일쑤입니다. 이런 상황을 자꾸 반복해 겪다 보면 과연 조급증이 넘치는 현대 사용자를 붙들어놓을 수 있겠습니까?
클라우드 컴퓨팅에 관한 한 트위터는 준비가 매우 뒤처진 기업임에 분명합니다. MySQL 기반의 관계형 데이터베이스인 RDBMS로 구축된 사이트 구조의 혁신과 해결방안을 꾀하고는 있지만 아직도 많은 어려움을 겪고 있다고 합니다.
구글, 아마존, 야후, 페이스북의 공통점
네 기업의 공통점을 한번 꼽아보세요. 쟁쟁한 웹 기업. 맞습니다. 세상의 이목을 끄는 기업. 네, 맞죠. 돈을 끌어모으는 회사, 네, 그것도 물론입니다. 하지만 그보다 이 네 기업은 클라우드 컴퓨팅 기술을 성공적으로 구축하고 도입하여 운영 중인 기업들입니다. 여기에 모바일미와 앱스토어 서비스를 필두로 한 애플, 가장 각광 받는 게임 업체 징가(Zynga) 등도 그 한 축에 자리하고 있습니다.
IBM, HP, 오라클. 전통을 자랑하고 내로라하던 왕년의 기업들의 이름을 보기가 쉽지는 않습니다. 여러 가지 이유가 있겠지만, 이는 지금 현재도 우리가 모르는 사이 IT 산업의 모든 무게중심이 전통적인 컴퓨팅 기업에서 인터넷 서비스 업체로 그리고 엔터프라이즈급 규모에서 웹 스케일 규모로 조금씩 옮겨가고 있다는 의미입니다.
그렇다면 우리 나라 최고기업 삼성전자는 클라우드 컴퓨팅과 상관이 없을까요? 전화 단말기 시장이 스마트폰으로 옮겨가면서 예전같으면 웹사이트 하나로 모든 고객과 상호소통했던 통로가, 1억 개가 넘는 단말기로 확대 되면서 모두가 동시에 접속할 "수"도 있는 소셜허브(Social Hub) 시장이 열렸습니다. 무시무시하죠. 각 기업 내부의 데이터도 어마어마한 수준으로 나날이 폭증하고 있습니다. 또한 국내 사업을 넘어 글로벌 비즈니스를 추진함으로써 사용자 규모도 이젠 예전과 비교할 수도 없습니다.
KT, SKT, NHN, 삼성전자, 엘지전자뿐만 아니라 그 사업과 연계된 모든 비즈니스 기업이 이젠 클라우드 컴퓨팅의 필요성을 자각하고 대처해야 하지 않을까 싶습니다.
그렇다면 클라우드 컴퓨팅이란?
그거 전혀 새로운 거 아니야, SaaS잖아.
저자 김형준 님에 따르면 클라우드 컴퓨팅은 세 가지로 나눈다고 합니다.
SaaS(소프트웨어 서비스), PaaS(플랫폼), IaaS(인프라).
우리가 흔히 알고 있는 세일즈포스닷컴이 바로 대표적인 SaaS기업이죠. 그리고 아마존의 EC2는 플랫폼 기반 IaaS로 분류되며, 구글은 앱엔진의 경우는 PaaS, 구글 앱스는 SaaS로 분류할 수 있다고 합니다. ASP에서 SaaS로 넘어와 버즈워드처럼 클라우드 컴퓨팅(Cloud Computing)을 만들어낸 것이라는 시각은 아주 단편적인 논의에 불과하다고 클라우드 컴퓨팅 진영에서는 한 마디로 일갈합니다.
맨처음 말씀드린 대로 단순히 초대형 서버로 대응한다는 의미로 본다면 이미 클라우드 컴퓨팅 이전에도 서버 호스팅이라는 개념이 존재합니다. 서버 증설에 며칠이 걸리던 일을 단 몇 분만에, 대규모 종량제로 월, 일 단위로 과금하던 것을 시간, 분 단위로 과금하거나, 중앙 집중관리 식 그리드 컴퓨팅의 더딘 대응을 매우 신속하게 처리한다든가 하는 것이 바로 클라우드 컴퓨팅의 핵심이라고 볼 수 있습니다.
하지만 그보다 더 중요한 문제는 바로 하드웨어 장애에 신속히 대응할 수 있다는 점입니다. 아무리 초대형 서버를 가지고 있더라도 서버가 다운되면 데이터 접속이 불가하고 아까 트위터 고래그림 같은 전체 서비스 중지로 이어집니다. 요즘처럼 급박하게 돌아가는 사회에서는 이는 바로 사용자 이탈을 불러일으키죠. 이 같은 장애 상황에 저비용으로 효과적으로 대응할 수 있다는 것이 바로 클라우드 컴퓨팅의 핵심이라고 볼 수 있겠습니다.
클라우드 컴퓨팅 = 신속성 + 유연성 + 효율성 + 저비용 + 장애 대응
클라우드 컴퓨팅 "구현 기술"
그렇다면 이 같은 클라우드 컴퓨팅의 속성과 개념을 파악한 후에 클라우드 서비스를 만들려면 무엇을 알아야 하고, 무엇을 해야 하는가. 클라우드 서비스 아키텍처를 구성하기 위한 "구현 기술"이 무엇인가.
저자들은 바로 이 내용을 여러분께 알려드리기 위해 이 책을 집필했다고 합니다.
- 쓰리프트(Thrift), 에이브로(Avro) 등의 애플리케이션 서버
- 주키퍼(Zookeeper)등의 분산 관리 시스템
- 하둡(Hadoop)으로 대표되는 대용량 파일 시스템과 대용량 분산처리
- 멤캐쉬디(Memcached), 카산드라(Cassandra), 몽고DB(MongoDB), Neo4J 등으로 분류되는 NoSQL과 DBMS클러스터의 데이터베이스
- 로그 분석
- 성능 향상에 가장 중요한 요인인 캐시(Cache)
이 책에서는 이와 같은 클라우드 컴퓨팅의 모든 구성 요소를 다룹니다. 그리고 클라우드 컴퓨팅 대표 기업이 어떤 아키텍처를 채택했는지도 함께 알아봅니다. 아마 이 책은 세계적으로도 나온 적이 없는 클라우드 컴퓨팅의 입문서이자 개론서라고 할 수 있습니다. 물론 현 시점에서 가장 업데이트된 최신 버전으로 알려드림은 물론입니다.
이 책은 김형준, 조준호, 안성화, 김병준 네 분 저자께서 집필하셨습니다. 어제는 저희 사무실에 오셔서 기념샷도 찍으시고 저희끼리 조촐한 출간 파티도 열었습니다. 지글지글 꼼장어 집에서요. 제가 오늘 블로그에 적은 모든 이야기를 해주시기도 했고요.
얼마 전 인터넷 서점 예스24에서 오픈한 총알 검색이라는 기능이 있다고 합니다. 검색란에 검색어를 입력하면 세 권의 책을 보여준다고 하네요.
에이콘이라고 입력하면 무슨 책이 뜨는지 찾아봤습니다.
안 보면 왕따되는 '페이스북 이펙트'와 여전한 폭풍 인기 '토비의 스프링3', 그리고 이 책 '클라우드 컴퓨팅 구현 기술'이 뜹니다. 어찌 보면 크지 않은 도서시장인데도 많은 관심을 끌어 모으고 있다는 방증이겠죠.
제가 무어라 감사의 말을 전해야 할지 모를, 대표저자 김형준 님이십니다. 아마 5년 전쯤인가요. 지인들의 소개로 참석한 삼성SDS 자바 개발자 모임에서 김형준 님을 처음 뵈었습니다. 그때 그분께서 주신 열정과 성실함으로 인한 인연이 지금까지 이어져 이 책을 탄생하게 되었네요. 그동안 여러 곳에서 끝없는 열정으로 개발자로서 열심히 살아가는 김형 준 님께 정말 큰 감사의 박수를 보냅니다. 어젯밤 늦게까지 많은 이야기를 나누고 돌아가시는 저자분께 인사를 건네며 김형준 님께 악수를 청했습니다. 정말 고맙다고요. 단지 책 한권을 출간함을 넘어 저희 출판사에 대한 믿음과 책에 대한 애정이 고마울 따름이었습니다. 다시 한번 감사 말을 전합니다. "고맙습니다. 수석님." 그리고 물론 넥스알 하둡 전문가 조준호 팀장님, NHN 플랫폼서비스지원팀에서 일하시는 데이터베이스 전문가 김병준 차장님, NHN 성능엔지니어링 팀 캐쉬 분야 전문가 안성화 수석님, 모두 감사합니다. 고생하셨어요.
이 책은 이미 출간되어 YES24, 교보문고, 강컴, 인터파크, 알라딘, 리브로에서 판매 중입니다. 지금 주문하시면 올해가 가기전에 사보실 수 있을 거예요. 그간 궁금했던 클라우드 컴퓨팅 기술의 모든 것, 이 책 한 권으로 끝내보시기 바랍니다. 물론 세부 구현 기술에 대해선 여기저기서 많이 출간된 여러 책을 참조하시면 되고요. 감사합니다. 마지막으로 여러 분들의 추천사로 갈음하겠습니다. 추천글 전문은 저희 출판사 도서정보페이지에서 확인하세요.
클라우드 컴퓨팅의 이론부터 구현까지, 사례를 통해 생생하게 느낄 수 있다. 실무 담당자라면 이 책에서 유용한 힌트를 얻을 수 있을 것이다.
― 김민석 / NHN I&S
클라우드 컴퓨팅은 지식의 공유에서 온 커다란 선물일지도 모르겠다. 쉽지 않지만 이 책은 그 선물에 한 발짝 다가서서 제대로 흐름을 읽고, 구현되는 기술을 알 수 있도록 조언해준다.
― 도안구 / 블로터닷넷 기자
일과 삶에 균형을 맞추고, 서비스 변화에 발 빠르게 대응하기 위한 방법을 찾고자 한다면 이 책을 통해 새로운 전략을 세울 수 있을 것이다.
― 박재성 / XLGames 웹 개발자, 자바지기 커뮤니티 운영자
이 책에서는 클라우드의 기본부터 세밀한 구조까지 균형 잡힌 설명을 하고 있다. 클라우드의 사용자, 사업자, 개발자, 학생 등까지 널리 추천할 만하다.
― 서정식 / KT Cloud 추진본부 본부장
지금까지 클라우드 컴퓨팅에 관한 기술 서적이 제대로 없었는데, 이 책이 하나의 획을 그을 수 있지 않을까 생각한다.
― 성기준 SKC&C 클라우드컴퓨팅 사업본부 본부장
대용량 시스템을 오랜 시간 경험해온 저자들답게 IT 환경에서 항상 고민해 온 각종 자원 관리에 대한 수많은 고민을 매우 수준 높은 시각에서 실질적인 해결책을 제시한다.
― 이정룡 / 삼성SDS 인트라넷혁신그룹
현재 클라우드 기술 관련 국내외 서적을 통틀어 이 책만큼 다양하고 중요한 오픈소스를 심도 있게 다루고 있는 책은 없다고 단언합니다.
― 한재선 / 넥스알 대표이사, 한국 Hadoop 커뮤니티 회장, KAIST 정보미디어 경영대학원 겸직교수
크리에이티브 커먼즈 라이센스 이 저작물은 크리에이티브 커먼즈 코리아 저작자표시 2.0 대한민국 라이센스에 따라 이용하실 수 있습니다.
도서 오류 신고
정오표
정오표
1쇄 오류/오탈자
[ p20 세 번째 문단 1행 ]
클라우드 컴퓨티 → 클라우드 컴퓨팅
[ p28 2행 ]
IMB → IBM
[ p87 ●레드햇 계열 ]
yum install boost-devel automake libtool flex bison pkgconfig gcc-c++
→ yum install boost-devel automake libtool flex bison pkgconfig gcc-c++ python-devel
[ p90 리스트 3.4 마지막 행 추가 ]
}
[ p123 표 3.4 namespace 설명 패키지]
패지키 → 패키지
[ p425 아래에서 7-10행 ]
[@server1]
$ bin/mongos --port 30000 --configdb server1:20000,server2:20000,server3:20000 ./logs/mongos.log -fork
[@server2]
$ bin/mongos --port 30000 --configdb server1:20000,server2:20000,server3:20000 ./logs/mongos.log -fork
↓
[@server1]
$ bin/mongos --port 30000 --configdb server1:20000,server2:20000,server3:20000 --logpath ./logs/mongos.log --fork
[@server2]
$ bin/mongos --port 30000 --configdb server1:20000,server2:20000,server3:20000 --logpath ./logs/mongos.log --fork
[ p511 그림 9.7 ]
8080 → 8091
2쇄 오류/오탈자
[ p59 그림 2.3 URL 변경 ]
http://java.sun.com/blueprints/core2jeepatterns/Patterns
→ http://www.oracle.com/technetwork/articles/javaee/j2eeevolution-140167.html
[ p64 ●제목 부분 ]
애플리케이션 서버를 자체를 구축할 수 있는 프레임워크 → 애플리케이션 서버 자체를 구축할 수 있는 프레임워크
[ p66 ●제목 병기 추가 ]
고가용성 → 고가용성(High Availability)
자동화된 리소스 관리 → 자동화된 리소스 관리(Automatic Resource Management)
[ p89 2행 ]
IDLInterface Definition Language → IDL, Interface Definition Language
[ p146 아래에서 2행 ]
standb → standby
[ p161 아래에서 3행 ]
scheme:id → schema:id
[ p163 아래에서 5행 ]
addAuthIno 메소드 → addAuthInfo 메소드
[ p164 DISCONNECTED 설명 중 아래에서 5행 ]
DISCONNECT 상태에서는 → DISCONNECTED 상태에서는
[ p172 그림 4.7 서버 3 풍선도움말 ]
vote:3 → vote: 서버3
[ p246 코드 5.2 1행 ]
HDFSClientExapmle → HDFSClientExample
[ p246 코드 5.2 아래에서 10행 ]
디렉토리 삭제 → 파일 삭제
[ p345 두 번째 문단 3-4행 ]
다른 다른 테블릿 서버가 → 다른 테블릿 서버가
[ p376 4행 ]
HBase를 메인 개발 회사는 → HBase의 메인 개발 회사는
[ p389 세 번째 문단 1행 ]
쓰기 연산에서 대한 → 쓰기 연산에 대한