9. 9
- 고객 문의 대응
채팅창에서 쌍욕을 했어요! 제재해주세요!
제 업적이 사라졌어요! 복구해주세요!
- 데이터 기반 의사결정 및 서비스 개선
- 해킹 대응
- 법무 대응
서비스 장애에 대한 보상 근거
개인 정보 보유 기간은 무조건 1년
각종 수사 자료
1. 로그 데이터의 중요성
11. 11
2.1 RDBMS 기반
RDBMS와 SQL 사용에 익숙하기 때문에, 초기 구축과 데이터 분석이 용이합니다.
지속적인 클러스터 확장이 어렵고, 스키마 유지에 어려움이 있습니다.
예시) WAS + MySQL
Server
Apache Httpd
mod_php
MySQL
Server
Apache Httpd
mod_php
Server
Apache Httpd
mod_php
12. 12
2.2 NoSQL 기반
지속적인 클러스터 확장이 가능하며, JSON 형식으로 자유롭게 저장할 수 있습니다.
NoSQL 부하 방지를 위해서, 캐시 시스템을 버퍼로 사용할 수 있습니다.
복잡한 질의 처리가 어려우며, 새로운 시스템에 대한 러닝 커브가 필요합니다.
예시) WAS + Redis + MongoDB
Server
Apache Httpd
mod_php
Predis
Server
Apache Httpd
mod_php
Predis
Server
Apache Httpd
mod_php
Predis
Redis
MongoDB
13. 13
2.3 Hadoop 기반
다양한 솔루션으로 로그를 수집한 후, 하둡에 저장할 수 있으며, 데이터 처리용 에코시스템
도 풍부합니다. 기존 DBMS와 연동할 경우 별도의 ETL 작업이 필요하며, 하둡 에코 시스템
에 대한 러닝커브가 큽니다.
WAS
LOGS
Flume Agent
- Source : Spooling Directory
- Sink : Kafka
Flume Agent
- Source : Spooling Directory
- Sink : Kafka
WAS
LOGS
Kafka
Broker
Broker
Broker
…
Hadoop
예시) Flume + Kafka + Hadoop
17. 17
원본 로그를 별도 가공없이
분석할 수는 없을까?
새로운 프레임워크나 언어를
배우지 않고, 분석할 수는 없을까?
18. 18
EC2
2.4 Tajo on AWS
EC2 인스턴스에서 생성된 로그를 S3에 저장하고, Tajo로 데이터를 분석합니다.
S3는 고가용성을 보장하며, 업로드 비용이 없으며, CPU 비용을 내지 않습니다.
20TB 월 유지비 약 700달러 (한화 약 82만원)
Apache Httpd
S3
EC2
Apache Httpd
EC2
Apache Httpd
Tajo (EMR or EC2)
20. 20
3.1 Tajo overview
• 하둡 기반의 빅데이터 웨어하우스 시스템
• 2013년 아파치 인큐베이션, 2014년 아파치 탑레벨 프로젝트
• ANSI SQL 지원
• 주요 특징
– 자체 고성능 분산 처리 엔진 (Not MapReduce)
– 다양한 질의 최적화 기법 및 알고리즘 적용
– 수시간 이상 실행되는 ETL 질의 지원
– 수백 밀리세컨드 이내 실행되는 인터랙티브 질의 지원
21. 21
3.2 Tajo Architecture
Master Server (HA)
Client
JDBC TSql Web UI
CatalogStore
DBMS
HCatalog
Submit a Query
Manage metadata
Allocate a query
Send task
& monitor
Send task
& monitor
Slave Server
TajoWorker
QueryMaster
Local
FileSystem
HDFS
Local Query
Engine
StorageManager
Slave Server
TajoWorker
QueryMaster
Local
FileSystem
HDFS
Local Query
Engine
StorageManager
Slave Server
TajoWorker
QueryMaster
Local
FileSystem
HDFS
Local Query
Engine
StorageManager
TajoMaster
TajoMaster
22. 22
3.3 Tajo Comparative Advantages
• ANSI SQL 지원
– 학습비용 최소화 및 기존 시스템의 전환 용이
– 비표준 SQL의 경우, Oracle과 PostgreSQL을 참고
• 클러스터 확장성
– 수천대 노드까지 확장 가능함
– 상용 클러스터에서 500대까지 확장
• 고성능 분산 처리 엔진
– 스캔속도: 물리적 디스크당 100MB/sec (SATA 기준)
– 인덱스 및 파티션 구성이 없을 경우, 10 노드는 100초당 1TB 처리 가능
– 파티션 구성 시, 10노드는 5초 이내에 1TB 처리 가능
23. 23
3.4 Nested 및 JSON 포맷 지원
JSON 원본 파일을 HDFS나 S3에 저장한 후, Tajo에서 external table 로 테이블을 생성
해서, SELECT 질의를 실행할 수 있습니다. 즉 원본 파일을 가공할 필요없이 다이렉트로
SQL 처리가 가능합니다.
입력 데이터
테이블 정의
SQL 문
24. 24
3.5 AWS 지원
- EMR 및 S3 에 대한 최적화
- 프러덕션 검증을 통한 다수의 S3 버그 Fix
- EMR bootstrap 지원
- EMR 퀵 가이드
http://www.gruter.com/blog/setting-up-a-tajo-cluster-on-amazon-emr/
-EMR bootstrap
https://github.com/awslabs/emr-bootstrap-actions/tree/master/taj
25. 25
3.6 Pluggable Storage Layer
Hadoop, S3 등 다양한 저장소의 데이터를 직접 처리할 수 있습니다.
이기종 저장소의 데이터간에 조인 처리가 가능합니다.
TajoMaster
HDFS HBase
AWS
S3
Local
Storage
OpenStack
Swift
TajoWorker TajoWorker TajoWorker TajoWorker TajoWorker
Pluggable Storage Layer
26. 26
3.7 내고장성(Fault Tolerance) 및 클러스터 자원 활용 최적화
메모리와 디스크를 효과적으로 활용하여, 질의를 빠르고 안정적으로
처리합니다.
1. EC2 인스턴스: c3.4xlarge (vCPU: 16, 메모리: 30GiB, SSD스토리지: 160GB x 2)
2. Tajo 구성: 0.9.1-SNAPSHOT 버전, 1 master, 16 worker
3. 데이터셋: TPC-H 1TB
AWS 벤치마크 결과
0
2000
4000
6000
8000
10000
12000
14000
Q1 Q2 Q3 Q4 Q5 Q6 Q7 Q8 Q9 Q10 Q11 Q12 Q13 Q14 Q15 Q16 Q17 Q18 Q19 Q20 Q21 Q22
sec.
hive
presto
spark
tajo
Tajo는 Hive 대비 평균4배, Presto 대비 평균1.5배 빠름.
Spark의 경우, 메모리 제약으로 테스트 진행 불가.
27. 27
3.8 선형적 성능 확장성
인스턴스를 추가할 수록 선형적인 성능 확장이 가능합니다.
1. EC2 인스턴스: c3.4xlarge (vCPU: 16, 메모리: 30GiB, SSD스토리지: 160GB x 2)
2. Tajo 구성: 0.9.1-SNAPSHOT 버전
3. 데이터셋: TPC-H 1TB
AWS 벤치마크 결과
0
1000
2000
3000
4000
5000
6000
Q1 Q2 Q3 Q4 Q5 Q6 Q7 Q8 Q9 Q10 Q11 Q12 Q13 Q14 Q15 Q16 Q17 Q18 Q19 Q20 Q21 Q22
sec.
16 workers
8 workers
4 workers
4 -> 8대로 증가시 1.6배 이상 성능 향상
4 -> 16대로 증가시 2.4배 이상 성능 향상
실제 프러덕션 환경에서 500대 규모까지 확장 경험
30. 30
4.2 Needs
- 사용자 정보와 사용자 이벤트 정보를 동적으로 Join 처리합니다.
- 빅데이터 경험 없이도 손쉽게 분석할 수 있어야 합니다.
31. 31
Amazon EC2 Cloud
Tajo Cluster
TajoWorker
TajoMaster
4.3 Workloads
분석 배치를 실행할 때만 EC2 spot 인스턴스 10개를 실행해서 corhot 분석을 수행합니다
TajoWorker
TajoWorker
TajoWorker
S3
Source Data Tajo Tables
RDS
MySQL
1. 배치 실행
2. 로그 파일 기반
external 테이블 생성
3. Cohort 분석 쿼리 수행
4. 쿼리 수행 결과 저장
5. 통계 데이터 로딩
32. 32
4.4 총 소요비용 (TCO)
• 작업 시간
– EC2 c3.2xlarge 인스턴스 10개로 수십GB 로그를 약 40초 동안 데이터
처리합니다.
• EC2 인스턴스
– 타입: c3.2xlarge
– 사양: CPU 8 core, 메모리 15GB, 디스크: SSD 80GB x 2
– 가격: 시간당 0.420 달러 (한화: 489.85원)
• 총 소요 비용
– 0.420 * 10 = 4.20 달러 (한화: 4898.5원)
34. 34
Welcome to Tajo
1. Homepage
http://tajo.apache.org/
2. 한국 타조 사용자 그룹
- 구글 그룹: https://groups.google.com/forum/#!forum/tajo-user-kr
- 페이수북: https://www.facebook.com/groups/tajokorea/
3. 타조 한글 문서화 프로젝트
- http://bit.ly/1Ir417T
4. 기타 참고 사이트
- http://www.gruter.com/blog/tag/apache-tajo/
- http://teamblog.gruter.com/tag/apache-tajo/
- http://blrunner.com/category/Development/Tajo
35. 35
참고 자료
- NDC 2015 Cookie Run Log System
https://speakerdeck.com/junggun_lim/ndc-2015-cookie-run-log-system
- Redis, MongoDB 그리고 MySQL 과 함께하는 모바일 애플리케이션 서비스에서의 로그
수집과 분석
http://www.slideshare.net/lqez/redis-mongodb-mysql
36. GRUTER: YOUR PARTNER
IN THE BIG DATA REVOLUTION
Phone +82-2-508-5911
Fax +82-2-508-5912
E-mail contact@gruter.com
Web www.gruter.com