Advertisement

More Related Content

Slideshows for you(20)

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

Advertisement

More from AWSKRUG - AWS한국사용자모임(20)

Advertisement

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

  1. SEOUL AWS기반 서버리스 데이터레이크 구축하기 김진웅 / 수석, SK C&C
  2. 발표자 소개 • 김진웅 (@ddiiwoong) • SK C&C Cloud Engineer • 다방면에 좁은 지식 (컨테이너, DevOps, ML/DL...) • 스페셜리스트 돕는걸 좋아함
  3. 오늘 이야기 할 것들 데이터 플라이휠 데이터레이크, 데이터옵스 S3 데이터레이크 S3 기반 수집, 처리, 분석 SI 회사에서의 데이터레이크 정리
  4. 플라이휠 - Virtuous cycle(선순환)
  5. 데이터 플라이휠 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
  6. 데이터 분석의 딜레마 데이터로 하고 싶은일 ● 마케팅/광고 최적화, 개인화 ● 고객 이탈 방지 ● 원인 분석 ● 매출 증대 ● 성과 측정 ● 트렌드 파악/예측 ● 쉽고 편한 분석 이미 겪고 있거나 예상되는 문제점들 ● 데이터 한군데 저장 어려움 ● 다양한 데이터 포맷 정제 필요 ● 일단 실험에 드는 부담 ● 레거시 vs 신규 시스템 ● 기술 내재화 어려움 ● 채용 어려움 ● 시간도 돈도 없음 ● 법과 규제에 따른 데이터 활용 제약 (공유, 식별)
  7. 데이터레이크 정의 참고 - https://www.samsungsds.com/global/ko/support/insights/data_lake.html
  8. 데이터레이크 @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/
  9. 데이터레이크 @AWS 참고 - https://aws.amazon.com/ko/blogs/korea/build-a-data-lake-foundation-with-aws-glue-and-amazon/
  10. 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
  11. 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 - 사이클 타임을 개선하라
  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) AWS CloudIBM 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 Ingest Zone S3 Queue of Runnable Jobs ECR Registry Github Build DeployTest Job definitions Role ECS environment docker push Crawling (boto3) 구성사례 : 외부 API 연동 아키텍처 AWS Cloud
  23. 데이터 수집 (스트리밍) Kinesis Data Firehose - 스트리밍 데이터를 데이터 레이크에 로드하는 가장 쉬운 방법 참고 : https://aws.amazon.com/ko/kinesis/data-firehose/
  24. 데이터 수집 (스트리밍) 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
  25. 직접 S3 전송 S3 Transfer 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. 데이터 포털 개발 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
  43. 데이터레이크 on SK C&C Data 서비스 Portal Blockchain 기반 '동의관리' Data Infra 정제 분석 시각화 Vertical P/F (Healthcare..) Ecosystem Service Portal Best-of-breed COEUS 데이터 없는 데이터레이크 플랫폼 – SI 특화
  44. 데이터레이크 on SK C&C
  45. COEUS Coeus(코이오스)는 ‘의문을 품다’라는 뜻으로, 지성의 신이며 하늘의 축을 상징
  46. COEUS
  47. COEUS 아키텍처 S3 기반 서버리스 데이터레이크 (관리 최소화)
  48. 정리 • S3 중심 서버리스 아키텍처도 충분히 적용 가능 • 완전관리형 서비스만이 정답은 아님 (Challenge) • 기존 Hadoop ecosystem 통합 • 기존 조직과의 R&R (정보보호, 개발, 인프라) • 서버리스 컴퓨팅 자원 : EKS on Fargate 검토 (서울 리전은 언제?)
  49. 감사합니다
Advertisement