SlideShare una empresa de Scribd logo
1 de 36
스타트업 사례로 본 로그 데이터 붂석
: Tajo on AWS
정재화 수석 연구원
(주) 그루터
About me
• Gruter / BigData Engineer
• Apache Tajo Committer
• jhjung@gruter.com
• http://blrunner.com
• The author of Hadoop book
목차
1. 로그 데이터의 중요성
2. 로그 시스템 구축 방법
3. Tajo
4. Locket 활용 사례
1. 로그 데이터의 중요성
5
다양한 통계 지표 생성
1. 로그 데이터의 중요성
6
1. 로그 데이터의 중요성
- PV / UV
- DAU / MAU
- PU / ARPU
- NRU / PR
- etc…
7
1. 로그 데이터의 중요성
스타트업은 데이터를 어떻게 바라봐야 할까?
http://www.slideshare.net/yongho/ss-32267675
8
1. 로그 데이터의 중요성
통계 지표 외에도….
9
1. 로그 데이터의 중요성
- 고객 문의 대응
채팅창에서 쌍욕을 했어요! 제재해주세요!
제 업적이 사라졌어요! 복구해주세요!
- 데이터 기반 의사결정 및 서비스 개선
- 해킹 대응
- 법무 대응
서비스 장애에 대한 보상 근거
개읶 정보 보유 기갂은 무조건 1년
각종 수사 자료
2. 로그 시스템 구축 방법
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
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
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
14
좋은 게 참 많죠?
하지만…
15
16
읷단 쌓고 붂석은
나중에 생각할 수는없을까?
데이터가 많아져도
손쉽게 확장 가능할까?
17
원본 로그를 별도 가공없이
붂석할 수는 없을까?
새로운 프레임워크나 언어를
배우지 않고, 붂석할 수는 없을까?
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)
3. Tajo
20
3.1 Tajo overview
• 하둡 기반의 빅데이터 웨어하우스 시스템
• 2013년 아파치 읶큐베이션, 2014년 아파치 탑레벨 프로젝트
• ANSI SQL 지원
• 주요 특징
– 자체 고성능 분산 처리 엔진 (Not MapReduce)
– 다양한 질의 최적화 기법 및 알고리즘 적용
– 수시간 이상 실행되는 ETL 질의 지원
– 수백 밀리세컨드 이내 실행되는 인터랙티브 질의 지원
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
3.3 Tajo Comparative Advantages
• ANSI SQL 지원
– 학습비용 최소화 및 기존 시스템의 젂홖 용이
– 비표준 SQL의 경우, Oracle과 PostgreSQL을 참고
• 클러스터 확장성
– 수천대 노드까지 확장 가능함
– 상용 클러스터에서 500대까지 확장
• 고성능 붂산 처리 엔짂
– 스캔속도: 물리적 디스크당 100MB/sec (SATA 기준)
– 인덱스 및 파티션 구성이 없을 경우, 10 노드는 100초당 1TB 처리 가능
– 파티션 구성 시, 10노드는 5초 이내에 1TB 처리 가능
23
3.4 Nested 및 JSON 포맷 지원
JSON 원본 파읷을 HDFS나 S3에 저장한 후, Tajo에서 external table 로 테이블을 생성해
서, SELECT 질의를 실행할 수 있습니다. 즉 원본 파읷을 가공할 필요없이 다이렉트로 SQL
처리가 가능합니다.
입력 데이터
테이블 정의
SQL 문
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
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
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
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대 규모까지 확장 경험
4. Locket 활용 사례
29
4.1 About Locket
Locket은 구글플레이 Best Apps of 2014에 선정된 동명의
lock screen App을 서비스하는 회사입니다.
30
4.2 Needs
- 사용자 정보와 사용자 이벤트 정보를 동적으로 Join 처리합니다.
- 빅데이터 경험 없이도 손쉽게 붂석할 수 있어야 합니다.
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
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원)
Q & A
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
참고 자료
- 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
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

Más contenido relacionado

La actualidad más candente

Data Engineering 101
Data Engineering 101Data Engineering 101
Data Engineering 101DaeMyung Kang
 
[NDC18] 야생의 땅 듀랑고의 데이터 엔지니어링 이야기: 로그 시스템 구축 경험 공유 (2부)
[NDC18] 야생의 땅 듀랑고의 데이터 엔지니어링 이야기: 로그 시스템 구축 경험 공유 (2부)[NDC18] 야생의 땅 듀랑고의 데이터 엔지니어링 이야기: 로그 시스템 구축 경험 공유 (2부)
[NDC18] 야생의 땅 듀랑고의 데이터 엔지니어링 이야기: 로그 시스템 구축 경험 공유 (2부)Hyojun Jeon
 
대용량 분산 아키텍쳐 설계 #3 대용량 분산 시스템 아키텍쳐
대용량 분산 아키텍쳐 설계 #3 대용량 분산 시스템 아키텍쳐대용량 분산 아키텍쳐 설계 #3 대용량 분산 시스템 아키텍쳐
대용량 분산 아키텍쳐 설계 #3 대용량 분산 시스템 아키텍쳐Terry Cho
 
로그 기깔나게 잘 디자인하는 법
로그 기깔나게 잘 디자인하는 법로그 기깔나게 잘 디자인하는 법
로그 기깔나게 잘 디자인하는 법Jeongsang Baek
 
Bigquery와 airflow를 이용한 데이터 분석 시스템 구축 v1 나무기술(주) 최유석 20170912
Bigquery와 airflow를 이용한 데이터 분석 시스템 구축 v1  나무기술(주) 최유석 20170912Bigquery와 airflow를 이용한 데이터 분석 시스템 구축 v1  나무기술(주) 최유석 20170912
Bigquery와 airflow를 이용한 데이터 분석 시스템 구축 v1 나무기술(주) 최유석 20170912Yooseok Choi
 
FIFA 온라인 3의 MongoDB 사용기
FIFA 온라인 3의 MongoDB 사용기FIFA 온라인 3의 MongoDB 사용기
FIFA 온라인 3의 MongoDB 사용기Jongwon Kim
 
대용량 로그분석 Bigquery로 간단히 사용하기 (20170215 T아카데미)
대용량 로그분석 Bigquery로 간단히 사용하기 (20170215 T아카데미)대용량 로그분석 Bigquery로 간단히 사용하기 (20170215 T아카데미)
대용량 로그분석 Bigquery로 간단히 사용하기 (20170215 T아카데미)Jaikwang Lee
 
Spark + S3 + R3를 이용한 데이터 분석 시스템 만들기
Spark + S3 + R3를 이용한 데이터 분석 시스템 만들기Spark + S3 + R3를 이용한 데이터 분석 시스템 만들기
Spark + S3 + R3를 이용한 데이터 분석 시스템 만들기AWSKRUG - AWS한국사용자모임
 
[KAIST 채용설명회] 데이터 엔지니어는 무슨 일을 하나요?
[KAIST 채용설명회] 데이터 엔지니어는 무슨 일을 하나요?[KAIST 채용설명회] 데이터 엔지니어는 무슨 일을 하나요?
[KAIST 채용설명회] 데이터 엔지니어는 무슨 일을 하나요?Juhong Park
 
Airflow를 이용한 데이터 Workflow 관리
Airflow를 이용한  데이터 Workflow 관리Airflow를 이용한  데이터 Workflow 관리
Airflow를 이용한 데이터 Workflow 관리YoungHeon (Roy) Kim
 
Massive service basic
Massive service basicMassive service basic
Massive service basicDaeMyung Kang
 
NDC12_Lockless게임서버설계와구현
NDC12_Lockless게임서버설계와구현NDC12_Lockless게임서버설계와구현
NDC12_Lockless게임서버설계와구현noerror
 
TiDBのトランザクション
TiDBのトランザクションTiDBのトランザクション
TiDBのトランザクションAkio Mitobe
 
Spark 의 핵심은 무엇인가? RDD! (RDD paper review)
Spark 의 핵심은 무엇인가? RDD! (RDD paper review)Spark 의 핵심은 무엇인가? RDD! (RDD paper review)
Spark 의 핵심은 무엇인가? RDD! (RDD paper review)Yongho Ha
 
BigQuery의 모든 것(기획자, 마케터, 신입 데이터 분석가를 위한) 입문편
BigQuery의 모든 것(기획자, 마케터, 신입 데이터 분석가를 위한) 입문편BigQuery의 모든 것(기획자, 마케터, 신입 데이터 분석가를 위한) 입문편
BigQuery의 모든 것(기획자, 마케터, 신입 데이터 분석가를 위한) 입문편Seongyun Byeon
 
Little Big Data #1. 바닥부터 시작하는 데이터 인프라
Little Big Data #1. 바닥부터 시작하는 데이터 인프라Little Big Data #1. 바닥부터 시작하는 데이터 인프라
Little Big Data #1. 바닥부터 시작하는 데이터 인프라Seongyun Byeon
 
서버학개론(백엔드 서버 개발자를 위한)
서버학개론(백엔드 서버 개발자를 위한)서버학개론(백엔드 서버 개발자를 위한)
서버학개론(백엔드 서버 개발자를 위한)수보 김
 
Presto As A Service - Treasure DataでのPresto運用事例
Presto As A Service - Treasure DataでのPresto運用事例Presto As A Service - Treasure DataでのPresto運用事例
Presto As A Service - Treasure DataでのPresto運用事例Taro L. Saito
 
Python 게임서버 안녕하십니까 : RPC framework 편
Python 게임서버 안녕하십니까 : RPC framework 편Python 게임서버 안녕하십니까 : RPC framework 편
Python 게임서버 안녕하십니까 : RPC framework 편준철 박
 
[DEVIEW 2021] 1000만 글로벌 유저를 지탱하는 기술과 사람들
[DEVIEW 2021] 1000만 글로벌 유저를 지탱하는 기술과 사람들[DEVIEW 2021] 1000만 글로벌 유저를 지탱하는 기술과 사람들
[DEVIEW 2021] 1000만 글로벌 유저를 지탱하는 기술과 사람들Brian Hong
 

La actualidad más candente (20)

Data Engineering 101
Data Engineering 101Data Engineering 101
Data Engineering 101
 
[NDC18] 야생의 땅 듀랑고의 데이터 엔지니어링 이야기: 로그 시스템 구축 경험 공유 (2부)
[NDC18] 야생의 땅 듀랑고의 데이터 엔지니어링 이야기: 로그 시스템 구축 경험 공유 (2부)[NDC18] 야생의 땅 듀랑고의 데이터 엔지니어링 이야기: 로그 시스템 구축 경험 공유 (2부)
[NDC18] 야생의 땅 듀랑고의 데이터 엔지니어링 이야기: 로그 시스템 구축 경험 공유 (2부)
 
대용량 분산 아키텍쳐 설계 #3 대용량 분산 시스템 아키텍쳐
대용량 분산 아키텍쳐 설계 #3 대용량 분산 시스템 아키텍쳐대용량 분산 아키텍쳐 설계 #3 대용량 분산 시스템 아키텍쳐
대용량 분산 아키텍쳐 설계 #3 대용량 분산 시스템 아키텍쳐
 
로그 기깔나게 잘 디자인하는 법
로그 기깔나게 잘 디자인하는 법로그 기깔나게 잘 디자인하는 법
로그 기깔나게 잘 디자인하는 법
 
Bigquery와 airflow를 이용한 데이터 분석 시스템 구축 v1 나무기술(주) 최유석 20170912
Bigquery와 airflow를 이용한 데이터 분석 시스템 구축 v1  나무기술(주) 최유석 20170912Bigquery와 airflow를 이용한 데이터 분석 시스템 구축 v1  나무기술(주) 최유석 20170912
Bigquery와 airflow를 이용한 데이터 분석 시스템 구축 v1 나무기술(주) 최유석 20170912
 
FIFA 온라인 3의 MongoDB 사용기
FIFA 온라인 3의 MongoDB 사용기FIFA 온라인 3의 MongoDB 사용기
FIFA 온라인 3의 MongoDB 사용기
 
대용량 로그분석 Bigquery로 간단히 사용하기 (20170215 T아카데미)
대용량 로그분석 Bigquery로 간단히 사용하기 (20170215 T아카데미)대용량 로그분석 Bigquery로 간단히 사용하기 (20170215 T아카데미)
대용량 로그분석 Bigquery로 간단히 사용하기 (20170215 T아카데미)
 
Spark + S3 + R3를 이용한 데이터 분석 시스템 만들기
Spark + S3 + R3를 이용한 데이터 분석 시스템 만들기Spark + S3 + R3를 이용한 데이터 분석 시스템 만들기
Spark + S3 + R3를 이용한 데이터 분석 시스템 만들기
 
[KAIST 채용설명회] 데이터 엔지니어는 무슨 일을 하나요?
[KAIST 채용설명회] 데이터 엔지니어는 무슨 일을 하나요?[KAIST 채용설명회] 데이터 엔지니어는 무슨 일을 하나요?
[KAIST 채용설명회] 데이터 엔지니어는 무슨 일을 하나요?
 
Airflow를 이용한 데이터 Workflow 관리
Airflow를 이용한  데이터 Workflow 관리Airflow를 이용한  데이터 Workflow 관리
Airflow를 이용한 데이터 Workflow 관리
 
Massive service basic
Massive service basicMassive service basic
Massive service basic
 
NDC12_Lockless게임서버설계와구현
NDC12_Lockless게임서버설계와구현NDC12_Lockless게임서버설계와구현
NDC12_Lockless게임서버설계와구현
 
TiDBのトランザクション
TiDBのトランザクションTiDBのトランザクション
TiDBのトランザクション
 
Spark 의 핵심은 무엇인가? RDD! (RDD paper review)
Spark 의 핵심은 무엇인가? RDD! (RDD paper review)Spark 의 핵심은 무엇인가? RDD! (RDD paper review)
Spark 의 핵심은 무엇인가? RDD! (RDD paper review)
 
BigQuery의 모든 것(기획자, 마케터, 신입 데이터 분석가를 위한) 입문편
BigQuery의 모든 것(기획자, 마케터, 신입 데이터 분석가를 위한) 입문편BigQuery의 모든 것(기획자, 마케터, 신입 데이터 분석가를 위한) 입문편
BigQuery의 모든 것(기획자, 마케터, 신입 데이터 분석가를 위한) 입문편
 
Little Big Data #1. 바닥부터 시작하는 데이터 인프라
Little Big Data #1. 바닥부터 시작하는 데이터 인프라Little Big Data #1. 바닥부터 시작하는 데이터 인프라
Little Big Data #1. 바닥부터 시작하는 데이터 인프라
 
서버학개론(백엔드 서버 개발자를 위한)
서버학개론(백엔드 서버 개발자를 위한)서버학개론(백엔드 서버 개발자를 위한)
서버학개론(백엔드 서버 개발자를 위한)
 
Presto As A Service - Treasure DataでのPresto運用事例
Presto As A Service - Treasure DataでのPresto運用事例Presto As A Service - Treasure DataでのPresto運用事例
Presto As A Service - Treasure DataでのPresto運用事例
 
Python 게임서버 안녕하십니까 : RPC framework 편
Python 게임서버 안녕하십니까 : RPC framework 편Python 게임서버 안녕하십니까 : RPC framework 편
Python 게임서버 안녕하십니까 : RPC framework 편
 
[DEVIEW 2021] 1000만 글로벌 유저를 지탱하는 기술과 사람들
[DEVIEW 2021] 1000만 글로벌 유저를 지탱하는 기술과 사람들[DEVIEW 2021] 1000만 글로벌 유저를 지탱하는 기술과 사람들
[DEVIEW 2021] 1000만 글로벌 유저를 지탱하는 기술과 사람들
 

Similar a 스타트업 사례로 본 로그 데이터 분석 : Tajo on AWS

스타트업사례로 본 로그 데이터분석 : Tajo on AWS
스타트업사례로 본 로그 데이터분석 : Tajo on AWS스타트업사례로 본 로그 데이터분석 : Tajo on AWS
스타트업사례로 본 로그 데이터분석 : Tajo on AWSGruter
 
Introduction to Apache Tajo
Introduction to Apache TajoIntroduction to Apache Tajo
Introduction to Apache TajoGruter
 
Big data analysis with R and Apache Tajo (in Korean)
Big data analysis with R and Apache Tajo (in Korean)Big data analysis with R and Apache Tajo (in Korean)
Big data analysis with R and Apache Tajo (in Korean)Gruter
 
AWS 활용한 Data Lake 구성하기
AWS 활용한 Data Lake 구성하기AWS 활용한 Data Lake 구성하기
AWS 활용한 Data Lake 구성하기Nak Joo Kwon
 
주니어 개발자의 서버 로그 관리 개선기
주니어 개발자의 서버 로그 관리 개선기주니어 개발자의 서버 로그 관리 개선기
주니어 개발자의 서버 로그 관리 개선기Yeonhee Kim
 
AWS의 하둡 관련 서비스 - EMR/S3
AWS의 하둡 관련 서비스 - EMR/S3AWS의 하둡 관련 서비스 - EMR/S3
AWS의 하둡 관련 서비스 - EMR/S3Keeyong Han
 
AWS기반 서버리스 데이터레이크 구축하기 - 김진웅 (SK C&C) :: AWS Community Day 2020
AWS기반 서버리스 데이터레이크 구축하기 - 김진웅 (SK C&C) :: AWS Community Day 2020AWS기반 서버리스 데이터레이크 구축하기 - 김진웅 (SK C&C) :: AWS Community Day 2020
AWS기반 서버리스 데이터레이크 구축하기 - 김진웅 (SK C&C) :: AWS Community Day 2020Jinwoong Kim
 
AWS기반 서버리스 데이터레이크 구축하기 - 김진웅 (SK C&C) :: AWS Community Day 2020
AWS기반 서버리스 데이터레이크 구축하기 - 김진웅 (SK C&C) :: AWS Community Day 2020 AWS기반 서버리스 데이터레이크 구축하기 - 김진웅 (SK C&C) :: AWS Community Day 2020
AWS기반 서버리스 데이터레이크 구축하기 - 김진웅 (SK C&C) :: AWS Community Day 2020 AWSKRUG - AWS한국사용자모임
 
AWS를 통한 빅데이터 기반 비지니스 인텔리전스 구축- AWS Summit Seoul 2017
AWS를 통한 빅데이터 기반 비지니스 인텔리전스 구축- AWS Summit Seoul 2017AWS를 통한 빅데이터 기반 비지니스 인텔리전스 구축- AWS Summit Seoul 2017
AWS를 통한 빅데이터 기반 비지니스 인텔리전스 구축- AWS Summit Seoul 2017Amazon Web Services Korea
 
Spark streaming tutorial
Spark streaming tutorialSpark streaming tutorial
Spark streaming tutorialMinho Kim
 
Amazon Redshift로 데이터웨어하우스(DW) 구축하기
Amazon Redshift로 데이터웨어하우스(DW) 구축하기Amazon Redshift로 데이터웨어하우스(DW) 구축하기
Amazon Redshift로 데이터웨어하우스(DW) 구축하기Amazon Web Services Korea
 
빅데이터 기술 현황과 시장 전망(2014)
빅데이터 기술 현황과 시장 전망(2014)빅데이터 기술 현황과 시장 전망(2014)
빅데이터 기술 현황과 시장 전망(2014)Channy Yun
 
클라우드 환경에서 알아야할 성능 이야기
클라우드 환경에서 알아야할 성능 이야기클라우드 환경에서 알아야할 성능 이야기
클라우드 환경에서 알아야할 성능 이야기YoungSu Son
 
data platform on kubernetes
data platform on kubernetesdata platform on kubernetes
data platform on kubernetes창언 정
 
Tajo korea meetup oct 2015-spatial tajo
Tajo korea meetup oct 2015-spatial tajoTajo korea meetup oct 2015-spatial tajo
Tajo korea meetup oct 2015-spatial tajoBD
 
포털 검색어 순위 수집 및 분석 후기
포털 검색어 순위 수집 및 분석 후기포털 검색어 순위 수집 및 분석 후기
포털 검색어 순위 수집 및 분석 후기Kyuhyun Byun
 
Accelerate spring boot application with apache ignite
Accelerate spring boot application with apache igniteAccelerate spring boot application with apache ignite
Accelerate spring boot application with apache igniteYEON BOK LEE
 
100% Serverless big data scale production Deep Learning System
100% Serverless big data scale production Deep Learning System100% Serverless big data scale production Deep Learning System
100% Serverless big data scale production Deep Learning Systemhoondong kim
 
백억개의 로그를 모아 검색하고 분석하고 학습도 시켜보자 : 로기스
백억개의 로그를 모아 검색하고 분석하고 학습도 시켜보자 : 로기스백억개의 로그를 모아 검색하고 분석하고 학습도 시켜보자 : 로기스
백억개의 로그를 모아 검색하고 분석하고 학습도 시켜보자 : 로기스NAVER D2
 
데브시스터즈 데이터 레이크 구축 이야기 : Data Lake architecture case study (박주홍 데이터 분석 및 인프라 팀...
데브시스터즈 데이터 레이크 구축 이야기 : Data Lake architecture case study (박주홍 데이터 분석 및 인프라 팀...데브시스터즈 데이터 레이크 구축 이야기 : Data Lake architecture case study (박주홍 데이터 분석 및 인프라 팀...
데브시스터즈 데이터 레이크 구축 이야기 : Data Lake architecture case study (박주홍 데이터 분석 및 인프라 팀...Amazon Web Services Korea
 

Similar a 스타트업 사례로 본 로그 데이터 분석 : Tajo on AWS (20)

스타트업사례로 본 로그 데이터분석 : Tajo on AWS
스타트업사례로 본 로그 데이터분석 : Tajo on AWS스타트업사례로 본 로그 데이터분석 : Tajo on AWS
스타트업사례로 본 로그 데이터분석 : Tajo on AWS
 
Introduction to Apache Tajo
Introduction to Apache TajoIntroduction to Apache Tajo
Introduction to Apache Tajo
 
Big data analysis with R and Apache Tajo (in Korean)
Big data analysis with R and Apache Tajo (in Korean)Big data analysis with R and Apache Tajo (in Korean)
Big data analysis with R and Apache Tajo (in Korean)
 
AWS 활용한 Data Lake 구성하기
AWS 활용한 Data Lake 구성하기AWS 활용한 Data Lake 구성하기
AWS 활용한 Data Lake 구성하기
 
주니어 개발자의 서버 로그 관리 개선기
주니어 개발자의 서버 로그 관리 개선기주니어 개발자의 서버 로그 관리 개선기
주니어 개발자의 서버 로그 관리 개선기
 
AWS의 하둡 관련 서비스 - EMR/S3
AWS의 하둡 관련 서비스 - EMR/S3AWS의 하둡 관련 서비스 - EMR/S3
AWS의 하둡 관련 서비스 - EMR/S3
 
AWS기반 서버리스 데이터레이크 구축하기 - 김진웅 (SK C&C) :: AWS Community Day 2020
AWS기반 서버리스 데이터레이크 구축하기 - 김진웅 (SK C&C) :: AWS Community Day 2020AWS기반 서버리스 데이터레이크 구축하기 - 김진웅 (SK C&C) :: AWS Community Day 2020
AWS기반 서버리스 데이터레이크 구축하기 - 김진웅 (SK C&C) :: AWS Community Day 2020
 
AWS기반 서버리스 데이터레이크 구축하기 - 김진웅 (SK C&C) :: AWS Community Day 2020
AWS기반 서버리스 데이터레이크 구축하기 - 김진웅 (SK C&C) :: AWS Community Day 2020 AWS기반 서버리스 데이터레이크 구축하기 - 김진웅 (SK C&C) :: AWS Community Day 2020
AWS기반 서버리스 데이터레이크 구축하기 - 김진웅 (SK C&C) :: AWS Community Day 2020
 
AWS를 통한 빅데이터 기반 비지니스 인텔리전스 구축- AWS Summit Seoul 2017
AWS를 통한 빅데이터 기반 비지니스 인텔리전스 구축- AWS Summit Seoul 2017AWS를 통한 빅데이터 기반 비지니스 인텔리전스 구축- AWS Summit Seoul 2017
AWS를 통한 빅데이터 기반 비지니스 인텔리전스 구축- AWS Summit Seoul 2017
 
Spark streaming tutorial
Spark streaming tutorialSpark streaming tutorial
Spark streaming tutorial
 
Amazon Redshift로 데이터웨어하우스(DW) 구축하기
Amazon Redshift로 데이터웨어하우스(DW) 구축하기Amazon Redshift로 데이터웨어하우스(DW) 구축하기
Amazon Redshift로 데이터웨어하우스(DW) 구축하기
 
빅데이터 기술 현황과 시장 전망(2014)
빅데이터 기술 현황과 시장 전망(2014)빅데이터 기술 현황과 시장 전망(2014)
빅데이터 기술 현황과 시장 전망(2014)
 
클라우드 환경에서 알아야할 성능 이야기
클라우드 환경에서 알아야할 성능 이야기클라우드 환경에서 알아야할 성능 이야기
클라우드 환경에서 알아야할 성능 이야기
 
data platform on kubernetes
data platform on kubernetesdata platform on kubernetes
data platform on kubernetes
 
Tajo korea meetup oct 2015-spatial tajo
Tajo korea meetup oct 2015-spatial tajoTajo korea meetup oct 2015-spatial tajo
Tajo korea meetup oct 2015-spatial tajo
 
포털 검색어 순위 수집 및 분석 후기
포털 검색어 순위 수집 및 분석 후기포털 검색어 순위 수집 및 분석 후기
포털 검색어 순위 수집 및 분석 후기
 
Accelerate spring boot application with apache ignite
Accelerate spring boot application with apache igniteAccelerate spring boot application with apache ignite
Accelerate spring boot application with apache ignite
 
100% Serverless big data scale production Deep Learning System
100% Serverless big data scale production Deep Learning System100% Serverless big data scale production Deep Learning System
100% Serverless big data scale production Deep Learning System
 
백억개의 로그를 모아 검색하고 분석하고 학습도 시켜보자 : 로기스
백억개의 로그를 모아 검색하고 분석하고 학습도 시켜보자 : 로기스백억개의 로그를 모아 검색하고 분석하고 학습도 시켜보자 : 로기스
백억개의 로그를 모아 검색하고 분석하고 학습도 시켜보자 : 로기스
 
데브시스터즈 데이터 레이크 구축 이야기 : Data Lake architecture case study (박주홍 데이터 분석 및 인프라 팀...
데브시스터즈 데이터 레이크 구축 이야기 : Data Lake architecture case study (박주홍 데이터 분석 및 인프라 팀...데브시스터즈 데이터 레이크 구축 이야기 : Data Lake architecture case study (박주홍 데이터 분석 및 인프라 팀...
데브시스터즈 데이터 레이크 구축 이야기 : Data Lake architecture case study (박주홍 데이터 분석 및 인프라 팀...
 

스타트업 사례로 본 로그 데이터 분석 : Tajo on AWS

  • 1. 스타트업 사례로 본 로그 데이터 붂석 : Tajo on AWS 정재화 수석 연구원 (주) 그루터
  • 2. About me • Gruter / BigData Engineer • Apache Tajo Committer • jhjung@gruter.com • http://blrunner.com • The author of Hadoop book
  • 3. 목차 1. 로그 데이터의 중요성 2. 로그 시스템 구축 방법 3. Tajo 4. Locket 활용 사례
  • 5. 5 다양한 통계 지표 생성 1. 로그 데이터의 중요성
  • 6. 6 1. 로그 데이터의 중요성 - PV / UV - DAU / MAU - PU / ARPU - NRU / PR - etc…
  • 7. 7 1. 로그 데이터의 중요성 스타트업은 데이터를 어떻게 바라봐야 할까? http://www.slideshare.net/yongho/ss-32267675
  • 8. 8 1. 로그 데이터의 중요성 통계 지표 외에도….
  • 9. 9 1. 로그 데이터의 중요성 - 고객 문의 대응 채팅창에서 쌍욕을 했어요! 제재해주세요! 제 업적이 사라졌어요! 복구해주세요! - 데이터 기반 의사결정 및 서비스 개선 - 해킹 대응 - 법무 대응 서비스 장애에 대한 보상 근거 개읶 정보 보유 기갂은 무조건 1년 각종 수사 자료
  • 10. 2. 로그 시스템 구축 방법
  • 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
  • 14. 14 좋은 게 참 많죠? 하지만…
  • 15. 15
  • 16. 16 읷단 쌓고 붂석은 나중에 생각할 수는없을까? 데이터가 많아져도 손쉽게 확장 가능할까?
  • 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대 규모까지 확장 경험
  • 29. 29 4.1 About Locket Locket은 구글플레이 Best Apps of 2014에 선정된 동명의 lock screen App을 서비스하는 회사입니다.
  • 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원)
  • 33. Q & A
  • 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