aws summit seoul 2015 - aws를 활용하여 daily report 만들기 (데브시스터즈 고객...

23
AWS를 활용하여 Daily Report 만들기 Scalding, Python, AWS로 만드는 Daily Report 1 정창제 [email protected]

Upload: amazon-web-services-korea

Post on 16-Jul-2015

736 views

Category:

Technology


7 download

TRANSCRIPT

Page 1: AWS Summit Seoul 2015 - AWS를 활용하여 Daily Report 만들기 (데브시스터즈 고객 사례)

AWS를 활용하여 Daily Report 만들기Scalding, Python, AWS로 만드는 Daily Report

1

정창제 [email protected]

Page 2: AWS Summit Seoul 2015 - AWS를 활용하여 Daily Report 만들기 (데브시스터즈 고객 사례)

AWS를 활용하여 Daily Report 만들기

쿠키런 소개

• 5,500만 누적 다운로드

•최대 1,000만 DAU

•한국, 일본, 태국 등 10여개국 다운로드 1위

• Top10 다운로드 국가 수 38개국

업데이트필요

Page 3: AWS Summit Seoul 2015 - AWS를 활용하여 Daily Report 만들기 (데브시스터즈 고객 사례)

AWS를 활용하여 Daily Report 만들기

1. 로그 분석하기 - BREADCRUMB

3

Page 4: AWS Summit Seoul 2015 - AWS를 활용하여 Daily Report 만들기 (데브시스터즈 고객 사례)

AWS를 활용하여 Daily Report 만들기

1. 로그 전처리

4

Logstash

Amazon S3 Amazon S3 Amazon S3

Upload every

20 min.

Sort &

Compress

Daily Merge

2015-04-21T00.01.txt 2015-04-21T00.21.txt 2015-04-21T00.41.txt 2015-04-21T01.01.txt 2015-04-21T01.21.txt 2015-04-21T01.41.txt

… 2015-04-21T22.41.txt 2015-04-21T23.01.txt 2015-04-21T23.21.txt 2015-04-21T23.41.txt 2015-04-22T00.01.txt

index.json

gamelog.sz

00.01.json 00.01.txt.sz 00.21.json

00.21.txt.sz …

23.41.json 23.41.txt.sz 00.01.json

00.01.txt.sz

Page 5: AWS Summit Seoul 2015 - AWS를 활용하여 Daily Report 만들기 (데브시스터즈 고객 사례)

AWS를 활용하여 Daily Report 만들기

1. 로그 전처리

5

index.jsongamelog.sz

…}, { "key_first": “<PID> <Reversed Member Seq> <Time> <Hash>”, "key_last": “<PID> <Reversed Member Seq> <Time> <Hash>”, "offset": 0, "length": <Length> }, …

• 날짜로 분리 • Block 단위 Snappy 압축

• Splittable • Networt Latency ↓ • Snappy : CPU 사용량 ↓

• PID / MemberSeq 로 정렬 • 검색 우선순위에 따른 정렬

• gamelog를 조회하기 위한 Metadata

Page 6: AWS Summit Seoul 2015 - AWS를 활용하여 Daily Report 만들기 (데브시스터즈 고객 사례)

AWS를 활용하여 Daily Report 만들기

BREADCRUMB

1. 로그 전처리

6

Amazon S3

EMR

index.json gamelog.sz output

by

2015-04-21T00.01.txt

00.01.json 00.01.txt.sz

Page 7: AWS Summit Seoul 2015 - AWS를 활용하여 Daily Report 만들기 (데브시스터즈 고객 사례)

AWS를 활용하여 Daily Report 만들기

2. 매일매일 데이터 받아보기

7

Page 8: AWS Summit Seoul 2015 - AWS를 활용하여 Daily Report 만들기 (데브시스터즈 고객 사례)

AWS를 활용하여 Daily Report 만들기

☐ 매일 아침 전날의 게임 통계를 받아보고 싶어요! ☐ 전일 / 전주 대비 얼마나 변화했는지 알고 싶어요!

☐ 지표들의 변화 추이를 보고싶어요!

☐ 신규 유저들의 Retention을 알려주세요!

8

2. 매일매일 데이터 받아보기 - 목표

Page 9: AWS Summit Seoul 2015 - AWS를 활용하여 Daily Report 만들기 (데브시스터즈 고객 사례)

AWS를 활용하여 Daily Report 만들기

BREADCRUMB

2. 매일 아침 전날의 게임 통계를 받아보고 싶어요!

9

Amazon S3

EMR

Powered by

LogsOutput

Page 10: AWS Summit Seoul 2015 - AWS를 활용하여 Daily Report 만들기 (데브시스터즈 고객 사례)

AWS를 활용하여 Daily Report 만들기

BREADCRUMB

2. 매일 아침 전날의 게임 통계를 받아보고 싶어요!

10

Amazon S3

EMR

SES

botoPowered by

LogsOutputResult

cron

Send via E-Mail

Docker

Page 11: AWS Summit Seoul 2015 - AWS를 활용하여 Daily Report 만들기 (데브시스터즈 고객 사례)

AWS를 활용하여 Daily Report 만들기

✓ 매일 아침 전날의 게임 통계를 받아보고 싶어요!

☐전일 / 전주 대비 얼마나 변화했는지 알고 싶어요!☐ 지표들의 변화 추이를 보고싶어요!

☐ 신규 유저들의 Retention을 알려주세요!

11

2. 매일매일 데이터 받아보기 - 목표

Page 12: AWS Summit Seoul 2015 - AWS를 활용하여 Daily Report 만들기 (데브시스터즈 고객 사례)

AWS를 활용하여 Daily Report 만들기

BREADCRUMB

2. 전일/전주 대비 얼마나 변화했는지 알고 싶어요!

12

Amazon S3

EMR

SES

botoPowered by

LogsOutputResult

cron

Send via E-Mail

Docker

Page 13: AWS Summit Seoul 2015 - AWS를 활용하여 Daily Report 만들기 (데브시스터즈 고객 사례)

AWS를 활용하여 Daily Report 만들기

2. 전일/전주 대비 얼마나 변화했는지 알고 싶어요!

13

Amazon S3

EMR

SES

botoPowered by

LogsOutputResult

RDS

BREADCRUMB

SEScron

Send via E-Mail

INSERT / SELECT

Docker

Page 14: AWS Summit Seoul 2015 - AWS를 활용하여 Daily Report 만들기 (데브시스터즈 고객 사례)

AWS를 활용하여 Daily Report 만들기

2. 매일매일 데이터 받아보기 - 목표

✓ 매일 아침 전날의 게임 통계를 받아보고 싶어요!

✓ 전일 / 전주 대비 얼마나 변화했는지 알고 싶어요!

☐지표들의 변화 추이를 보고싶어요!☐ 신규 유저들의 Retention을 알려주세요!

14

Page 15: AWS Summit Seoul 2015 - AWS를 활용하여 Daily Report 만들기 (데브시스터즈 고객 사례)

AWS를 활용하여 Daily Report 만들기

Docker

2. 지표들의 변화 추이를 보고싶어요!

15

Amazon S3

EMR

SES

botoPowered by

LogsOutputResult

RDS

BREADCRUMB

SEScron

Send via E-Mail

INSERT / SELECT

Page 16: AWS Summit Seoul 2015 - AWS를 활용하여 Daily Report 만들기 (데브시스터즈 고객 사례)

AWS를 활용하여 Daily Report 만들기

2. 지표들의 변화 추이를 보고싶어요!

16

Amazon S3

EMR

SES

botoPowered by

LogsOutputResult

Send via E-Mail

RDS

INSERT / SELECT

HTTPS

Web

cron

Docker

SELECT

BREADCRUMB

Page 17: AWS Summit Seoul 2015 - AWS를 활용하여 Daily Report 만들기 (데브시스터즈 고객 사례)

AWS를 활용하여 Daily Report 만들기

2. 매일매일 데이터 받아보기 - 목표

✓ 매일 아침 전날의 게임 통계를 받아보고 싶어요!

✓ 전일 / 전주 대비 얼마나 변화했는지 알고 싶어요!

✓ 지표들의 변화 추이를 보고싶어요!

☐신규 유저들의 Retention을 알려주세요!

17

Page 18: AWS Summit Seoul 2015 - AWS를 활용하여 Daily Report 만들기 (데브시스터즈 고객 사례)

AWS를 활용하여 Daily Report 만들기

2. 신규 유저들의 Retention을 알려주세요!

18

Amazon S3

EMR

Output

BREADCRUMB

• MemberSeq • JoinDatetime

RDS

JoinDt

Logs Join Date Member 0 1 2 3 4 5

150417 123456 O O X X X O

150417 123457 O X X O O X

150418 234567 O O X X O O

150418 234568 O O X O X O

Member Join Date Login Dates123456 150417 150417

150418150422

Join Date New User 1 2 3 4 5150416 5 3 2 3 1 0150417 4 4 2 2 1150418 5 3 3 3150419 6 5 4150420 4 4

Convert to SQL

Page 19: AWS Summit Seoul 2015 - AWS를 활용하여 Daily Report 만들기 (데브시스터즈 고객 사례)

AWS를 활용하여 Daily Report 만들기

2. 신규 유저들의 Retention을 알려주세요!

19

Amazon S3

EMR

SES

botoPowered by

LogsOutputResult

Send via E-Mail

RDS

INSERT / SELECT

HTTPS

Web

cron

Docker

SELECT

BREADCRUMB

Page 20: AWS Summit Seoul 2015 - AWS를 활용하여 Daily Report 만들기 (데브시스터즈 고객 사례)

AWS를 활용하여 Daily Report 만들기

2. 신규 유저들의 Retention을 알려주세요!

20

Amazon S3

EMR

SES

botoPowered by

LogsOutputResult

View Query

Send via E-Mail

View

RDS

INSERT / SELECT

HTTPS

Web

cron

Docker

BREADCRUMB

SELECT

Page 21: AWS Summit Seoul 2015 - AWS를 활용하여 Daily Report 만들기 (데브시스터즈 고객 사례)

AWS를 활용하여 Daily Report 만들기

2. 매일매일 데이터 받아보기 - 완성!

✓매일 아침 전날의 게임 통계를 받아보고 싶어요!

✓전일 / 전주 대비 얼마나 변화했는지 알고 싶어요!

✓지표들의 변화 추이를 보고싶어요!

✓신규 유저들의 Retention을 알려주세요!

21

Page 22: AWS Summit Seoul 2015 - AWS를 활용하여 Daily Report 만들기 (데브시스터즈 고객 사례)

AWS를 활용하여 Daily Report 만들기

2. 매일매일 데이터 받아보기 - 완성

22

Amazon S3

EMR

SES

botoPowered by

LogsOutputResult

View Query

Send via E-Mail

View

RDS

INSERT / SELECT

HTTPS

Web

cron

Docker

BREADCRUMB

SELECT

Page 23: AWS Summit Seoul 2015 - AWS를 활용하여 Daily Report 만들기 (데브시스터즈 고객 사례)

AWS를 활용하여 Daily Report 만들기 2323

정창제 [email protected]