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 용도
자주 읽고, 써서
변경이 많이되는 정보를
여러 머신의 분산하여
대용량 사용자에 대한
응답 성능을 개선
사용자 트레픽에 따라 손쉽게 시스템 규모 증가
운영상의 난이도 ?!