SlideShare a Scribd company logo
1 of 14
Download to read offline
대용량 서비스 처리를 위한
     도구들
  메모리 저장소와 분산 저장소
대용량 서비스
애니팡
- 12' 8월 이용자 100만 이 후 매월 100만 이상
증가
- 12' 12월 다운로드 2000만
카카오톡
- 12' 12월 이용자 7000만
- 11' 11월 이용자 3000만, 일 메시지 7억
라인
- 13' 1월 가입자 1억
 => 이용자 1억에 일 메시지 24억 건, 초당 28만
요구 사항

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

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

데이터 처리 규모에 따라 아키텍쳐 변경
30K 이상의 클라이언트을 수용
600개 이상의 노드로 구성
응답 속도와 데이터 안정성에 따라 스토리지 구
분
Redis, Redis cluster, HBase, MySQL 사용

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


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

양날의 검 ?!
redis - REmote DIctionary System
key-value / 다양한 자료 구조 / 정렬 / Pub-Sub
등
- 비교적 다양한 기능
데이터 복제 (Master / Slave)
- 데이터 요청에 대한 응답성 향상
Cluster 구성 가능
- 다루는 데이터의 규모를 확장 가능
- 노드간 데이터에 일관성 필수 !!
디스크에 기록 가능
- snapshotting, AOF(Append On File)
redis 용도

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

노드 사이의 메시지 교환

운영상의 난이도 ?! 데이터 일관성 확보가 필수
redis with zookeeper
redis cluster 운영에 활용

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

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

couchdb + membase
- 메모리 캐시 기반의 NoSQL 솔루션
간단한 확장성
- 클릭 만으로 시스템 중단없이 확장 가능
무중단 서비스
- 데이터 및 데이터 센터 복제로 시스템 장애 극
복
- Master 노드가 없음
일관성 있는 고성능 보장
- 부하 분산을 통해 1ms 이하 응답 속도 가능
COUCHBASE 용도

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

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

운영상의 난이도 ?!
COUCHBASE with elasticsearch.
COUCHBASE에서 연동 plugin 제공
JSON over HTTP
- json 쿼리
- REST API
분산 검색
- 1 ~ 100 노드 구성 가능
스키마 무관, 문서 검색
- NoSQL 과 궁합이 좋음
- 문서에 대한 역인덱싱 구성
QA ?!
next : COUCHBASE 사용 후기

More Related Content

Viewers also liked

Viewers also liked (7)

HBase 훑어보기
HBase 훑어보기HBase 훑어보기
HBase 훑어보기
 
하둡 HDFS 훑어보기
하둡 HDFS 훑어보기하둡 HDFS 훑어보기
하둡 HDFS 훑어보기
 
Mesos + Marathon + Docker
Mesos + Marathon + DockerMesos + Marathon + Docker
Mesos + Marathon + Docker
 
Mongo DB 성능최적화 전략
Mongo DB 성능최적화 전략Mongo DB 성능최적화 전략
Mongo DB 성능최적화 전략
 
하둡 (Hadoop) 및 관련기술 훑어보기
하둡 (Hadoop) 및 관련기술 훑어보기하둡 (Hadoop) 및 관련기술 훑어보기
하둡 (Hadoop) 및 관련기술 훑어보기
 
[Gaming on AWS] 넥슨 - AWS를 활용한 모바일 게임 서버 개발: 퍼즐 주주의 사례
[Gaming on AWS] 넥슨 - AWS를 활용한 모바일 게임 서버 개발: 퍼즐 주주의 사례[Gaming on AWS] 넥슨 - AWS를 활용한 모바일 게임 서버 개발: 퍼즐 주주의 사례
[Gaming on AWS] 넥슨 - AWS를 활용한 모바일 게임 서버 개발: 퍼즐 주주의 사례
 
Java/Spring과 Node.js의공존
Java/Spring과 Node.js의공존Java/Spring과 Node.js의공존
Java/Spring과 Node.js의공존
 

More from Chanho Song (9)

Unicode @KASA
Unicode @KASAUnicode @KASA
Unicode @KASA
 
스마트폰 해킹과 대응 @KGC2013
스마트폰 해킹과 대응 @KGC2013스마트폰 해킹과 대응 @KGC2013
스마트폰 해킹과 대응 @KGC2013
 
스마트폰 해킹과 대응 @KASA
스마트폰 해킹과 대응 @KASA스마트폰 해킹과 대응 @KASA
스마트폰 해킹과 대응 @KASA
 
Html5+js with game engine cocos2d-html5 분석 @KGC2012
Html5+js with game engine   cocos2d-html5 분석 @KGC2012Html5+js with game engine   cocos2d-html5 분석 @KGC2012
Html5+js with game engine cocos2d-html5 분석 @KGC2012
 
No silver bullet @KASA open seminar
No silver bullet @KASA open seminarNo silver bullet @KASA open seminar
No silver bullet @KASA open seminar
 
No silver bullet
No silver bulletNo silver bullet
No silver bullet
 
No silver bullet
No silver bulletNo silver bullet
No silver bullet
 
No silver bullet
No silver bulletNo silver bullet
No silver bullet
 
No silver bullet
No silver bulletNo silver bullet
No silver bullet
 

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

  • 1. 대용량 서비스 처리를 위한 도구들 메모리 저장소와 분산 저장소
  • 2. 대용량 서비스 애니팡 - 12' 8월 이용자 100만 이 후 매월 100만 이상 증가 - 12' 12월 다운로드 2000만 카카오톡 - 12' 12월 이용자 7000만 - 11' 11월 이용자 3000만, 일 메시지 7억 라인 - 13' 1월 가입자 1억 => 이용자 1억에 일 메시지 24억 건, 초당 28만
  • 3. 요구 사항 안정적인 서비스 - 서비스 중단은 사용자 이탈과 직결 다수 이용자 상대 - 1만 => 수백만 빠른 속도록 늘어나는 사용자 - 일 단위로 두배로 이용자 증가 컨텐츠 수명주기에 따른 유연한 인프라 구성 - 효율적인 인프라 운영으로 매출 대비 이익 향 상
  • 4. 서비스 구성 도구 로직 - 웹 기반 기술 활용 - 안정성과 확장성 확보 저장소 - 빠른 응답 처리 => 메모리 저장소 + memcache, redis, couchbase 등등 - 대용량 데이터 처리 => 분산 저장소 + HBase, Cassandra, SQL cluster 등등
  • 5. 사례 - Line (NHN) 데이터 처리 규모에 따라 아키텍쳐 변경 30K 이상의 클라이언트을 수용 600개 이상의 노드로 구성 응답 속도와 데이터 안정성에 따라 스토리지 구 분 Redis, Redis cluster, HBase, MySQL 사용 시스템 구성 설명 링크
  • 6. memcached key-value / get, set, delete - 간단한 연산만 지원 충분한 메모리 필요 - 페이지 스왑이나 락이 없도록 구성 캐싱한 데이터에 대해 안정성 보장 하지 않음 - 언제든지 파기 될 수 있음 - 항상 임시라고 생각하고 구성 기본 LRU로 관리 - 타임 아웃 시간 지정 가능
  • 7. memcached 용도 자주 읽고 변경되지 않는 정보를 메모리에 저장하여 DB의 부하를 줄이고 빠른 응답으로 성능 개선 양날의 검 ?!
  • 8. redis - REmote DIctionary System key-value / 다양한 자료 구조 / 정렬 / Pub-Sub 등 - 비교적 다양한 기능 데이터 복제 (Master / Slave) - 데이터 요청에 대한 응답성 향상 Cluster 구성 가능 - 다루는 데이터의 규모를 확장 가능 - 노드간 데이터에 일관성 필수 !! 디스크에 기록 가능 - snapshotting, AOF(Append On File)
  • 9. redis 용도 자주 읽고, 써서 변경이 많이되는 정보를 여러 머신의 분산하여 대용량 사용자에 대한 응답 성능을 개선 노드 사이의 메시지 교환 운영상의 난이도 ?! 데이터 일관성 확보가 필수
  • 10. redis with zookeeper redis cluster 운영에 활용 - 동기화하여 데이터 안정성 보장 - 장애상황 판단 및 복구 - 환경설정 관리 - 네임서비스를 통한 부하분산 - 분산락이나 동화 문제 해결
  • 11. COUCHBASE 특징 couchdb + membase - 메모리 캐시 기반의 NoSQL 솔루션 간단한 확장성 - 클릭 만으로 시스템 중단없이 확장 가능 무중단 서비스 - 데이터 및 데이터 센터 복제로 시스템 장애 극 복 - Master 노드가 없음 일관성 있는 고성능 보장 - 부하 분산을 통해 1ms 이하 응답 속도 가능
  • 12. COUCHBASE 용도 자주 읽고, 써서 변경이 많이되는 정보를 여러 머신의 분산하여 대용량 사용자에 대한 응답 성능을 개선 사용자 트레픽에 따라 손쉽게 시스템 규모 증가 운영상의 난이도 ?!
  • 13. COUCHBASE with elasticsearch. COUCHBASE에서 연동 plugin 제공 JSON over HTTP - json 쿼리 - REST API 분산 검색 - 1 ~ 100 노드 구성 가능 스키마 무관, 문서 검색 - NoSQL 과 궁합이 좋음 - 문서에 대한 역인덱싱 구성
  • 14. QA ?! next : COUCHBASE 사용 후기