SEOUL
AWS기반 서버리스
데이터레이크 구축하기
김진웅 / 수석, SK C&C
발표자 소개
• 김진웅 (@ddiiwoong)
• SK C&C Cloud Engineer
• 다방면에 좁은 지식
(컨테이너, DevOps, ML/DL...)
• 스페셜리스트 돕는걸 좋아함
오늘 이야기 할 것들
데이터 플라이휠
데이터레이크, 데이터옵스
S3 데이터레이크
S3 기반 수집, 처리, 분석
SI 회사에서의 데이터레이크
정리
플라이휠 - Virtuous cycle(선순환)
데이터 플라이휠
https://www.cbinsights.com/research/team-blog/data-network-effects/
Machine Learning
Deep Learning
Web Log
Click
User Behavior
Contents
Purchased Data
Sensor Data
Social Data
Mass-storage
RDB
NoSQL
DW
Realtime Analysis
BI
OpenSource
DataLake
데이터 분석의 딜레마
데이터로 하고 싶은일
● 마케팅/광고 최적화, 개인화
● 고객 이탈 방지
● 원인 분석
● 매출 증대
● 성과 측정
● 트렌드 파악/예측
● 쉽고 편한 분석
이미 겪고 있거나 예상되는 문제점들
● 데이터 한군데 저장 어려움
● 다양한 데이터 포맷 정제 필요
● 일단 실험에 드는 부담
● 레거시 vs 신규 시스템
● 기술 내재화 어려움
● 채용 어려움
● 시간도 돈도 없음
● 법과 규제에 따른 데이터 활용 제약 (공유, 식별)
데이터레이크 정의
참고 - https://www.samsungsds.com/global/ko/support/insights/data_lake.html
데이터레이크 @AWS
● Centralized repository that allows you to
store all your structured and unstructured
data at any scale.
● From dashboards and visualizations to big
data processing, real-time analytics, and
machine learning to guide better decisions.
참고 - https://aws.amazon.com/ko/big-data/datalakes-and-analytics/what-is-a-data-lake/
데이터레이크 @AWS
참고 - https://aws.amazon.com/ko/blogs/korea/build-a-data-lake-foundation-with-aws-glue-and-amazon/
DataOps
@Wikipedia
DataOps is an automated, process-oriented methodology, used by analytic and data teams, to
improve the quality and reduce the cycle time of data analytics.
@The DataOps Manifesto
Data Science, Data Engineering, Data Management, Big Data,
Business Intelligence, or the like, through our work we have come to value in analytics
DataOps 원칙
https://www.dataopsmanifesto.org/dataops-manifesto.html
1. Continually satisfy your customer - 지속적으로 고객을 만족시켜라
2. Value working analytics - 분석을 가치있게 생각하라
3. Embrace change - 변화 수용
4. It's a team sport - 다양한 역할, 기술, 도구 수용
5. Daily interactions - 매일 협력
6. Self-organize - 자기주도
7. Reduce heroism - 영웅주의를 줄여라
8. Reflect - 반성하라
9. Analytics is code - 분석은 코드다
10. Orchestrate - 결합하라
11. Make it reproducible - 재현 가능하게 만들어라
12. Disposable environments - 비용 최소화
13. Simplicity - 단순성
14. Analytics is manufacturing - 분석은 제조와 같다
15. Quality is paramount - 품질이 제일 중요
16. Monitor quality and performance - 품질 및 성능을 모니터링하라
17. Reuse - 재사용하라
18. Improve cycle times - 사이클 타임을 개선하라
이상적인 DataOps
• 목표를 중심으로 스스로 조직
• No Hero, Sustainable, Scalable, Process 지향
• Data, Tool, Code, Environment 모두 장악이 필요함
• Reproducible 결과물 -> 분석 Pipeline
• Cross-Functional Team(교차기능 팀)
• Dev, Architect, Ops, Data Scientist, Data Engineer 모두 포함
• 개발자, 운영자, 데이터전문가 (3자 협업 구도)
• 데이터 중심 사고를 하는 사람들이 모여서 일을 하는 것
하지만 엔터프라이즈에서는?
• 경영 환경의 변화에 따른 Data 관리 어려움
• 분산된 환경으로 인한 Data Silo 문제
• Data 기반 의사결정 문화 확산 어려움
• 사용자 별 다양한 분석 환경 부족
일단 모아보자!
데이터레이크 컨셉 아키텍처
설계 고려 사항
● No-Ops : Remove existing management (Serverless)
● GitOps : All infra, codes, and scripts are managed in immutable state
● Automation : Communications, Approvals, SRs, Issues
● 우리는 데이터가 없으니 어떤 가치를 줄 수 있을까?
S3 데이터레이크 @AWS
참고 - https://aws.amazon.com/ko/blogs/korea/build-a-data-lake-foundation-with-aws-glue-and-amazon/
서버리스 아키텍쳐 @Woot.com
참고 - https://aws.amazon.com/ko/blogs/korea/our-data-lake-story-how-woot-com-built-a-serverless-data-lake-on-aws/
구성사례 : AWS Glue를 사용하여 완전한 서버리스 데이터 웨어하우스로 전환
데이터 수집
데이터 수집 (Batch)
Batch :어떤 규모로든 확장 가능한 완전관리형 배치 컴퓨팅
윤석찬님 자료 참고 (https://www.slideshare.net/awskorea/aws-batch-deep-dive)
데이터 수집 (Batch)
AWS CloudIBM Cloud
App.
RDB
HDFS
Object
Storage
Site-to-Site
VPN
Ingest Zone
S3
Pull
Batch
VPN
구성사례 : 모바일 앱 데이터를 수집하기 위한 타 클라우드 연동 아키텍처
데이터 수집 (Batch)
CloudWatch
Event
(daily)
External
API
Crawling
(boto3)
Batch
Execution
Ingest Zone
S3
Queue of
Runnable
Jobs
ECR
Registry
Github
Build DeployTest
Job
definitions
Role
ECS
environment
docker push
Crawling
(boto3)
구성사례 : 외부 API 연동 아키텍처
AWS Cloud
데이터 수집 (스트리밍)
Kinesis Data Firehose
- 스트리밍 데이터를 데이터 레이크에 로드하는 가장 쉬운 방법
참고 : https://aws.amazon.com/ko/kinesis/data-firehose/
데이터 수집 (스트리밍)
Kinesis Data Firehose
- 스트리밍 데이터를 데이터 레이크에 로드하는 가장 쉬운 방법
AWS Cloud
Kinesis
Data Firehose
Transformed Data Ingest Zone
S3
Backup S3
Java Application
(Kinesis Client Library)
Sink for Apache Flume
Streaming Data
Transfer
Local File
Streaming Transfer
• Batch Size/ Interval Config
• Compression (gzip, snappy)
• Data Format Conversion (JSON to Parquet)
• Encryption – KMS integration
직접 S3 전송
S3 Transfer Acceleration
- 클라이언트와 S3 버킷 사이에서 파일을 빠르고 쉽고 안전하게 장거리 전송
S3 Transfer Acceleration
Local – Region간 테스트
데이터 처리
데이터 처리
Glue
- 분석을 위해 손쉽게 데이터를 준비하고 로드할 수 있게 지원하는 완전관리형
ETL(추출, 변환 및 로드) 서비스
참고 : https://aws.amazon.com/ko/glue/
데이터 처리
구성사례 : 이벤트 기반 Glue 파이프라인 구성
AWS Cloud
Ingest S3
(적재시 AES-256
암호화 적용)
CloudWatch
Event
(time-based)
Trigger
Trigger
Glue
Crawler
Glue
Data Catalog
External
System
External
API
Pull
Crawling
Batch
CloudWatch
Event
(event-based)
Glue
Glue
Lambda
Lambda
Landing S3
Landing S3
- 스키마 생성
- 정형화
- 압축/암호화
- 포맷변환
Athena
Redshift
ECS (Portal)
데이터 분석
데이터 분석
Sagemaker
- 기계 학습 모델을 빠르고 쉽게 구축, 훈련하고 배포까지 지원하는 서비스
레이블 구축 학습 및 튜닝 배포 및 관리
참고 : https://aws.amazon.com/ko/sagemaker/
데이터 분석
• Jupyter 샌드박스 제공
• Lifecycle 구성 스크립트 활용하여 사전 환경 구성
• https://github.com/aws-samples/amazon-sagemaker-notebook-instance-lifecycle-config-samples
• 사용량 빌링을 위한 Cost Explorer API 연동
• Assume Role을 활용한 원격 Account 분석환경 구성
Sagemaker Jupyter 노트북 : 모델 배치/테스트/검증
데이터 분석
AWS Cloud (Datalake Account)
AWS Cloud (Customer Account)
Landing S3
Glue
Data
Catalog
ECS
(Portal)
Refined S3
Private
Blockchain
Marketplace
Blockchain
API
Replication
SageMaker
API
Data
Scientist
Jupyter
Notebook
VPC
Endpoint
Provisioning
(Assume Role)
Lifecycle configuration Script
- Package Install, Update
- Idle Auto Stop
- Volume Mount
- Git Config
Sagemaker Jupyter 노트북 : 모델 배치/테스트/검증
데이터 분석
① 알고리즘 선정 ② 학습 수행 ③ 모델 배포 ④ endpoint 생성 ⑤ endpoint 통해 모델 실행
데이터 분석
Sagemaker Training : 원하는 알고리즘으로 학습 수행 및 모델 저장
① 알고리즘 선택
② 학습
Jupytor Notebook AWS Console 결과
데이터 분석
Sagemaker Inference : 모델 배포 및 엔드포인트 생성
Jupytor Notebook AWS Console 결과
③ 모델 배포
④ 실행결과 확인
③ 엔드포인트 확인
③ 모델 확인
데이터 분석
⑤ 모델 선언
⑥ 모델 실행
Jupytor Notebook AWS Console 결과
Sagemaker 엔드포인트를 사용하여 모델 사용 선언 및 실행
데이터 분석
엔드포인트는 지속 실행 비용 발생. Transform 은 실제 실행 때만 발생
데이터 분석 (BI)
Quicksight
- 완전관리형 클라우드 기반 BI(비즈니스 인텔리전스) 서비스
데이터 분석 (BI)
- SPICE(QuickSight용 인 메모리 최적화 계산 엔진) 활용하여 주기적인 업데이트
- 3rd Party BI활용 : Redshift - Tableau Server - 포털 연동
AWS Cloud
Athena
Redshift
QuickSight
Refined S3
Table Update
(Daily)
Table
SPICE
Athena Query
Update (Daily)
Tableau
Server
ECS
(Portal)
Dashboard
Dashboard
데이터 포털 개발
- 서버리스 환경을 위한 ECS(Elastic Container Service) 사용
데이터 포털 개발
AWS Cloud
Markdown Github
Build Deploy
Lambda
(Prevent Cold Start)
CloudWatch
Event
CloudFront
GET /docs
Portal
User
Internet
S3 (docs)
S3 (Landing)
ECS (Portal) Sagemaker
CustomerLambda@Edge
/docs
/index.html
/analy
Routing
Route 53
Admin
GithubDeveloper
Build DeployTest
ECR
데이터레이크 on SK C&C
Data 서비스 Portal
Blockchain 기반 '동의관리'
Data Infra
정제 분석 시각화
Vertical P/F
(Healthcare..)
Ecosystem
Service Portal
Best-of-breed
COEUS
데이터 없는 데이터레이크 플랫폼 – SI 특화
데이터레이크 on SK C&C
COEUS
Coeus(코이오스)는 ‘의문을 품다’라는 뜻으로, 지성의 신이며 하늘의 축을 상징
COEUS
COEUS 아키텍처
S3 기반 서버리스 데이터레이크 (관리 최소화)
정리
• S3 중심 서버리스 아키텍처도 충분히 적용 가능
• 완전관리형 서비스만이 정답은 아님 (Challenge)
• 기존 Hadoop ecosystem 통합
• 기존 조직과의 R&R (정보보호, 개발, 인프라)
• 서버리스 컴퓨팅 자원 : EKS on Fargate 검토 (서울 리전은 언제?)
감사합니다

AWS기반 서버리스 데이터레이크 구축하기 - 김진웅 (SK C&C) :: AWS Community Day 2020

  • 1.
  • 2.
    발표자 소개 • 김진웅(@ddiiwoong) • SK C&C Cloud Engineer • 다방면에 좁은 지식 (컨테이너, DevOps, ML/DL...) • 스페셜리스트 돕는걸 좋아함
  • 3.
    오늘 이야기 할것들 데이터 플라이휠 데이터레이크, 데이터옵스 S3 데이터레이크 S3 기반 수집, 처리, 분석 SI 회사에서의 데이터레이크 정리
  • 4.
    플라이휠 - Virtuouscycle(선순환)
  • 5.
    데이터 플라이휠 https://www.cbinsights.com/research/team-blog/data-network-effects/ Machine Learning DeepLearning Web Log Click User Behavior Contents Purchased Data Sensor Data Social Data Mass-storage RDB NoSQL DW Realtime Analysis BI OpenSource DataLake
  • 6.
    데이터 분석의 딜레마 데이터로하고 싶은일 ● 마케팅/광고 최적화, 개인화 ● 고객 이탈 방지 ● 원인 분석 ● 매출 증대 ● 성과 측정 ● 트렌드 파악/예측 ● 쉽고 편한 분석 이미 겪고 있거나 예상되는 문제점들 ● 데이터 한군데 저장 어려움 ● 다양한 데이터 포맷 정제 필요 ● 일단 실험에 드는 부담 ● 레거시 vs 신규 시스템 ● 기술 내재화 어려움 ● 채용 어려움 ● 시간도 돈도 없음 ● 법과 규제에 따른 데이터 활용 제약 (공유, 식별)
  • 7.
    데이터레이크 정의 참고 -https://www.samsungsds.com/global/ko/support/insights/data_lake.html
  • 8.
    데이터레이크 @AWS ● Centralizedrepository that allows you to store all your structured and unstructured data at any scale. ● From dashboards and visualizations to big data processing, real-time analytics, and machine learning to guide better decisions. 참고 - https://aws.amazon.com/ko/big-data/datalakes-and-analytics/what-is-a-data-lake/
  • 9.
    데이터레이크 @AWS 참고 -https://aws.amazon.com/ko/blogs/korea/build-a-data-lake-foundation-with-aws-glue-and-amazon/
  • 10.
    DataOps @Wikipedia DataOps is anautomated, process-oriented methodology, used by analytic and data teams, to improve the quality and reduce the cycle time of data analytics. @The DataOps Manifesto Data Science, Data Engineering, Data Management, Big Data, Business Intelligence, or the like, through our work we have come to value in analytics
  • 11.
    DataOps 원칙 https://www.dataopsmanifesto.org/dataops-manifesto.html 1. Continuallysatisfy your customer - 지속적으로 고객을 만족시켜라 2. Value working analytics - 분석을 가치있게 생각하라 3. Embrace change - 변화 수용 4. It's a team sport - 다양한 역할, 기술, 도구 수용 5. Daily interactions - 매일 협력 6. Self-organize - 자기주도 7. Reduce heroism - 영웅주의를 줄여라 8. Reflect - 반성하라 9. Analytics is code - 분석은 코드다 10. Orchestrate - 결합하라 11. Make it reproducible - 재현 가능하게 만들어라 12. Disposable environments - 비용 최소화 13. Simplicity - 단순성 14. Analytics is manufacturing - 분석은 제조와 같다 15. Quality is paramount - 품질이 제일 중요 16. Monitor quality and performance - 품질 및 성능을 모니터링하라 17. Reuse - 재사용하라 18. Improve cycle times - 사이클 타임을 개선하라
  • 12.
    이상적인 DataOps • 목표를중심으로 스스로 조직 • No Hero, Sustainable, Scalable, Process 지향 • Data, Tool, Code, Environment 모두 장악이 필요함 • Reproducible 결과물 -> 분석 Pipeline • Cross-Functional Team(교차기능 팀) • Dev, Architect, Ops, Data Scientist, Data Engineer 모두 포함 • 개발자, 운영자, 데이터전문가 (3자 협업 구도) • 데이터 중심 사고를 하는 사람들이 모여서 일을 하는 것
  • 13.
    하지만 엔터프라이즈에서는? • 경영환경의 변화에 따른 Data 관리 어려움 • 분산된 환경으로 인한 Data Silo 문제 • Data 기반 의사결정 문화 확산 어려움 • 사용자 별 다양한 분석 환경 부족
  • 14.
  • 15.
  • 16.
    설계 고려 사항 ●No-Ops : Remove existing management (Serverless) ● GitOps : All infra, codes, and scripts are managed in immutable state ● Automation : Communications, Approvals, SRs, Issues ● 우리는 데이터가 없으니 어떤 가치를 줄 수 있을까?
  • 17.
    S3 데이터레이크 @AWS 참고- https://aws.amazon.com/ko/blogs/korea/build-a-data-lake-foundation-with-aws-glue-and-amazon/
  • 18.
    서버리스 아키텍쳐 @Woot.com 참고- https://aws.amazon.com/ko/blogs/korea/our-data-lake-story-how-woot-com-built-a-serverless-data-lake-on-aws/ 구성사례 : AWS Glue를 사용하여 완전한 서버리스 데이터 웨어하우스로 전환
  • 19.
  • 20.
    데이터 수집 (Batch) Batch:어떤 규모로든 확장 가능한 완전관리형 배치 컴퓨팅 윤석찬님 자료 참고 (https://www.slideshare.net/awskorea/aws-batch-deep-dive)
  • 21.
    데이터 수집 (Batch) AWSCloudIBM Cloud App. RDB HDFS Object Storage Site-to-Site VPN Ingest Zone S3 Pull Batch VPN 구성사례 : 모바일 앱 데이터를 수집하기 위한 타 클라우드 연동 아키텍처
  • 22.
    데이터 수집 (Batch) CloudWatch Event (daily) External API Crawling (boto3) Batch Execution IngestZone S3 Queue of Runnable Jobs ECR Registry Github Build DeployTest Job definitions Role ECS environment docker push Crawling (boto3) 구성사례 : 외부 API 연동 아키텍처 AWS Cloud
  • 23.
    데이터 수집 (스트리밍) KinesisData Firehose - 스트리밍 데이터를 데이터 레이크에 로드하는 가장 쉬운 방법 참고 : https://aws.amazon.com/ko/kinesis/data-firehose/
  • 24.
    데이터 수집 (스트리밍) KinesisData Firehose - 스트리밍 데이터를 데이터 레이크에 로드하는 가장 쉬운 방법 AWS Cloud Kinesis Data Firehose Transformed Data Ingest Zone S3 Backup S3 Java Application (Kinesis Client Library) Sink for Apache Flume Streaming Data Transfer Local File Streaming Transfer • Batch Size/ Interval Config • Compression (gzip, snappy) • Data Format Conversion (JSON to Parquet) • Encryption – KMS integration
  • 25.
    직접 S3 전송 S3Transfer Acceleration - 클라이언트와 S3 버킷 사이에서 파일을 빠르고 쉽고 안전하게 장거리 전송
  • 26.
    S3 Transfer Acceleration Local– Region간 테스트
  • 27.
  • 28.
    데이터 처리 Glue - 분석을위해 손쉽게 데이터를 준비하고 로드할 수 있게 지원하는 완전관리형 ETL(추출, 변환 및 로드) 서비스 참고 : https://aws.amazon.com/ko/glue/
  • 29.
    데이터 처리 구성사례 :이벤트 기반 Glue 파이프라인 구성 AWS Cloud Ingest S3 (적재시 AES-256 암호화 적용) CloudWatch Event (time-based) Trigger Trigger Glue Crawler Glue Data Catalog External System External API Pull Crawling Batch CloudWatch Event (event-based) Glue Glue Lambda Lambda Landing S3 Landing S3 - 스키마 생성 - 정형화 - 압축/암호화 - 포맷변환 Athena Redshift ECS (Portal)
  • 30.
  • 31.
    데이터 분석 Sagemaker - 기계학습 모델을 빠르고 쉽게 구축, 훈련하고 배포까지 지원하는 서비스 레이블 구축 학습 및 튜닝 배포 및 관리 참고 : https://aws.amazon.com/ko/sagemaker/
  • 32.
    데이터 분석 • Jupyter샌드박스 제공 • Lifecycle 구성 스크립트 활용하여 사전 환경 구성 • https://github.com/aws-samples/amazon-sagemaker-notebook-instance-lifecycle-config-samples • 사용량 빌링을 위한 Cost Explorer API 연동 • Assume Role을 활용한 원격 Account 분석환경 구성 Sagemaker Jupyter 노트북 : 모델 배치/테스트/검증
  • 33.
    데이터 분석 AWS Cloud(Datalake Account) AWS Cloud (Customer Account) Landing S3 Glue Data Catalog ECS (Portal) Refined S3 Private Blockchain Marketplace Blockchain API Replication SageMaker API Data Scientist Jupyter Notebook VPC Endpoint Provisioning (Assume Role) Lifecycle configuration Script - Package Install, Update - Idle Auto Stop - Volume Mount - Git Config Sagemaker Jupyter 노트북 : 모델 배치/테스트/검증
  • 34.
    데이터 분석 ① 알고리즘선정 ② 학습 수행 ③ 모델 배포 ④ endpoint 생성 ⑤ endpoint 통해 모델 실행
  • 35.
    데이터 분석 Sagemaker Training: 원하는 알고리즘으로 학습 수행 및 모델 저장 ① 알고리즘 선택 ② 학습 Jupytor Notebook AWS Console 결과
  • 36.
    데이터 분석 Sagemaker Inference: 모델 배포 및 엔드포인트 생성 Jupytor Notebook AWS Console 결과 ③ 모델 배포 ④ 실행결과 확인 ③ 엔드포인트 확인 ③ 모델 확인
  • 37.
    데이터 분석 ⑤ 모델선언 ⑥ 모델 실행 Jupytor Notebook AWS Console 결과 Sagemaker 엔드포인트를 사용하여 모델 사용 선언 및 실행
  • 38.
    데이터 분석 엔드포인트는 지속실행 비용 발생. Transform 은 실제 실행 때만 발생
  • 39.
    데이터 분석 (BI) Quicksight -완전관리형 클라우드 기반 BI(비즈니스 인텔리전스) 서비스
  • 40.
    데이터 분석 (BI) -SPICE(QuickSight용 인 메모리 최적화 계산 엔진) 활용하여 주기적인 업데이트 - 3rd Party BI활용 : Redshift - Tableau Server - 포털 연동 AWS Cloud Athena Redshift QuickSight Refined S3 Table Update (Daily) Table SPICE Athena Query Update (Daily) Tableau Server ECS (Portal) Dashboard Dashboard
  • 41.
    데이터 포털 개발 -서버리스 환경을 위한 ECS(Elastic Container Service) 사용
  • 42.
    데이터 포털 개발 AWSCloud Markdown Github Build Deploy Lambda (Prevent Cold Start) CloudWatch Event CloudFront GET /docs Portal User Internet S3 (docs) S3 (Landing) ECS (Portal) Sagemaker CustomerLambda@Edge /docs /index.html /analy Routing Route 53 Admin GithubDeveloper Build DeployTest ECR
  • 43.
    데이터레이크 on SKC&C Data 서비스 Portal Blockchain 기반 '동의관리' Data Infra 정제 분석 시각화 Vertical P/F (Healthcare..) Ecosystem Service Portal Best-of-breed COEUS 데이터 없는 데이터레이크 플랫폼 – SI 특화
  • 44.
  • 45.
    COEUS Coeus(코이오스)는 ‘의문을 품다’라는뜻으로, 지성의 신이며 하늘의 축을 상징
  • 46.
  • 47.
    COEUS 아키텍처 S3 기반서버리스 데이터레이크 (관리 최소화)
  • 48.
    정리 • S3 중심서버리스 아키텍처도 충분히 적용 가능 • 완전관리형 서비스만이 정답은 아님 (Challenge) • 기존 Hadoop ecosystem 통합 • 기존 조직과의 R&R (정보보호, 개발, 인프라) • 서버리스 컴퓨팅 자원 : EKS on Fargate 검토 (서울 리전은 언제?)
  • 49.