클라우드 기반 실시간 데이터 분석 및 예측 - 윤석찬 테크 에반젤리스트:: AWS Cloud Track 2 Advanced
1. AWS 클라우드 기반 실시간 데이터 분석 방법
윤석찬 | AWS 코리아 테크에반젤리스트
백정상 | IGAWorks 개발팀장
2. 목차
AWS 빅 데이터 분석 빌딩 블록 및 사례
실시간 데이터 분석 서비스
Amazon Kinesis Stream
실시간 분석 고객 사례 소개
IGAWorks
최신 실시간 분석 서비스 소개
3. 데이터 분석
데이터
웨어하우스
배치 분석
Hadoop
실시간
분석
데이터
파이프라인
머신
러닝
AWS 클라우드의 폭넓은 서비스 제공
보안/관리사설네트웍
(VPC)
인증및 접
근제어
암호화 및
키관리
자동화
인프라관리
모니터링
로그/감사
데디케이트
서비스
문서 공유
및 협업
가상
데스크톱
디렉토리
카탈로그
비지니스
이메일
스토리지
게이트웨이
엔터프라이즈
통합 인증
기존망
연결
백업/재
해복구
배포
서비스
통합
관리
하이브리드모바일
데이터
싱크
모바일
분석
푸시
알림
모바일
백엔드
소셜
인증
개발 배포
소스
콘트롤
콘테이너
서비스
배포
도구
빌드
도구
데브옵스
큐 서비스
워크플로
앱
스트리밍
이메일
전송
검색
서비스
모바일
테스트
동영상
변환
API
관리
이벤트기반
컴퓨팅
도메인
네임관리
애플리케이션 서비스
핵심 서비스컴퓨팅 네 트 워 킹데이터베이스
(RDS/NoSQL/캐싱)
스토리지
(객체/볼륨/백업))
리전 가용영역 콘 텐 츠 배
포
글 로 벌 인 프 라
4. 고객 피드백 기반 클라우드 서비스 혁신
데이터베이스 관리의 부담이 많습니다.
관계형 DB 는 확장성이 쉽지 않아요.
Hadoop 배포 및 관리하기가 힘듭니다.
기존 DW는 복잡하고 비싸고 느립니다.
상용 DB는 고비용에 관리, 확장이 어려워요.
실시간 데이터는 수집하고 분석하기 힘듭니다.
Amazon RDS
Amazon DynamoDB
Amazon EMR
Amazon Redshift
Amazon Aurora
Amazon Kinesis
고객의 목소리 AWS는 만들었습니다
6. Freedom to Get the Real Value
From Your Data
AWS의 다양한 서비스를 통해 대용량 데이터를 손쉽게 처리하고,
데이터에서 가치를 찾아 고객의 서비스에 집중할 수 있는 자유
7. AWS 기반 빅데이터 분석 고객 사례
통신사 헬스 케어
헬스케어 분석 금융 정보
광고 서비스
유전 정보 분석
교육 분야
연구소
석유 화학 유전자 분석 미디어 분야
리스크 시뮬레이션
리스트 분석 스트리밍 분야
식품
8. 수퍼셀의 게임 분석 사례
S3 및 Glacier: 게임 로그 수집 및 저장 (일 10테라 바이트)
EMR: DW를 위한 데이터 클린징 (자체 EC2 클러스터 대신 활용)
Kinesis: 게임 사용자 실시간 데이터 수집 (일 450억건)
DynamoDB: Kinesis로 수집된 데이터 저장 및 빠른 질의
https://aws.amazon.com/ko/solutions/case-studies/supercell/
9. 국내 데이터 분석 사례
1만개의 모바일 게임 앱의
사용자 데이터 분석
13억개의 모바일 디바이
스에 광고 플랫폼 운영
Recopick- 쇼핑 로그 기반
실시간 상품 추천 서비스
5백만 사용자 음악 스트리
밍 데이터 분석 및 추천
일간 100 GB의 가정용 및 상업용
전기 사용량을 분석 서비스
쿠키런 게임 로그 수집 및
분석 플랫폼 운영
11. 서비스 및 시스템의
실시간 분석
• 마케팅 이벤트 현황
• 게임내 행동 파악
• 주문 데이터를 매출
파악
상태 분석/감시
• IoT 기반 센서 이상
감지
• 무단 침입 감지
서비스 품질 향상
• 소설 데이터를 이용한
실시간 피드백 반영
• 사용자 행동에 기반한
서비스 개선
IT 환경 변화에 따른 실시간 분석의 필요성
13. Amazon Kinesis Streams
손 쉬운 관리: 신규 스트림 생성, 용량
설정 및 확장 가능
빠른 실시간 앱 개발: Kinesis Client
Library (KCL), Apache Spark/Storm,
AWS Lambda 등을 이용하여,
스트리밍 데이터에 대한 지속적인
처리 가능
저렴한 비용: 사용한 만큼만 과금하며
확장 대비 비용 효율적
내구성 및 가용성: AWS 인프라를 통한
확장 및 데이터 소실 방지
14. Kinesis Streams 내부 구조 및 용어
Data
Sources
App.1
[Aggregate &
De-Duplicate]
Data
Sources
Data S
ources
App.2
[Metric E
xtraction]
S3
DynamoDB
Redshift
App.3
[Real-time
Dashboard]
Data
Sources
Availability
Zone
Shard 1
Shard 2
…
Shard N
Availability
Zone
Availability
Zone
Stream을 생성 - 1개 이상의 Shard로 구성
Shard는 초당 1MB의 입력 및 2MB의 출력 (시간당 0.015$/버지니아 리전 기준)
Data Record 입력- 복수 AZ에 저장
AWS Lambda
Functions
19. 다양한 Kinesis Streams 데이터 전송 및 활용
AWS SDK
LOG4J
Flume
Fluentd
Get* APIs
Kinesis Client Library
+
Connector Library
Apache Storm
Amazon
Elastic MapReduce
실시간 데이터 전송 실시간 데이터 활용
AWS Mobile SDK
Kinesis Producer
Library
AWS Lambda
Apache Spark
20. Kinesis Streams 확장성
Shard 1
Shard 2
Shard 1
Shard 2
Shard 3
Shard 1
Shard 2
Shard 1
Shard 2
Shard 3
1:00-7:00 7:00-13:00 13:00-19:00 19:00-1:00
• 처리하고자 하는 데이터의 특성에 맞게 Shard 운용 가능
– Shard는 시간단위로 비용이 청구되므로 낭비 없이 사용 할 수 있도록 Split/Merge 적용
• 처리량이 많아지는 시간에 Shard 를 분할하고 적어지면 병합하는 방법
Split SplitMerge
22. Kinesis Producer Library 및 Server-Side Timestamps
PutRecords API 추가, 500 레코드 또는 5 MB payload
Kinesis Client Library에 대한 언어 지원- Python, Node.JS, Ruby…
개별 레코드 데이터 크기 50 KB에서 1 MB로 증가
요청 시 스트림 저장 시간 증가: 24 시간에서 7일
2015년 - 다양한 Kinesis Streams 기능 확대
23. 1 Billion Events/wk
From Connected D
evices
100 GB/day Click Streams
From 250+ Sites
50 Billion Ad Impressions
Per Day Sub-50 ms Resp
onses
17 Million Events/Day
1 Billion Transactions
Per Day
1 TB+/day Game Data
Analyzed In Real-time
Kinesis Streams 실시간 분석 사례
24. Kinesis Streams 실시간 분석 사례
"AWS 플랫폼은 17PB의 야구 게임 데이터를 처리하고 고객에게
이를 거의 실시간으로 제공하기 위한 탁월한 선택이었습니다.”
–·Joe Inzerillo, EVP 및 CTO, Major League Baseball Advanced Media
26. Real-time bidding (RTB) is a means by which
advertising inventory is bought and sold on a per-
impression basis, via programmatic
instantaneous auction, similar to financial
markets.[1] With real-time bidding, advertising
buyers bid on an impression and, if the bid is won,
the buyer’s ad is instantly displayed on the
publisher’s site.[2] Real-time bidding lets
advertisers manage and optimize ads from
multiple ad-networks by granting the user access
to a multitude of different networks, allowing them
to create and launch advertising campaigns,
prioritize networks and allocate percentages of
unsold inventory, known as backfill.[3]
https://en.wikipedia.org/wiki/Real-time_bidding
38. 미션 #1 – 각 요청당 20ms 내로 처리
• 타겟팅 : 앱을 이탈한지 7일이상
• 전략 : 1일 3회이상 노출 금지
• 입찰가 : 0.5$를 넘지 마시오
• 광고소재 : 5개를 롤링 방식으로
광고 요구사항 광고 대상 유저인가?
이 유저에게 몇번이나 노출?
이번에는 어떤 광고물을?
얼마로 입찰?
RTB 요청
RTB 응답
39. 미션 #1 – 각 요청당 20ms 내로 처리
광고 대상 유저인가?
이 유저에게 몇번이나 노출?
이번에는 어떤 광고물을?
얼마로 입찰?
RTB 요청
RTB 응답
이 과정을 네트워크 Latency 포함 100ms 이내 처리해야 함
그렇지 않으면 입찰에서 점차 배제됨 ㅠㅠ
즉 입찰 엔진은 20ms내에 응답해야 함
게다가 이 모든 처리는 DB Access 를 꼭 해야하는 작업
41. #1 각 요청당 20ms 내로 처리
Elastic Beanstalk
DynamoDB
DynamoDB 를 적절히 사용하여 DB Latency를 획기적으로 줄일 수 있었음
42. 미션 #2 – 실시간 캠페인 운영
광고에 300$이상 소진하지 않게 해주세요
지금까지 몇 개의 광고 클릭이 발생했는지 알고 싶어요
지금까지 얼마의 예산을 소진했는지 바로 알고 싶어요
지금 정말 광고가 송출되고 있는지 확인하고 싶어요
실시간 운영만이 해결책
62. 실시간 분석을 위한 AWS 빌딩 블록
Amazon Kinesis
Streams
스트리밍 데이터를
처리하거나 분석하는 커스텀
애플리케이션을 개발
Amazon Kinesis
Firehose
방대한 볼륨의 스트리밍
데이터를 Amazon S3나
Redshift 로 쉽게 로드
Amazon Kinesis
Analytics
표준 SQL 쿼리를 이용하여
데이터 스트림을 쉽게 분석
AWS 에서 스트림에 대한 수집, 전송/저장 및 분석을 가능하게 하는 서비스
73. AWS IoT – 실시간 데이터 예측 사례
AWS IoT를 통한 데이터 이상값 탐지
Amazon Machine Learning은 Rules Engine에 예측 모델 평가 제공 가능
예측을 위한 지속적 업데이트 가능
데이터를 통한 지속적 모델 업데이트로 실시간 예측 활용
Amazon Machin
e Learning
Re-Train
S3
Amazon
Kinesis Firehose
74. AWS Direct
Connect
AWS
Import/Expor
t Disk
AWS
Import/Expor
t Snowball
Amazon
Kinesis
Streams
Amazon VPC
VPN Connectio
n
AWS Database
Migration Servic
e
AWS
Data Pipeline
Amazon
Kinesis
Firehos
e
Amazon
Kinesis
Analytic
s
AWS Storage
Gateway
Amazon S3
Amazon
Glacier
Amazon
RDS
Amazon
Redshift
Amazon
Elastisearch
Service
Amazon
DynamoD
B
Amazon EMR Amazon EC2
Amazon EC2
Container Servic
e
Amazon ML
Amazon
QuickSigh
t
수집 및 저장 분석 및 예측
최신 AWS 빅데이터 빌딩 블록
온프레미스 데이터 이동
75. 맺으면서
데이터 패턴에 맞는 AWS 서비스를 선택하세요!
Latency, throughput, access patterns 등
AWS 매니지드 서비스 선택하세요!
No/low admin
AWS 실시간 분석 서비스를 활용하세요!
Amazon Kinesis
빅데이터, 이제 저렴하게 분석 하세요!
Big data ≠ big cost
76. 어떻게 시작할까요?
추천 콘텐츠
빅데이터 블로그 https://blogs.aws.amazon.com/bigdata/blog/
주요 서비스 http://aws.amazon.com/ko/big-data/
고객 사례 https://aws.amazon.com/ko/solutions/case-studies/big-data/
지금 시작하기
Qwiklabs 무료 실습 – https://qwiklabs.com
각종 샘플 코드 – https://github.com/awslabs/aws-bigdata-blogs
77. • AWS 공식 블로그: http://aws.amazon.com/ko/blogs/korea
• AWS 공식 소셜 미디어
여러분의 피드백을
기다립니다!
@AWSKorea AWSKorea
AmazonWebServices AWSKorea