AWS Summit Seoul 2015 - AWS를 활용하여 Daily Report 만들기 (데브시스터즈 고객...

Post on 16-Jul-2015

736 views 7 download

Transcript of AWS Summit Seoul 2015 - AWS를 활용하여 Daily Report 만들기 (데브시스터즈 고객...

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

1

정창제 changje@devsisters.com

AWS를 활용하여 Daily Report 만들기

쿠키런 소개

• 5,500만 누적 다운로드

•최대 1,000만 DAU

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

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

업데이트필요

AWS를 활용하여 Daily Report 만들기

1. 로그 분석하기 - BREADCRUMB

3

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

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

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

AWS를 활용하여 Daily Report 만들기

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

7

AWS를 활용하여 Daily Report 만들기

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

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

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

8

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

AWS를 활용하여 Daily Report 만들기

BREADCRUMB

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

9

Amazon S3

EMR

Powered by

LogsOutput

AWS를 활용하여 Daily Report 만들기

BREADCRUMB

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

10

Amazon S3

EMR

SES

botoPowered by

LogsOutputResult

cron

Send via E-Mail

Docker

AWS를 활용하여 Daily Report 만들기

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

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

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

11

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

AWS를 활용하여 Daily Report 만들기

BREADCRUMB

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

12

Amazon S3

EMR

SES

botoPowered by

LogsOutputResult

cron

Send via E-Mail

Docker

AWS를 활용하여 Daily Report 만들기

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

13

Amazon S3

EMR

SES

botoPowered by

LogsOutputResult

RDS

BREADCRUMB

SEScron

Send via E-Mail

INSERT / SELECT

Docker

AWS를 활용하여 Daily Report 만들기

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

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

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

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

14

AWS를 활용하여 Daily Report 만들기

Docker

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

15

Amazon S3

EMR

SES

botoPowered by

LogsOutputResult

RDS

BREADCRUMB

SEScron

Send via E-Mail

INSERT / SELECT

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

AWS를 활용하여 Daily Report 만들기

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

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

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

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

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

17

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

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

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

AWS를 활용하여 Daily Report 만들기

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

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

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

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

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

21

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

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

정창제 changje@devsisters.com