스크랩

구간

카산드라 따라잡기 - acorn+PACKT 시리즈 150가지 예제로 배우는 NoSQL 카산드라 설계와 성능 최적화

원제 : Cassandra High Performance Cookbook

에드워드 카프리올로 저 | 이두희 외 역 | 에이콘출판 | 2013년 02월

북트리

정가
$60.00
판매가
$43.74 (27%↓) 최저가 보상
적립금
$0.87 (2%P)
출고예상일
2026년 10월 08일 수령예상일 안내
북카트 담기 바로구매하기 위시리스트담기

평점 -  ·  리뷰 0

리뷰 쓰기

ISBN : 9788960774049 / 404쪽 188 x 235 (㎜)

이 상품에 궁금하신점이 있으세요? 1:1상담문의

추천inside
Adobe Flash Player 가져오기

이 분야의 베스트셀러

아래의 도서와 구매하시면 이 도서들의 적립금을 즉시적용해 드립니다.

책 소개

출판사 리뷰

대규모의 아파치 카산드라 데이터베이스를 설계하고 최적화하는 데 필요한 150가지 이상의 예제들이 제공된다.

이 책에서는 카산드라의 기능들을 활용하는 방법과 카산드라의 성능을 향상시키는 방법을 다루는 다양한 예제들이 제공된다. 이러한 예제들은 카산드라를 처음 설치하고 구성하는 방법부터 매우 복잡한 다수의 데이터센터를 설치하는 방법까지 모두 포괄한다. 이 책에서는 예제라는 형식을 이용하여 카산드라의 기능을 이용하고 최적화하는 방법들을 매우 간결하게 다룬다.


★ 이 책에서 다루는 내용 ★

■ 카산드라의 커맨드라인 인터페이스 이용하기
■ 카산드라에 있는 데이터를 이용하는 프로그램 만들기
■ 카산드라의 성능을 향상시키기 위한 설정 및 구성환경
■ 저장공간 활용과 접근성을 극대화할 수 있도록 데이터 모델링하기
■ 일관성(Consistency)을 조절하여 데이터 액세스 최적화하기
■ 하나 혹은 여러 개의 데이터센터에서 카산드라 사용하기
■ 카산드라의 성능 모니터링하기
■ 노드를 추가하거나 제거하며 클러스터 관리하기


★ 이 책의 대상 독자 ★

이 책은 카산드라의 고성능의 확장 가능한 데이터 스토리지에 관심이 있는 관리자, 개발자, 그리고 데이터 아키텍트를 위한 책이다. 독자들은 대부분, 데이터베이스 기술과 여러 개의 노드가 달려있는 컴퓨터 클러스터와 높은 가용성을 보장하는 솔루션을 경험해 보았을 것이다.


★ 이 책의 구성 ★

1장. 시작하기: 이 장에서는 카산드라를 간략히 둘러본다. 설치 예제에서는 카산드라를 다운로드하고 싱글 인스턴스로 설치하거나 혹은 여러 인스턴스 클러스터를 시뮬레이팅하는 방법을 알아본다. 트러블슈팅 예제에서는 카산드라를 돌릴 때 디버깅 정보를 포함시켜 실행시키는 방법과 관리 도구를 사용하는 방법을 알아본다. 또한, 엔드 유저가 카산드라에 접근 할 수 있도록 하는 커맨드라인 툴 등도 소개한다.

2장. 커맨드라인 인터페이스: 이 장은 카산드라의 커맨드라인 인터페이스에 관한 예제들을 다룬다. 각 예제들은 키 스페이스, 칼럼, 캐쉬 세팅 등과 같은 메타데이터를 조작하기 위해 CLI가 어떻게 사용될 수 있는지 보여준다. 이와 함께 CLI로 데이터를 가져오고 변경하며 검색하는 방법을 배울 수 있다.

3장. API: 카산드라는 데이터에 접근하고 이를 삽입할 수 있는 API를 제공한다. 이 장에서는 데이터를 삽입하고, 가져오고, 삭제하고, 범위 스캔을 할 수 있는 방법을 보여준다. 또한 배치 프로그램에 사용되는 배치 코드 등을 설명한다.

4장. 성능 튜닝: 카산드라는 여러가지 설정이 가능하며, 하드웨어의 구성과 시스템 레벨에서 튜닝을 하는 것이 성능에 영향을 줄 수 있다. 여기서는 여러 환경설정 옵션을 통해 성능을 최적화하는 방법을 알아본다.

5장. 카산드라에서의 일관성, 가용성, 파티션 허용: 카산드라는 여러 개의 노드에 데이터를 저장하고 복제하기 위해 처음부터 새로 만들어진 프로젝트다. 이 장에서는 일관성 레벨을 튜닝하고 읽기 수리(read repair) 같은 기능들을 설정하는 방법을 알아본다. 이러한 예제를 통해 네트워크에 문제가 생기는 등의 상황에서도 가용성을 지킬 수 있는 방법을 알아본다.

6장. 스키마 디자인: 카산드라의 데이터 모델은 방대한 양의 데이터를 여러 개의 노드에 저장할 수 있도록 디자인되었다. 이 장에서는 주로 맞닥뜨리게 되는 저장공간 문제를 카산드라를 사용해서 해결하는 방법을 보여준다. 여기서는 데이터를 직렬화하고, 큰 데이터와 타임 시리즈, 정규화되었거나 비정규화한 데이터를 저장하는 방법을 소개한다.

7장. 관리: 카산드라는 노드를 리드타임 없이 클러스터에 넣거나 뺄 수 있는 것을 가능하게 한다. 이 장에서는 노드를 추가하거나, 옮기거나, 제거하는 것과 데이터를 백업하고 복원하는 관리 테크닉을 배우게 된다.

8장. 다수의 데이터센터 사용하기: 카산드라는 노드들이 로컬 네트워크에 배포되어 있거나 지리적으로 서로 멀리 떨어져 있을 때에도 잘 동작할 수 있도록 디자인되어있다. 이 장에서는 여러 개의 데이터센터가 있을 때 카산드라가 동작하는 방식을 설정해 최적화하는 방법을 알아본다.

9장. 코딩과 내부구조: 이 장에서는 카산드라를 소스에서부터 컴파일하기, 카산드라에 사용할 수 있는 커스텀 타입 만들기, JSON 추출 툴 수정하기 등 통상적인 API 접근에서 벗어난 방법을 알아본다.

10장. 라이브러리와 애플리케이션: 카산드라를 위한 여러 라이브러리와 어플리케이션이 존재한다. 이 장에서는 프로그래밍을 쉽게 해주는 하이 레벨 클라이언트 헥토르(Hector)와 오브젝트 매핑 툴 쿤데라(Kundera) 등을 소개한다. 또한 이 장에서는 풀 텍스트 검색엔진 솔란드라(Solandra) 등, 카산드라를 사용해 만들어진 프로그램을 설치하고 사용하는 방법을 보여준다.

11장. 하둡과 카산드라: 하둡은 높은 속도와 큰 공간을 사용할 수 있도록 하는 분산 파일 시스템 HDFS와 클러스터에서 큰 데이터 셋을 처리할 수 있게 하는 맵리듀스(MapReduce)를 합친 프레임워크다. 이 장에서는 하둡과 카산드라를 각각 따로, 혹은 공통의 하드웨어에 설치하는 방법에 대해서 알아본다. 여기서는 카산드라를 맵리듀스의 인풋 혹은 아웃풋으로 사용하는 방법과, 데이터 개수를 세거나 합치는 등의 하둡 내에서 카산드라로 할 수 있는 일들에 대해 알아본다.

12장. 성능 통계 수집 및 분석: 카산드라와 운영체제로부터 성능 통계 데이터를 모으는 방법을 알아본다. 여기서는 이러한 정보를 모으고 화면에 표시하는 방법과, 이를 활용해 카산드라 서버를 튜닝하는 방법을 알아본다.

13장. 카산드라 서버 모니터링: 이 장에서는 카산드라의 현재 성능에 대해 알아볼 수 있는 툴을 설치하고 사용하는 방법을 알아본다. 또한 로그 이벤트를 하나의 중앙 서버로 집합시키고, 위험한 상황에 대비해 로그를 모니터링하는 법에 대하여도 알아본다.


★ 저자 서문 ★

아파치 카산드라(Apache Cassandra)는 장애상황에 둔감하고 선형적으로 확장할 수 있는 분산 데이터 저장소로 많은 저장 공간이 필요한 웹사이트에 적용할 수 있는 스토리지 플랫폼이다.

이 책은 카산드라의 각종 기능들을 활용하는 방법과 성능을 높이는 여러 방법을 설명한다. 카산드라를 처음 설치하는 법부터 다수의 데이터센터에 카산드라를 배포하는 법에 이르기까지 매우 간결하고 따라하기 쉬운 방식으로 내용을 설명했다.

이 책에서는 카산드라의 각종 기능들을 튜닝하고 이에 따른 결과를 보여주며, 카산드라에 있는 데이터를 액세스하는 방법과 서드파티 툴을 사용하는 법을 설명하는 예제들이 있다. 또한, 용량 계획과 서버 모니터링을 통하여 높은 성능을 계속 유지하는 방법을 소개한다. 책의 후반부에선 각종 라이브러리와 카산드라와 함께 사용할 수 있는 서드파티 애플리케이션을 소개하고, 하둡과 카산드라를 통합하는 방법도 소개한다.


★ 옮긴이의 말 ★

최근 IT 대세는 대용량, 빅데이터다.

이는 동영상이나 사진처럼 단순히 용량이 큰 데이터를 말하기보단, 매우 짧은 시간에 쉴 새 없이 쌓이는 데이터, 그리고 데이터의 저장/관리/분석을 뜻한다.

\"그건 트위터나 구글에나 해당하는 말이지. 내가 만들고 있는 서비스에는 해당하지 않아.\"

그렇지 않다. 대한민국에서 수없이 생겼다가 사라지는 온라인 쇼핑몰을 예로 들어 보자. 불과 몇 년 전만 해도 온라인 쇼핑몰은 장바구니 담기를 비롯한 결제, 상품보기 등의 간단한 기능만 있으면 충분했다. 그 작업을 위한 데이터베이스 관리는 MySQL 같은 관계형 데이터베이스 시스템이 담당했다. 그리고 다소 노골적인 질문을 던지면 사용자 피드백을 모두 얻을 수 있다고 생각했다. '이 상품이 얼마나 마음에 들었습니까? 별점을 주세요.'

하지만 이런 질문의 답보다 더 정확한 것은 고객이 직접 남긴 발자국이다. 이미 고객은 쇼핑몰 주인에게 충분히 많은 표현을 했다. 쇼핑몰에 머물렀던 시간, 눌렀던 메뉴 버튼, 상품 페이지 전환 관계, 트래픽 소스 등 고객이 남긴 각종 정보가 모두 피드백이다. \"A라는 고객이 B라는 상품을 샀다.\"가 중요한 게 아닌, \"A라는 고객이 이러저러한 과정을 통해서 B라는 상품을 샀다.(또는 사지 않았다.)\"가 더욱 중요한 것이다. 쇼핑몰 주인은 이런 정보를 바탕으로 쇼핑몰 메뉴를 수정해서 구매율을 높일 수도 있고, 고객에게 매력적인 상품을 맞춤형으로 추천할 수도 있다.

이제 저장해야 할 정보가 많아졌다. 한 고객이 상품을 구매하러 가는 과정에서 수십 수백 개의 정보가 순식간에 쌓일 수 있다. 고객과 상품이 늘어나면 기존 관계형 데이터베이스 시스템으로는 저장/관리/분석이 힘들어진다. 이를 효과적으로 처리하기 위해선 NoSQL 기술이 필요하고, 카산드라는 이 NoSQL의 선봉에 있는 프로젝트다.

카산드라는 빅데이터 처리를 위해 페이스북에서 시작했고, 지금은 아파치 소프트웨어 재단에서 높은 우선순위로 관리하고 있다. 오픈소스 프로젝트로서 확장성이 뛰어나며, 장애극복 성능도 좋다. 맵리듀스 등의 기능도 제공하며, 대용량을 위해 여러 데이터 센터에 설치하는 것이 가능하다. 카산드라는 빅데이터 처리를 위한 최적의 도구다. 따라서 카산드라를 정복하면 빅데이터 처리를 정복했다고 해도 과언이 아닐 것이다. 또한 이러한 빅데이터 처리에 능해지면 온라인 서비스 개발뿐만 아니라 각종 사회/정치/문화/경제/과학 분야에서 매우 강력한 힘을 갖게 될 것이다.

- 이두희

저자 소개

아파치 소프트웨어 재단의 멤버이자 하둡-하이브(Hadoop-Hive) 프로젝트의 커미터다. 개발자로서 리눅스와 네트워크 관리자로도 활동하고 있으며, 오픈 소스 소프트웨어의 방대한 세계를 누비고 있다. 
현재 미디어식스디그리스(Media6degrees)라는 회사에서 시스템 관리자로 일하며, 인터넷 광고 산업에 활용되는 분산 데이터 저장공간 시스템의 디자인과 관리를 맡고 있다.


저서: 카산드라 따라잡기

역자 소개

서울대학교 컴퓨터공학부에 재학 중이며, 사용자들을 위한 맛있는 서비스를 만드는 동아리 와플스튜디오에서 7대 회장으로 활동하고 있다. HTML5의 새 기능들을 활용하는 ’Infinite Wall-Ideas that scale’이라는 프로젝트에서 웹 개발에 참여하고 있으며, 확장 가능한 서버를 구성하기 위해 플레이(Play) 프레임워크 와 카산드라를 활용하고 있다. 아직 국내에 많이 도입되지 않은 함수형 언어의 가능성과 점차 방대해지는 데이터를 처리하기 위한 새로운 기술들에 관심이 많다. 피아노 재즈를 사랑하며 하루라도 음악을 듣지 않으면 불안할 정도이나, 아무래도 악기에는 재주가 없다는 사실을 깨닫고 잘 할 수 있는 일에 집중하기로 마음을 먹었다.
서울대학교 컴퓨터공학부에 재학 중이며 졸업을 앞두고 있다. 2009년부터 와플스튜디오에서 활동하면서 5대 회장을 역임헸고, 웹 개발 및 안드로이드 개발에 참여하고 있다. 데이터베이스 및 분산처리에 관심이 많으며, 현재 새로이 재미있는 서비스를 준비하고 있다.
서울대학교 컴퓨터 공학부를 졸업했고, 현재 동대학교 박사과정에 재학 중이다. 2007년 서울대학교 웹 개발 동아리 와플스튜디오를 창설했고, 초대회장을 역임했다. 서울대학교 강의 평가 서비스를 개발했고, 현재 서비스를 총괄한다. 와플스튜디오 외에 울트라캡숑, 멋쟁이 사자처럼 등을 설립했다. 에이콘출판사에서 펴낸 『아이폰 액세서리 디바이스 개발』(2011)을 공역했다.

머리말

★ 저자 서문 ★

아파치 카산드라(Apache Cassandra)는 장애상황에 둔감하고 선형적으로 확장할 수 있는 분산 데이터 저장소로 많은 저장 공간이 필요한 웹사이트에 적용할 수 있는 스토리지 플랫폼이다.

이 책은 카산드라의 각종 기능들을 활용하는 방법과 성능을 높이는 여러 방법을 설명한다. 카산드라를 처음 설치하는 법부터 다수의 데이터센터에 카산드라를 배포하는 법에 이르기까지 매우 간결하고 따라하기 쉬운 방식으로 내용을 설명했다.

이 책에서는 카산드라의 각종 기능들을 튜닝하고 이에 따른 결과를 보여주며, 카산드라에 있는 데이터를 액세스하는 방법과 서드파티 툴을 사용하는 법을 설명하는 예제들이 있다. 또한, 용량 계획과 서버 모니터링을 통하여 높은 성능을 계속 유지하는 방법을 소개한다. 책의 후반부에선 각종 라이브러리와 카산드라와 함께 사용할 수 있는 서드파티 애플리케이션을 소개하고, 하둡과 카산드라를 통합하는 방법도 소개한다.

 

★ 옮긴이의 말 ★

최근 IT 대세는 대용량, 빅데이터다.

이는 동영상이나 사진처럼 단순히 용량이 큰 데이터를 말하기보단, 매우 짧은 시간에 쉴 새 없이 쌓이는 데이터, 그리고 데이터의 저장/관리/분석을 뜻한다.

“그건 트위터나 구글에나 해당하는 말이지. 내가 만들고 있는 서비스에는 해당하지 않아.”

그렇지 않다. 대한민국에서 수없이 생겼다가 사라지는 온라인 쇼핑몰을 예로 들어 보자. 불과 몇 년 전만 해도 온라인 쇼핑몰은 장바구니 담기를 비롯한 결제, 상품보기 등의 간단한 기능만 있으면 충분했다. 그 작업을 위한 데이터베이스 관리는 MySQL 같은 관계형 데이터베이스 시스템이 담당했다. 그리고 다소 노골적인 질문을 던지면 사용자 피드백을 모두 얻을 수 있다고 생각했다. ‘이 상품이 얼마나 마음에 들었습니까? 별점을 주세요.’

하지만 이런 질문의 답보다 더 정확한 것은 고객이 직접 남긴 발자국이다. 이미 고객은 쇼핑몰 주인에게 충분히 많은 표현을 했다. 쇼핑몰에 머물렀던 시간, 눌렀던 메뉴 버튼, 상품 페이지 전환 관계, 트래픽 소스 등 고객이 남긴 각종 정보가 모두 피드백이다. “A라는 고객이 B라는 상품을 샀다.”가 중요한 게 아닌, “A라는 고객이 이러저러한 과정을 통해서 B라는 상품을 샀다.(또는 사지 않았다.)”가 더욱 중요한 것이다. 쇼핑몰 주인은 이런 정보를 바탕으로 쇼핑몰 메뉴를 수정해서 구매율을 높일 수도 있고, 고객에게 매력적인 상품을 맞춤형으로 추천할 수도 있다.

이제 저장해야 할 정보가 많아졌다. 한 고객이 상품을 구매하러 가는 과정에서 수십 수백 개의 정보가 순식간에 쌓일 수 있다. 고객과 상품이 늘어나면 기존 관계형 데이터베이스 시스템으로는 저장/관리/분석이 힘들어진다. 이를 효과적으로 처리하기 위해선 NoSQL 기술이 필요하고, 카산드라는 이 NoSQL의 선봉에 있는 프로젝트다.

카산드라는 빅데이터 처리를 위해 페이스북에서 시작했고, 지금은 아파치 소프트웨어 재단에서 높은 우선순위로 관리하고 있다. 오픈소스 프로젝트로서 확장성이 뛰어나며, 장애극복 성능도 좋다. 맵리듀스 등의 기능도 제공하며, 대용량을 위해 여러 데이터 센터에 설치하는 것이 가능하다. 카산드라는 빅데이터 처리를 위한 최적의 도구다. 따라서 카산드라를 정복하면 빅데이터 처리를 정복했다고 해도 과언이 아닐 것이다. 또한 이러한 빅데이터 처리에 능해지면 온라인 서비스 개발뿐만 아니라 각종 사회/정치/문화/경제/과학 분야에서 매우 강력한 힘을 갖게 될 것이다.

- 이두희

목차

top