빅데이터를 위한 aws 모범사례와 아키텍처 구축 패턴 :: 양승도 :: aws summit...

69
© 2016, Amazon Web Services, Inc. or its Affiliates. All rights reserved. 양승도 | 솔루션즈 아키텍트 2016년 5월 17일 빅데이터를 위한 AWS 모범사례와 아키텍처 구축 패턴

Upload: amazon-web-services-korea

Post on 14-Apr-2017

1.888 views

Category:

Technology


3 download

TRANSCRIPT

Page 1: 빅데이터를 위한 AWS 모범사례와 아키텍처 구축 패턴 :: 양승도 :: AWS Summit Seoul 2016

© 2016, Amazon Web Services, Inc. or its Affiliates. All rights reserved.

양승도 | 솔루션즈 아키텍트

2016년 5월 17일

빅데이터를 위한AWS 모범사례와 아키텍처 구축 패턴

Page 2: 빅데이터를 위한 AWS 모범사례와 아키텍처 구축 패턴 :: 양승도 :: AWS Summit Seoul 2016

목차

§ 데이터의 증가 & 분석의 진화

§ 참조 아키텍처

§ 어떤 기술을 사용해야 할까?

§ 왜?

§ 어떻게?

§ 고객 사례(MangoPlate)

§ 디자인 패턴

Page 3: 빅데이터를 위한 AWS 모범사례와 아키텍처 구축 패턴 :: 양승도 :: AWS Summit Seoul 2016

데이터의 폭발적 증가

Volume

Velocity

Variety

Page 4: 빅데이터를 위한 AWS 모범사례와 아키텍처 구축 패턴 :: 양승도 :: AWS Summit Seoul 2016

빅데이터 진화

배치

보고서

실시간

경보

예측

예보

Page 5: 빅데이터를 위한 AWS 모범사례와 아키텍처 구축 패턴 :: 양승도 :: AWS Summit Seoul 2016

Amazon Glacier

S3 DynamoDB

RDS

EMR

Amazon Redshift

Data PipelineAmazon Kinesis CloudSearch

Kinesis-enabled app

Lambda ML

SQS

ElastiCache

DynamoDBStreams

넘쳐나는 도구들

Page 6: 빅데이터를 위한 AWS 모범사례와 아키텍처 구축 패턴 :: 양승도 :: AWS Summit Seoul 2016

쿨~한 참조 아키텍처가 있는지?어떤 도구를 사용해야 하는지?

왜? 어떻게?

Page 7: 빅데이터를 위한 AWS 모범사례와 아키텍처 구축 패턴 :: 양승도 :: AWS Summit Seoul 2016

아키텍처 원칙

“데이터 버스”를 분리• Data → Store → Process → Answers

작업에 적합한 도구를 사용• Data structure, latency, throughput, access patterns

람다 아키텍처 아이디어 사용• Immutable (append-only) log, batch/speed/serving layer

AWS 관리형 서비스 활용• No/low admin

비용에 대한 고려• Big data ≠ Big cost

Page 8: 빅데이터를 위한 AWS 모범사례와 아키텍처 구축 패턴 :: 양승도 :: AWS Summit Seoul 2016

빅데이터 처리를 단순하게…

수집 저장 분석소비 /

시각화

답변 시간(지연)

처리량

비용

Page 9: 빅데이터를 위한 AWS 모범사례와 아키텍처 구축 패턴 :: 양승도 :: AWS Summit Seoul 2016

수집

Page 10: 빅데이터를 위한 AWS 모범사례와 아키텍처 구축 패턴 :: 양승도 :: AWS Summit Seoul 2016

데이터의 종류

트랜잭션• Database reads & writes (OLTP)• Cache

검색• Logs• Streams

파일• Log files (/var/log)• Log collectors & frameworks

스트림• Log records• Sensors & IoT data

A

iOS Android

Web Apps

Logstash

Amazon RDS

Amazon DynamoDB

AmazonES

AmazonS3

AmazonGlacier

AmazonElastiCache

Sear

ch

SQL

NoS

QL

Cac

heFi

le S

tora

ge

Transactional Data

File Data

Stream Data

Mobile Apps

Search Data

Database

FileStorage

Search

수집 저장Lo

ggin

gIo

TAp

plic

atio

ns

StreamStorage

Page 11: 빅데이터를 위한 AWS 모범사례와 아키텍처 구축 패턴 :: 양승도 :: AWS Summit Seoul 2016

저장

Page 12: 빅데이터를 위한 AWS 모범사례와 아키텍처 구축 패턴 :: 양승도 :: AWS Summit Seoul 2016

스트림스토리지

A

iOS Android

Web Apps

Logstash

Amazon RDS

Amazon DynamoDB

AmazonES

AmazonS3

ApacheKafka

AmazonGlacier

AmazonKinesis

AmazonDynamoDB

AmazonElastiCache

Sear

ch

SQL

NoS

QL

Cac

heSt

ream

Sto

rage

File

Sto

rage

Transactional Data

File Data

Stream Data

Mobile Apps

Search Data

Database

FileStorage

Search

수집 저장Lo

ggin

gIo

TAp

plic

atio

nsü

Page 13: 빅데이터를 위한 AWS 모범사례와 아키텍처 구축 패턴 :: 양승도 :: AWS Summit Seoul 2016

스트림 스토리지 옵션들

AWS 관리형 서비스• Amazon Kinesis → streams• Amazon DynamoDB Streams → table + streams• Amazon SQS → queue• Amazon SNS → pub/sub

Do-It-Yourself• Apache Kafka → stream

Page 14: 빅데이터를 위한 AWS 모범사례와 아키텍처 구축 패턴 :: 양승도 :: AWS Summit Seoul 2016

생산자와 소비자를 분리

영구적인 버퍼

다수의 스트림을 수집

메시지의 순서 유지

스트리밍 맵리듀스

병렬적인 소비

4 4 3 3 2 2 1 14 3 2 1

4 3 2 1

4 3 2 1

4 3 2 14 4 3 3 2 2 1 1

Shard 1 / Partition 1

Shard 2 / Partition 2

Consumer 1Count of Red = 4

Count of Violet = 4

Consumer 2Count of Blue = 4

Count of Green = 4

DynamoDB Stream Kinesis Stream Kafka Topic

스트림 스토리지

Page 15: 빅데이터를 위한 AWS 모범사례와 아키텍처 구축 패턴 :: 양승도 :: AWS Summit Seoul 2016

Queues & Pub/Sub ? • 생산자 및 소비자/가입자를

분리• 영구적인 버퍼• 다수의 스트림을 수집

• No 메시지 순서• No 병렬적 소비 for Amazon

SQS• Amazon SNS 는 다수의

큐 또는 람다(Lambda) 함수로 전달 가능

• No 스트리밍 맵리듀스

Consumers

Producers

Producers

Amazon SNS

Amazon SQS

queue

topic

function

ʎ

AWS Lambda

Amazon SQSqueue

Subscriber

Page 16: 빅데이터를 위한 AWS 모범사례와 아키텍처 구축 패턴 :: 양승도 :: AWS Summit Seoul 2016

AmazonKinesis

DynamoDBStreams

Amazon SQSAmazon SNS Kafka

Managed Yes Yes Yes No

Ordering Yes Yes No Yes

Delivery at-least-once exactly-once at-least-once at-least-once

Lifetime 7 days 24 hours 14 days Configurable

Replication 3 AZ 3 AZ 3 AZ Configurable

Throughput No Limit No Limit No Limit ~ Nodes

Parallel Clients Yes Yes No (SQS) Yes

MapReduce Yes Yes No Yes

Record size 1MB 400KB 256KB Configurable

Cost Low Higher(table cost) Low-Medium Low (+admin)

어떤 스트림 스토리지를 사용해야 하는가?

Page 17: 빅데이터를 위한 AWS 모범사례와 아키텍처 구축 패턴 :: 양승도 :: AWS Summit Seoul 2016

파일스토리지

Amazon RDS

Amazon DynamoDB

AmazonES

AmazonS3

ApacheKafka

AmazonGlacier

AmazonKinesis

AmazonDynamoDB

AmazonElastiCache

Sear

ch

SQL

NoS

QL

Cac

heSt

ream

Sto

rage

File

Sto

rage

Transactional Data

File Data

Stream Data

Search Data

Database

Search

저장

A

iOS Android

Web Apps

Logstash

Mobile Apps

수집Lo

ggin

gIo

TAp

plic

atio

nsü

Page 18: 빅데이터를 위한 AWS 모범사례와 아키텍처 구축 패턴 :: 양승도 :: AWS Summit Seoul 2016

왜 Amazon S3가 빅데이터에 좋은가?

• 기본적으로 빅데이터 프레임워크 지원(Spark, Hive, Presto, etc.) • 스토리지를 위한 컴퓨팅 클러스터가 불필요 (HDFS와 다름)• Amazon EC2 스팟 인스턴스를 활용하여 하둡 클러스터 운영 가능• 동일한 데이터로 여러 종류(Spark, Hive, Presto) 클러스터를 동시에 사용• 오브젝트 갯수 무제한• 99.999999999%의 내구성을 위한 설계• 고 가용성 – AZ 장애 극복• 수명주기를 활용한 계층-스토리지 (Standard, IA, Amazon Glacier)• 보안 – SSL, client/server-side encryption at rest• 저비용• 매우 높은 대역폭 – 총 처리량 제한 없음

Page 19: 빅데이터를 위한 AWS 모범사례와 아키텍처 구축 패턴 :: 양승도 :: AWS Summit Seoul 2016

왜 Amazon S3가 빅데이터에 좋은가?

• 기본적으로 빅데이터 프레임워크 지원(Spark, Hive, Presto, etc.) • 스토리지를 위한 컴퓨팅 클러스터가 불필요 (HDFS와 다름)• Amazon EC2 스팟 인스턴스를 활용하여 하둡 클러스터 운영 가능• 동일한 데이터로 여러 종류(Spark, Hive, Presto) 클러스터를 동시에 사용• 오브젝트 갯수 무제한• 99.999999999%의 내구성을 위한 설계• 고 가용성 – AZ 장애 극복• 수명주기를 활용한 계층-스토리지 (Standard, IA, Amazon Glacier)• 보안 – SSL, client/server-side encryption at rest• 저비용• 매우 높은 대역폭 – 총 처리량 제한 없음

Page 20: 빅데이터를 위한 AWS 모범사례와 아키텍처 구축 패턴 :: 양승도 :: AWS Summit Seoul 2016

• 매우 자주 접근하는(hot) 데이터는HDFS 사용

• 자주 접근하는 데이터는 Amazon S3 Standard 사용

• 드물게 접근하는 데이터는 Amazon S3 Standard – IA 사용

• 거의 접근하지 않는(cold) 데이터는Amazon Glacier 사용하여 아카이브

S3와 HDFS, Amazon Glacier를 함께…

Page 21: 빅데이터를 위한 AWS 모범사례와 아키텍처 구축 패턴 :: 양승도 :: AWS Summit Seoul 2016

데이터베이스+ 검색

계층

A

iOS Android

Web Apps

Logstash

Amazon RDS

Amazon DynamoDB

AmazonES

AmazonS3

ApacheKafka

AmazonGlacier

AmazonKinesis

AmazonDynamoDB

AmazonElastiCache

Sear

ch

SQL

NoS

QL

Cac

heSt

ream

Sto

rage

File

Sto

rage

Transactional Data

File Data

Stream Data

Mobile Apps

Search Data

수집 저장Lo

ggin

gIo

TAp

plic

atio

nsü

Page 22: 빅데이터를 위한 AWS 모범사례와 아키텍처 구축 패턴 :: 양승도 :: AWS Summit Seoul 2016

Database + Search Tier

데이터베이스 + 검색 계층 Anti-pattern

Page 23: 빅데이터를 위한 AWS 모범사례와 아키텍처 구축 패턴 :: 양승도 :: AWS Summit Seoul 2016

Data TierSearch

Amazon ElasticsearchService

Amazon CloudSearch

Cache

RedisMemcached

SQL

Amazon AuroraMySQLMariaDBPostgreSQLOracleSQL Server

NoSQL

CassandraAmazon

DynamoDBHBaseMongoDB

Database + Search Tier

모범 사례 – 성격에 맞는 적합한 도구 사용

Page 24: 빅데이터를 위한 AWS 모범사례와 아키텍처 구축 패턴 :: 양승도 :: AWS Summit Seoul 2016

구체적인 예

Page 25: 빅데이터를 위한 AWS 모범사례와 아키텍처 구축 패턴 :: 양승도 :: AWS Summit Seoul 2016

데이터 구조와 접근 패턴

접근 패턴 What to use?

Put/Get (Key, Value) Cache, NoSQLSimple relationships → 1:N, M:N NoSQL

Cross table joins, transaction, SQL SQLFaceting, Search Search

데이터 구조 What to use?

Fixed schema SQL, NoSQLSchema-free (JSON) NoSQL, Search

(Key, Value) Cache, NoSQL

Page 26: 빅데이터를 위한 AWS 모범사례와 아키텍처 구축 패턴 :: 양승도 :: AWS Summit Seoul 2016

데이터 / 접근 온도?

Page 27: 빅데이터를 위한 AWS 모범사례와 아키텍처 구축 패턴 :: 양승도 :: AWS Summit Seoul 2016

Hot Warm Cold데이터 용량 MB–GB GB–TB PB아이템 크기 B–KB KB–MB KB–TB응답시간 ms ms, sec min, hrs내구성 Low–High High Very High

요청 비율 Very High High Low비용/GB $$-$ $-¢¢ ¢

Hot Data Warm Data Cold Data

데이터 / 접근 특성: Hot, Warm, Cold

Page 28: 빅데이터를 위한 AWS 모범사례와 아키텍처 구축 패턴 :: 양승도 :: AWS Summit Seoul 2016

Cache SQL

Request RateHigh Low

Cost/GBHigh Low

LatencyLow High

Data VolumeLow High

GlacierSt

ruct

ure

NoSQL

Hot Data Warm Data Cold Data

Low

High

Search

Page 29: 빅데이터를 위한 AWS 모범사례와 아키텍처 구축 패턴 :: 양승도 :: AWS Summit Seoul 2016

Amazon ElastiCache

AmazonDynamoDB

AmazonAurora

AmazonElasticsearch

Amazon EMR (HDFS) Amazon S3 Amazon Glacier

Average latency ms ms ms, sec ms,sec sec,min,hrs ms,sec,min

(~ size) hrs

Data volume GB GB–TBs(no limit)

GB–TB(64 TB Max)

GB–TB GB–PB(~nodes)

MB–PB(no limit)

GB–PB(no limit)

Item size B-KBKB

(400 KB max)

KB(64 KB)

KB(1 MB max) MB-GB KB-GB

(5 TB max)GB

(40 TB max)

Request rate High -Very High

Very High(no limit) High High Low – Very

High

Low –Very High(no limit)

Very Low

Storage costGB/month $$ ¢¢ ¢¢ ¢¢ ¢ ¢ ¢/10

Durability Low -Moderate Very High Very High High High Very High Very High

Hot Data Warm Data Cold Data

Hot Data Warm Data Cold Data어떤 데이터 저장소를 사용?

Page 30: 빅데이터를 위한 AWS 모범사례와 아키텍처 구축 패턴 :: 양승도 :: AWS Summit Seoul 2016

분석

Page 31: 빅데이터를 위한 AWS 모범사례와 아키텍처 구축 패턴 :: 양승도 :: AWS Summit Seoul 2016

분석A

iOS Android

Web Apps

Logstash

Amazon RDS

Amazon DynamoDB

AmazonES

AmazonS3

ApacheKafka

AmazonGlacier

AmazonKinesis

AmazonDynamoDB

Amazon Redshift

Impala

Pig

Amazon ML

AmazonKinesis

AWSLambda

Amaz

on E

last

ic M

apRe

duce

AmazonElastiCache

Sear

ch

SQL

NoS

QL

Cac

he

Stre

am P

roce

ssin

gBa

tch

Inte

ract

ive

Logg

ing

Stre

am S

tora

ge

IoT

Appl

icat

ions

File

Sto

rage

Hot

Cold

WarmHot

Hot

ML

Transactional Data

File Data

Stream Data

Mobile Apps

Search Data

수집 저장 분석ü ü

Streaming

Page 32: 빅데이터를 위한 AWS 모범사례와 아키텍처 구축 패턴 :: 양승도 :: AWS Summit Seoul 2016

처리 / 분석데이터에 대한 분석은 유용한 정보를 발견하고, 결론을제안하고, 그리고 의사결정을 지원하기 위한 목적으로데이터를 점검, 정제, 변환, 그리고 모델링 하는 프로세스

예시대화형 대쉬보드 → 대화형 분석(Interactive Analytics)일일/주간/월간 보고서 → 배치 분석(Batch Analytics)결제/사기 경고, 1 분 측정 → 실시간 분석(Real-time Analytics)심리 분석, 예측 모델 → 기계 학습(Machine learning)

Page 33: 빅데이터를 위한 AWS 모범사례와 아키텍처 구축 패턴 :: 양승도 :: AWS Summit Seoul 2016

대화형 분석

대용량의 데이터 (warm/cold)답변을 얻기까지 수 초 소요

예: 셀프 서비스 대쉬보드

Page 34: 빅데이터를 위한 AWS 모범사례와 아키텍처 구축 패턴 :: 양승도 :: AWS Summit Seoul 2016

배치 분석

대용량의 데이터 (warm/cold)답변을 얻기까지 수 분 또는 수 시간 소요

예: 일일, 주간, 월간 보고서 작성

Page 35: 빅데이터를 위한 AWS 모범사례와 아키텍처 구축 패턴 :: 양승도 :: AWS Summit Seoul 2016

실시간 분석

적은 용량의 Hot 한 데이터와 질문답변을 얻기까지 짧은 시간 소요 (수 밀리초 또는 수 초)

실시간 (이벤트)• 데이터 스트림에서 이벤트 실시간 응답• 예: 결제/사기 경고

준 실시간 (마이크로 배치)• 데이터 스트림의 마이크로 배치를 통한 준 실시간 운영• 예: 1 분 측정

Page 36: 빅데이터를 위한 AWS 모범사례와 아키텍처 구축 패턴 :: 양승도 :: AWS Summit Seoul 2016

기계 학습을 통한 예측

기계 학습(ML)은 컴퓨터에게 명시적으로 프로그래밍 하지않고 학습할 수 있는 기능을 제공

기계 학습 알고리즘:감독 학습 ← “teach” program

- Classification ← Is this transaction fraud? (Yes/No) - Regression ← Customer Life-time value?

자율 학습 ← let it learn by itself- Clustering ← Market Segmentation

Page 37: 빅데이터를 위한 AWS 모범사례와 아키텍처 구축 패턴 :: 양승도 :: AWS Summit Seoul 2016

기계 학습• Mahout, Spark ML, Amazon ML

대화형 분석• Amazon Redshift, Presto, Impala, Spark

배치 분석• MapReduce, Hive, Pig, Spark

스트림 처리• Micro-batch: Spark Streaming, KCL, Hive, Pig• Real-time: Storm, AWS Lambda, KCL

Amazon Redshift

Impala

Pig

Amazon Machine Learning

AmazonKinesis

AWSLambda

Amaz

on E

last

ic M

apRe

duce

Stre

am P

roce

ssin

gBa

tch

Inte

ract

ive

ML

분석

Streaming

분석 도구와 프레임워크

Page 38: 빅데이터를 위한 AWS 모범사례와 아키텍처 구축 패턴 :: 양승도 :: AWS Summit Seoul 2016

Spark Streaming Apache Storm Amazon KinesisClient Library AWS Lambda Amazon EMR (Hive,

Pig)

Scale / Throughput ~ Nodes ~ Nodes ~ Nodes Automatic ~ Nodes

Batch or Real-time Real-time Real-time Real-time Real-time Batch

Manageability Yes (Amazon EMR) Do it yourself Amazon EC2 + Auto Scaling AWS managed Yes (Amazon EMR)

Fault Tolerance Single AZ Configurable Multi-AZ Multi-AZ Single AZ

Programminglanguages Java, Python, Scala Any language

via Thrift

Java, via MultiLangDaemon ( .Net, Python, Ruby,

Node.js)

Node.js, Java, Python

Hive, Pig, Streaming languages

High

어떤 데이터 처리 기술을 사용해야 하는가?

Page 39: 빅데이터를 위한 AWS 모범사례와 아키텍처 구축 패턴 :: 양승도 :: AWS Summit Seoul 2016

AmazonRedshift Impala Presto Spark Hive

Query Latency Low Low Low Low Medium (Tez) – High (MapReduce)

Durability High High High High High

Data Volume 1.6 PB Max ~Nodes ~Nodes ~Nodes ~Nodes

Managed Yes Yes (EMR) Yes (EMR) Yes (EMR) Yes (EMR)

Storage Native HDFS / S3A* HDFS / S3 HDFS / S3 HDFS / S3

SQL Compatibility High Medium High Low (SparkSQL) Medium (HQL)

HighMedium

어떤 데이터 처리 기술을 사용해야 하는가?

Page 40: 빅데이터를 위한 AWS 모범사례와 아키텍처 구축 패턴 :: 양승도 :: AWS Summit Seoul 2016

Store Analyze

https://aws.amazon.com/big-data/partner-solutions/

ETL

What About ETL?

Page 41: 빅데이터를 위한 AWS 모범사례와 아키텍처 구축 패턴 :: 양승도 :: AWS Summit Seoul 2016

소비 /시각화

Page 42: 빅데이터를 위한 AWS 모범사례와 아키텍처 구축 패턴 :: 양승도 :: AWS Summit Seoul 2016

예측

분석 및 시각화

IDE

애플리케이션 & API

Consume

Anal

ysis

& V

isua

lizat

ion

Note

book

s

Predictions

Apps & APIs

IDE

저장 분석 소비ETL

Business users

Data Scientist, Developers

Amazon QuickSight

소비

Page 43: 빅데이터를 위한 AWS 모범사례와 아키텍처 구축 패턴 :: 양승도 :: AWS Summit Seoul 2016

참조 아키텍처

Page 44: 빅데이터를 위한 AWS 모범사례와 아키텍처 구축 패턴 :: 양승도 :: AWS Summit Seoul 2016

수집 저장 분석 소비

A

iOS Android

Web Apps

Logstash

Amazon RDS

Amazon DynamoDB

AmazonES

AmazonS3

ApacheKafka

AmazonGlacier

AmazonKinesis

AmazonDynamoDB

Amazon Redshift

Impala

Pig

Amazon ML

AmazonKinesis

AWSLambda

Amaz

on E

last

ic M

apRe

duce

AmazonElastiCache

Sear

ch

SQL

NoS

QL

Cac

he

Stre

am P

roce

ssin

gBa

tch

Inte

ract

ive

Logg

ing

Stre

am S

tora

ge

IoT

Appl

icat

ions

File

Sto

rage An

alys

is &

Vis

ualiz

atio

n

Hot

Cold

Warm

Hot

Slow

Hot

ML

Fast

Fast

Transactional Data

File Data

Stream Data

Note

book

s

Predictions

Apps & APIs

Mobile Apps

IDE

Search Data

ETL

Streaming

Amazon QuickSight

Page 45: 빅데이터를 위한 AWS 모범사례와 아키텍처 구축 패턴 :: 양승도 :: AWS Summit Seoul 2016

© 2016, Amazon Web Services, Inc. or its Affiliates. All rights reserved.

유호석 | CTO

2016년 5월 17일

Customer StoryMangoPlate

Page 46: 빅데이터를 위한 AWS 모범사례와 아키텍처 구축 패턴 :: 양승도 :: AWS Summit Seoul 2016

Redshift 기반의 망고플레이트분석 및 추천 시스템

Page 47: 빅데이터를 위한 AWS 모범사례와 아키텍처 구축 패턴 :: 양승도 :: AWS Summit Seoul 2016

망고플레이트 소개

사람들이 맛있는 곳을쉽고 빠르게 찾을 수 있도록

도와주는 서비스[ ]

Page 48: 빅데이터를 위한 AWS 모범사례와 아키텍처 구축 패턴 :: 양승도 :: AWS Summit Seoul 2016

망고플레이트의 성장

누적다운로드: 250만+

MAU : 180만+

월간 페이지뷰: 2000만+

현재

Page 49: 빅데이터를 위한 AWS 모범사례와 아키텍처 구축 패턴 :: 양승도 :: AWS Summit Seoul 2016

망고플레이트에서 하고 있는 추천 및 분석 업무

• Recommendation Engine • Restaurant to Restaurant Similarity 계산• User to User Similarity 계산• User to Restaurant Similarity 계산

• Fraud Detection • Fake review/user Identification • User/Review/Picture Scoring • Restaurant Rating

• User Behavior 분석• Web/App user mapping • Retention queries • User segmentation/testing

Page 50: 빅데이터를 위한 AWS 모범사례와 아키텍처 구축 패턴 :: 양승도 :: AWS Summit Seoul 2016

서비스 성장에 따른 Pain Point들

• 서비스 성장에 따라 기존 시스템으로 계산 시간이 점점 오래 걸림

• 추천 및 Rating 알고리즘 고도화로 분석 Query 가 복잡해짐

• 분석하고 싶은 데이터가 모두 흩어져 있음

Page 51: 빅데이터를 위한 AWS 모범사례와 아키텍처 구축 패턴 :: 양승도 :: AWS Summit Seoul 2016

어떤 Solution을 이용해야할까?

• 우리팀의 상황• 별도의 분석 Script를만들기에는 개발자 부족• Algorithm의 70%는 Query에 의존• 분석에 필요한 모든 Log를 수집하여 S3에 저장

• Redshift를 도입하기로 결정

[ ]클라우드에서 실행되는 신속하고 강력한페타바이트 규모의 SQL기반 데이터

웨어하우스 서비스

Page 52: 빅데이터를 위한 AWS 모범사례와 아키텍처 구축 패턴 :: 양승도 :: AWS Summit Seoul 2016

Redshift의 장점

• 쉽게 Petabyte 규모까지 Scale 가능

• 빠른 계산 속도

• 저렴한 가격• dc1.large의경우 월 20만원으로 시작 가능

• 표준 SQL 지원 및 다양한 Analytics Function 지원

Page 53: 빅데이터를 위한 AWS 모범사례와 아키텍처 구축 패턴 :: 양승도 :: AWS Summit Seoul 2016

단계별로 AWS 및 Redshift도입

국내 클라우드 서비스• VM instances• MySQL• Redis

AWS Seoul Region• EC2• RDS• Elastic Cache• VPC• Route53• S3• SNS• SQS• Redshift

Migration Consulting&

Technical Support

AWS Tokyo Region• S3• SNS• SQS• Redshift

+

2015 2016

Page 54: 빅데이터를 위한 AWS 모범사례와 아키텍처 구축 패턴 :: 양승도 :: AWS Summit Seoul 2016

망고플레이트의 Architecture분석이 필요한 모든 데이터를 한곳에

AWS S3 AWS Redshift

. . .

copy table

SQL DB records to raw file

AWS EC2

Analytics Visualization & ConsumeCollection Store

AWS RDSAWS EC2

AWS EC2

AWS RDS

Page 55: 빅데이터를 위한 AWS 모범사례와 아키텍처 구축 패턴 :: 양승도 :: AWS Summit Seoul 2016

무엇이 좋아졌을까요?

• Algorithm queries• Restaurant Similarity: 600 초 > 80 초 (7.5배) • Restaurant/User Recommendation: 720 초 > 80 초 (9배)

• Retention queries• Base Table: 1200 초 > 60 초 (20배)• Main: 2400 초 > 200 초 (12배)

분석 속도 개선

Page 56: 빅데이터를 위한 AWS 모범사례와 아키텍처 구축 패턴 :: 양승도 :: AWS Summit Seoul 2016

무엇이 좋아졌을까요?

• Analytic function(window function) 들 적용• median, dense_rank• ntile, stddev_samp/stddev_pop

• JSON function들을 이용하여 쉽게 로그테이블 분석• Json_extract_path_text• json_extract_array_element_text

분석 Query들의 단순화

Page 57: 빅데이터를 위한 AWS 모범사례와 아키텍처 구축 패턴 :: 양승도 :: AWS Summit Seoul 2016

Managed Service by

감사합니다 !https://www.mangoplate.com/career

Page 58: 빅데이터를 위한 AWS 모범사례와 아키텍처 구축 패턴 :: 양승도 :: AWS Summit Seoul 2016

디자인 패턴

Page 59: 빅데이터를 위한 AWS 모범사례와 아키텍처 구축 패턴 :: 양승도 :: AWS Summit Seoul 2016

디자인 패턴

§ 대화형 분석(Interactive Analytics) : 대화형 대쉬보드

§ 배치 분석(Batch Analytics) : 일일/주간/월간 보고서

§ 실시간 분석(Real-time Analytics) : 결제/사기 경고1 분 측정

§ 기계 학습(Machine learning) : 심리 분석, 예측 모델

Page 60: 빅데이터를 위한 AWS 모범사례와 아키텍처 구축 패턴 :: 양승도 :: AWS Summit Seoul 2016

여러 단계처리에서 분리된 스토리지

Store Process Store Process

processstore

“데이터 버스” 분리

Page 61: 빅데이터를 위한 AWS 모범사례와 아키텍처 구축 패턴 :: 양승도 :: AWS Summit Seoul 2016

다수의 처리 애플리케이션(또는 커넥터)이 다양한데이터 저장소에서 읽기/쓰기 가능

processstore

Amazon Kinesis

AWS Lambda

Amazon S3

Amazon DynamoDB

Amazon Kinesis S3Connector

Page 62: 빅데이터를 위한 AWS 모범사례와 아키텍처 구축 패턴 :: 양승도 :: AWS Summit Seoul 2016

Amazon Kinesis

AWS Lambda

Amazon S3

Amazon DynamoDB

Hive SparkStorm

Amazon Kinesis S3Connector

processstore

처리 프레임워크(KCL, Storm, Hive, Spark, etc.)는다수의 데이터 저장소에서 읽기 가능

Page 63: 빅데이터를 위한 AWS 모범사례와 아키텍처 구축 패턴 :: 양승도 :: AWS Summit Seoul 2016

Spark Streaming Apache StormAWS Lambda

KCLAmazon Redshift Spark

Impala Presto

Hive

AmazonRedshift

Hive

Spark PrestoImpala

Amazon KinesisApache Kafka

Amazon DynamoDB Amazon S3data

Hot Cold데이터 온도

처리

응답

시간

Low

High Answers

Amazon EMR (HDFS)

Hive

NativeKCLAWS Lambda

Batch

데이터 온도 vs. 처리 응답시간

Page 64: 빅데이터를 위한 AWS 모범사례와 아키텍처 구축 패턴 :: 양승도 :: AWS Summit Seoul 2016

실시간 분석

Producer ApacheKafka

KCL

AWS Lambda

SparkStreaming

Apache Storm

Amazon SNS

AmazonML

Notifications

AmazonElastiCache

(Redis)

AmazonDynamoDB

AmazonRDS

AmazonES

Alert

App state

Real-time Prediction

KPI

processstore

DynamoDBStreams

Amazon Kinesis

Page 65: 빅데이터를 위한 AWS 모범사례와 아키텍처 구축 패턴 :: 양승도 :: AWS Summit Seoul 2016

대화형 & 배치 분석

Producer Amazon S3

Amazon EMR

Hive

Pig

Spark

AmazonML

processstore

Consume

Amazon Redshift

Amazon EMRPresto

Impala

Spark

배치

대화형

Batch Prediction

Real-time Prediction

Page 66: 빅데이터를 위한 AWS 모범사례와 아키텍처 구축 패턴 :: 양승도 :: AWS Summit Seoul 2016

Batch Layer

AmazonKinesis

DATA

processstore

Amazon Kinesis S3 Connector

Amazon S3

Applications

Amazon Redshift

Amazon EMR

Presto

Hive

Pig

Spark ANSWER

Speed Layer

ANSWER

Serving LayerAmazon

ElastiCacheAmazon

DynamoDBAmazon

RDSAmazon

ES

ANSWER

AmazonML

KCL

AWS Lambda

Spark Streaming

Storm

람다 아키텍처

Page 67: 빅데이터를 위한 AWS 모범사례와 아키텍처 구축 패턴 :: 양승도 :: AWS Summit Seoul 2016

요약

“데이터 버스”를 분리• Data → Store → Process → Answers

작업에 적합한 도구를 사용• Data structure, latency, throughput, access patterns

람다 아키텍처 아이디어 사용• Immutable (append-only) log, batch/speed/serving layer

AWS 관리형 서비스 활용• No/low admin

비용에 대한 고려• Big data ≠ Big cost

Page 68: 빅데이터를 위한 AWS 모범사례와 아키텍처 구축 패턴 :: 양승도 :: AWS Summit Seoul 2016

여러분의 피드백을 기다립니다!

https://www.awssummit.co.kr

모바일 페이지에 접속하셔서, 지금 세션 평가에참여하시면, 행사후 기념품을 드립니다.

#AWSSummit 해시태그로 소셜 미디어에 여러분의행사 소감을 올려주세요.

발표 자료 및 녹화 동영상은 AWS Korea 공식 소셜채널로 곧 공유될 예정입니다.

Page 69: 빅데이터를 위한 AWS 모범사례와 아키텍처 구축 패턴 :: 양승도 :: AWS Summit Seoul 2016

감사합니다 !aws.amazon.com/big-data