대용량 서비스 처리를 위한 시스템 @kasa

14
대용량 서비스 처리를 위한 도구들 메모리 저장소와 분산 저장소

Upload: chanho-song

Post on 23-Jun-2015

1.194 views

Category:

Documents


0 download

TRANSCRIPT

Page 1: 대용량 서비스 처리를 위한 시스템 @KASA

대용량 서비스 처리를 위한도구들

메모리 저장소와 분산 저장소

Page 2: 대용량 서비스 처리를 위한 시스템 @KASA

대용량 서비스

애니팡

- 12' 8월 이용자 100만 이 후 매월 100만 이상 증가

- 12' 12월 다운로드 2000만카카오톡

- 12' 12월 이용자 7000만- 11' 11월 이용자 3000만, 일 메시지 7억라인

- 13' 1월 가입자 1억 => 이용자 1억에 일 메시지 24억 건, 초당 28만 건

Page 3: 대용량 서비스 처리를 위한 시스템 @KASA

요구 사항

안정적인 서비스- 서비스 중단은 사용자 이탈과 직결다수 이용자 상대- 1만 => 수백만빠른 속도록 늘어나는 사용자- 일 단위로 두배로 이용자 증가컨텐츠 수명주기에 따른 유연한 인프라 구성- 효율적인 인프라 운영으로 매출 대비 이익 향상

Page 4: 대용량 서비스 처리를 위한 시스템 @KASA

서비스 구성 도구

로직

- 웹 기반 기술 활용- 안정성과 확장성 확보

저장소

- 빠른 응답 처리 => 메모리 저장소 + memcache, redis, couchbase 등등- 대용량 데이터 처리 => 분산 저장소 + HBase, Cassandra, SQL cluster 등등

Page 6: 대용량 서비스 처리를 위한 시스템 @KASA

memcached

key-value / get, set, delete- 간단한 연산만 지원충분한 메모리 필요- 페이지 스왑이나 락이 없도록 구성캐싱한 데이터에 대해 안정성 보장 하지 않음- 언제든지 파기 될 수 있음- 항상 임시라고 생각하고 구성기본 LRU로 관리- 타임 아웃 시간 지정 가능

Page 7: 대용량 서비스 처리를 위한 시스템 @KASA

memcached 용도

자주 읽고 변경되지 않는 정보를 메모리에 저장하여 DB의 부하를 줄이고 빠른 응답으로 성능 개선

양날의 검 ?!

Page 8: 대용량 서비스 처리를 위한 시스템 @KASA

redis - REmote DIctionary System

key-value / 다양한 자료 구조 / 정렬 / Pub-Sub 등

- 비교적 다양한 기능데이터 복제 (Master / Slave)- 데이터 요청에 대한 응답성 향상Cluster 구성 가능- 다루는 데이터의 규모를 확장 가능- 노드간 데이터에 일관성 필수 !!디스크에 기록 가능- snapshotting, AOF(Append On File)

Page 9: 대용량 서비스 처리를 위한 시스템 @KASA

redis 용도

자주 읽고, 써서 변경이 많이되는 정보를 여러 머신의 분산하여 대용량 사용자에 대한 응답 성능을 개선

노드 사이의 메시지 교환

운영상의 난이도 ?! 데이터 일관성 확보가 필수

Page 10: 대용량 서비스 처리를 위한 시스템 @KASA

redis with zookeeper

redis cluster 운영에 활용

- 동기화하여 데이터 안정성 보장- 장애상황 판단 및 복구- 환경설정 관리

- 네임서비스를 통한 부하분산- 분산락이나 동화 문제 해결

Page 11: 대용량 서비스 처리를 위한 시스템 @KASA

COUCHBASE 특징

couchdb + membase- 메모리 캐시 기반의 NoSQL 솔루션간단한 확장성- 클릭 만으로 시스템 중단없이 확장 가능무중단 서비스- 데이터 및 데이터 센터 복제로 시스템 장애 극복

- Master 노드가 없음일관성 있는 고성능 보장- 부하 분산을 통해 1ms 이하 응답 속도 가능

Page 12: 대용량 서비스 처리를 위한 시스템 @KASA

COUCHBASE 용도

자주 읽고, 써서 변경이 많이되는 정보를 여러 머신의 분산하여 대용량 사용자에 대한 응답 성능을 개선

사용자 트레픽에 따라 손쉽게 시스템 규모 증가

운영상의 난이도 ?!

Page 13: 대용량 서비스 처리를 위한 시스템 @KASA

COUCHBASE with elasticsearch.

COUCHBASE에서 연동 plugin 제공JSON over HTTP- json 쿼리- REST API분산 검색- 1 ~ 100 노드 구성 가능스키마 무관, 문서 검색- NoSQL 과 궁합이 좋음- 문서에 대한 역인덱싱 구성

Page 14: 대용량 서비스 처리를 위한 시스템 @KASA

QA ?!next : COUCHBASE 사용 후기