효율적인 빅데이터 분석 및 처리를 위한 Glue, EMR 활용 - 김태현 솔루션즈 아키텍트, AWS :: AWS Summit Seoul 2019Amazon Web Services Korea
효율적인 빅데이터 분석 및 처리를 위한 Glue, EMR 활용
김태현 솔루션즈 아키텍트, AWS
AWS에서는 Big Data 분석 및 처리를 위해 분석 목적에 맞는 다양한 Big Data Framework 서비스를 지원합니다. 이 세션에서는 시간이 지날수록 증가하는 데이터의 분석 및 처리를 위해 사용되는 AWS Glue와 Amazon EMR 같은 AWS Big Data Framework의 내부구조를 살펴보고 머신러닝을 포함한 다양한 분석 및 ETL을 위해 효율적으로 사용할 수 있는 방법들을 소개합니다.
Spark 의 핵심은 무엇인가? RDD! (RDD paper review)Yongho Ha
요즘 Hadoop 보다 더 뜨고 있는 Spark.
그 Spark의 핵심을 이해하기 위해서는 핵심 자료구조인 Resilient Distributed Datasets (RDD)를 이해하는 것이 필요합니다.
RDD가 어떻게 동작하는지, 원 논문을 리뷰하며 살펴보도록 합시다.
http://www.cs.berkeley.edu/~matei/papers/2012/sigmod_shark_demo.pdf
AWS EMR을 사용하면서 비용을 최적화하기 위해 필요한 다양한 관점의 방안을 검토하여 정리한 자료.
비용 최적화 대상은 zeppelin/jupyter notebook과 apache spark를 활용하는 서비스를 대상으로 하였으며, 해당 작업이 aws emr에서 어떻게 동작하는지 내부 구조을 파악하여 확인함.
- AWS EMR이란?
- AWS EMR의 과금 방식은?
- 어떻게 비용을 최적화 할 것인가?
- 최적의 EMR 클러스터 구성 방안
- 가성비 높은 Instance 선정 방안
- Apache Spark 성능 개선 방안
가장 중요한 것은 실행할 job의 자원사용량/성능을 모니터링하고, 이에 맞게 자원을 최적화하는 것이 필요함.
효율적인 빅데이터 분석 및 처리를 위한 Glue, EMR 활용 - 김태현 솔루션즈 아키텍트, AWS :: AWS Summit Seoul 2019Amazon Web Services Korea
효율적인 빅데이터 분석 및 처리를 위한 Glue, EMR 활용
김태현 솔루션즈 아키텍트, AWS
AWS에서는 Big Data 분석 및 처리를 위해 분석 목적에 맞는 다양한 Big Data Framework 서비스를 지원합니다. 이 세션에서는 시간이 지날수록 증가하는 데이터의 분석 및 처리를 위해 사용되는 AWS Glue와 Amazon EMR 같은 AWS Big Data Framework의 내부구조를 살펴보고 머신러닝을 포함한 다양한 분석 및 ETL을 위해 효율적으로 사용할 수 있는 방법들을 소개합니다.
Spark 의 핵심은 무엇인가? RDD! (RDD paper review)Yongho Ha
요즘 Hadoop 보다 더 뜨고 있는 Spark.
그 Spark의 핵심을 이해하기 위해서는 핵심 자료구조인 Resilient Distributed Datasets (RDD)를 이해하는 것이 필요합니다.
RDD가 어떻게 동작하는지, 원 논문을 리뷰하며 살펴보도록 합시다.
http://www.cs.berkeley.edu/~matei/papers/2012/sigmod_shark_demo.pdf
AWS EMR을 사용하면서 비용을 최적화하기 위해 필요한 다양한 관점의 방안을 검토하여 정리한 자료.
비용 최적화 대상은 zeppelin/jupyter notebook과 apache spark를 활용하는 서비스를 대상으로 하였으며, 해당 작업이 aws emr에서 어떻게 동작하는지 내부 구조을 파악하여 확인함.
- AWS EMR이란?
- AWS EMR의 과금 방식은?
- 어떻게 비용을 최적화 할 것인가?
- 최적의 EMR 클러스터 구성 방안
- 가성비 높은 Instance 선정 방안
- Apache Spark 성능 개선 방안
가장 중요한 것은 실행할 job의 자원사용량/성능을 모니터링하고, 이에 맞게 자원을 최적화하는 것이 필요함.
OpenSearch는 배포형 오픈 소스 검색과 분석 제품군으로 실시간 애플리케이션 모니터링, 로그 분석 및 웹 사이트 검색과 같이 다양한 사용 사례에 사용됩니다. OpenSearch는 데이터 탐색을 쉽게 도와주는 통합 시각화 도구 OpenSearch와 함께 뛰어난 확장성을 지닌 시스템을 제공하여 대량 데이터 볼륨에 빠르게 액세스 및 응답합니다. 이 세션에서는 실제 동작 구조에 대한 설명을 바탕으로 최적화를 하기 위한 방법과 운영상에 발생할 수 있는 이슈에 대해서 알아봅니다.
클라우드 네이티브 IT를 위한 4가지 요소와 상관관계 - DevOps, CI/CD, Container, 그리고 MSAVMware Tanzu Korea
최근 IT 시장은 ‘클라우드 네이티브’ 라는 컨셉을 적극적으로 받아들이면서 혁신의 속도를 높이기 위해 여러가지 노력을 기울이고 있습니다. 본 세션에서는 ‘클라우드 네이티브’ 를 이루는 4가지 요소인 DevOps, CICD, Container, MSA 를 간략하게 살펴보고 MSA 가 나머지 클라우드 네이티브 3 요소와 어떻게 상호작용하여 고객 여러분의 비즈니스에 도움이 되는지 알아봅니다. 그리고 MSA 로 이행하기 위한 조직면에서의 요건과 기술 면에서의 요건을 살펴봅니다.
Amazon SageMaker 모델 배포 방법 소개::김대근, AI/ML 스페셜리스트 솔루션즈 아키텍트, AWS::AWS AIML 스페셜 웨비나Amazon Web Services Korea
Amazon SageMaker 배포에 처음 입문 하고자 하는 분들을 위해 동작 방식을 설명하고 실행할 수 있는 가이드를 제공합니다. Amazon SageMaker 빌트인 4가지 서빙 패턴(리얼타임 추론, 배치 추론, 비동기 추론, 서버리스 추론)을 시작으로 프로덕션 적용을 위한 핵심 기능과 비용 절감을 위한 방법을 소개합니다.
AWS Glue는 고객이 분석을 위해 손쉽게 데이터를 준비하고 로드할 수 있게 지원하는 완전관리형 ETL(추출, 변환 및 로드) 서비스입니다. AWS 관리 콘솔에서 클릭 몇 번으로 ETL 작업을 생성하고 실행할 수 있습니다. 빅데이터 분석 시 다양한 데이터 소스에 대한 전처리 작업을 할 때, 별도의 데이터 처리용 서버나 인프라를 관리할 필요가 없습니다. 본 세션에서는 지난 5월 서울 리전에 출시한 Glue 서비스에 대한 자세한 소개와 함께 다양한 활용 팁을 데모와 함께 소개해 드립니다.
아름답고 유연한 데이터 파이프라인 구축을 위한 Amazon Managed Workflow for Apache Airflow - 유다니엘 A...Amazon Web Services Korea
Apache Airflow는 복잡한 데이터 처리 파이프라인의 전체적인 프로세스를 자동화하기 위한 워크플로우 관리 플랫폼이며 오픈 소스 커뮤니티에서 활발하게 기여하고 있는 top-level 프로젝트 입니다. AWS는 최근에 Amazon Managed Workflow for Apache Airflow (MWAA) 서비스를 정식 출시하였고, 본 강연에서는 Apache Airflow 및 MWAA를 소개하고 어떻게 AWS 서비스와 연동하여 데이터 처리 워크플로우를 구축할 수 있는지 데모를 통해 알려 드립니다.
데브시스터즈 데이터 레이크 구축 이야기 : Data Lake architecture case study (박주홍 데이터 분석 및 인프라 팀...Amazon Web Services Korea
데브시스터즈 데이터 레이크 구축 이야기 : Data Lake architecture case study
이 세션에서는 데브시스터즈의 Case Study를 통하여 Data Lake를 만들고 사용하는데 있어 요구 되는 사항들에 대해 공유합니다. 여러 목적에 맞는 데이터를 전달하기 위해 AWS 를 활용하여 Data Lake 를 구축하게된 계기와 실제 구축 작업을 하면서 경험하게 된 것들에 대해 말씀드리고자 합니다. 기존 인프라 구조 대비 효율성 및 비용적 측면을 소개해드리고, 빅데이터를 이용한 부서별 데이터 세분화를 진행할 때 어떠한 Architecture가 사용되었는지 소개드리고자 합니다.
Cloud dw benchmark using tpd-ds( Snowflake vs Redshift vs EMR Hive )SANG WON PARK
몇년 전부터 Data Architecture의 변화가 빠르게 진행되고 있고,
그 중 Cloud DW는 기존 Data Lake(Hadoop 기반)의 한계(성능, 비용, 운영 등)에 대한 대안으로 주목받으며,
많은 기업들이 이미 도입했거나, 도입을 검토하고 있다.
본 자료는 이러한 Cloud DW에 대해서 개념적으로 이해하고,
시장에 존재하는 다양한 Cloud DW 중에서 기업의 환경에 맞는 제품이 어떤 것인지 성능/비용 관점으로 비교했다.
- 왜기업들은 CloudDW에주목하는가?
- 시장에는어떤 제품들이 있는가?
- 우리Biz환경에서는 어떤 제품을 도입해야 하는가?
- CloudDW솔루션의 성능은?
- 기존DataLake(EMR)대비 성능은?
- 유사CloudDW(snowflake vs redshift) 대비성능은?
앞으로도 Data를 둘러싼 시장은 Cloud DW를 기반으로 ELT, Mata Mesh, Reverse ETL등 새로운 생테계가 급속하게 발전할 것이고,
이를 위한 데이터 엔지니어/데이터 아키텍트 관점의 기술적 검토와 고민이 필요할 것 같다.
https://blog.naver.com/freepsw/222654809552
EMR 플랫폼 기반의 Spark 워크로드 실행 최적화 방안 - 정세웅, AWS 솔루션즈 아키텍트:: AWS Summit Online Ko...Amazon Web Services Korea
발표영상 다시보기: https://youtu.be/hPvBst9TPlI
S3 기반의 데이터레이크에서 대량의 데이터 변환과 처리에 사용될 수 있는 가장 대표적인 솔루션이 Apache Spark 입니다. EMR 플랫폼 환경에서 쉽게 적용 가능한 Apache Spark의 성능 향상 팁을 소개합니다. 또한 데이터의 레코드 레벨 업데이트, 리소스 확장, 권한 관리 및 모니터링과 같은 다양한 데이터 워크로드 관리 최적화 방안을 함께 살펴봅니다.
OpenSearch는 배포형 오픈 소스 검색과 분석 제품군으로 실시간 애플리케이션 모니터링, 로그 분석 및 웹 사이트 검색과 같이 다양한 사용 사례에 사용됩니다. OpenSearch는 데이터 탐색을 쉽게 도와주는 통합 시각화 도구 OpenSearch와 함께 뛰어난 확장성을 지닌 시스템을 제공하여 대량 데이터 볼륨에 빠르게 액세스 및 응답합니다. 이 세션에서는 실제 동작 구조에 대한 설명을 바탕으로 최적화를 하기 위한 방법과 운영상에 발생할 수 있는 이슈에 대해서 알아봅니다.
클라우드 네이티브 IT를 위한 4가지 요소와 상관관계 - DevOps, CI/CD, Container, 그리고 MSAVMware Tanzu Korea
최근 IT 시장은 ‘클라우드 네이티브’ 라는 컨셉을 적극적으로 받아들이면서 혁신의 속도를 높이기 위해 여러가지 노력을 기울이고 있습니다. 본 세션에서는 ‘클라우드 네이티브’ 를 이루는 4가지 요소인 DevOps, CICD, Container, MSA 를 간략하게 살펴보고 MSA 가 나머지 클라우드 네이티브 3 요소와 어떻게 상호작용하여 고객 여러분의 비즈니스에 도움이 되는지 알아봅니다. 그리고 MSA 로 이행하기 위한 조직면에서의 요건과 기술 면에서의 요건을 살펴봅니다.
Amazon SageMaker 모델 배포 방법 소개::김대근, AI/ML 스페셜리스트 솔루션즈 아키텍트, AWS::AWS AIML 스페셜 웨비나Amazon Web Services Korea
Amazon SageMaker 배포에 처음 입문 하고자 하는 분들을 위해 동작 방식을 설명하고 실행할 수 있는 가이드를 제공합니다. Amazon SageMaker 빌트인 4가지 서빙 패턴(리얼타임 추론, 배치 추론, 비동기 추론, 서버리스 추론)을 시작으로 프로덕션 적용을 위한 핵심 기능과 비용 절감을 위한 방법을 소개합니다.
AWS Glue는 고객이 분석을 위해 손쉽게 데이터를 준비하고 로드할 수 있게 지원하는 완전관리형 ETL(추출, 변환 및 로드) 서비스입니다. AWS 관리 콘솔에서 클릭 몇 번으로 ETL 작업을 생성하고 실행할 수 있습니다. 빅데이터 분석 시 다양한 데이터 소스에 대한 전처리 작업을 할 때, 별도의 데이터 처리용 서버나 인프라를 관리할 필요가 없습니다. 본 세션에서는 지난 5월 서울 리전에 출시한 Glue 서비스에 대한 자세한 소개와 함께 다양한 활용 팁을 데모와 함께 소개해 드립니다.
아름답고 유연한 데이터 파이프라인 구축을 위한 Amazon Managed Workflow for Apache Airflow - 유다니엘 A...Amazon Web Services Korea
Apache Airflow는 복잡한 데이터 처리 파이프라인의 전체적인 프로세스를 자동화하기 위한 워크플로우 관리 플랫폼이며 오픈 소스 커뮤니티에서 활발하게 기여하고 있는 top-level 프로젝트 입니다. AWS는 최근에 Amazon Managed Workflow for Apache Airflow (MWAA) 서비스를 정식 출시하였고, 본 강연에서는 Apache Airflow 및 MWAA를 소개하고 어떻게 AWS 서비스와 연동하여 데이터 처리 워크플로우를 구축할 수 있는지 데모를 통해 알려 드립니다.
데브시스터즈 데이터 레이크 구축 이야기 : Data Lake architecture case study (박주홍 데이터 분석 및 인프라 팀...Amazon Web Services Korea
데브시스터즈 데이터 레이크 구축 이야기 : Data Lake architecture case study
이 세션에서는 데브시스터즈의 Case Study를 통하여 Data Lake를 만들고 사용하는데 있어 요구 되는 사항들에 대해 공유합니다. 여러 목적에 맞는 데이터를 전달하기 위해 AWS 를 활용하여 Data Lake 를 구축하게된 계기와 실제 구축 작업을 하면서 경험하게 된 것들에 대해 말씀드리고자 합니다. 기존 인프라 구조 대비 효율성 및 비용적 측면을 소개해드리고, 빅데이터를 이용한 부서별 데이터 세분화를 진행할 때 어떠한 Architecture가 사용되었는지 소개드리고자 합니다.
Cloud dw benchmark using tpd-ds( Snowflake vs Redshift vs EMR Hive )SANG WON PARK
몇년 전부터 Data Architecture의 변화가 빠르게 진행되고 있고,
그 중 Cloud DW는 기존 Data Lake(Hadoop 기반)의 한계(성능, 비용, 운영 등)에 대한 대안으로 주목받으며,
많은 기업들이 이미 도입했거나, 도입을 검토하고 있다.
본 자료는 이러한 Cloud DW에 대해서 개념적으로 이해하고,
시장에 존재하는 다양한 Cloud DW 중에서 기업의 환경에 맞는 제품이 어떤 것인지 성능/비용 관점으로 비교했다.
- 왜기업들은 CloudDW에주목하는가?
- 시장에는어떤 제품들이 있는가?
- 우리Biz환경에서는 어떤 제품을 도입해야 하는가?
- CloudDW솔루션의 성능은?
- 기존DataLake(EMR)대비 성능은?
- 유사CloudDW(snowflake vs redshift) 대비성능은?
앞으로도 Data를 둘러싼 시장은 Cloud DW를 기반으로 ELT, Mata Mesh, Reverse ETL등 새로운 생테계가 급속하게 발전할 것이고,
이를 위한 데이터 엔지니어/데이터 아키텍트 관점의 기술적 검토와 고민이 필요할 것 같다.
https://blog.naver.com/freepsw/222654809552
EMR 플랫폼 기반의 Spark 워크로드 실행 최적화 방안 - 정세웅, AWS 솔루션즈 아키텍트:: AWS Summit Online Ko...Amazon Web Services Korea
발표영상 다시보기: https://youtu.be/hPvBst9TPlI
S3 기반의 데이터레이크에서 대량의 데이터 변환과 처리에 사용될 수 있는 가장 대표적인 솔루션이 Apache Spark 입니다. EMR 플랫폼 환경에서 쉽게 적용 가능한 Apache Spark의 성능 향상 팁을 소개합니다. 또한 데이터의 레코드 레벨 업데이트, 리소스 확장, 권한 관리 및 모니터링과 같은 다양한 데이터 워크로드 관리 최적화 방안을 함께 살펴봅니다.
Deview 2013 :: Backend PaaS, CloudFoundry 뽀개기Nanha Park
# Part 1
개발자의 주위환경에 대해 살펴보고 Cloud Foundry overview, Cloud Foundry 를 구성하는 components 마지막으로 Deploy 환경에 대해 알아보겠습니다.
# Part 2
설치부터 코드까지, 데모찍은 동영상은 추후 제공예정
부족한 부분은 nanhap@gmail.com 으로 문의메일 주시면 성심성의껏 답변 드리겠습니다. 감사합니다.
넥슨 글로벌 플랫폼 구축 이야기 : DB Migration case study (임현수 플랫폼인프라실 Technical Manager, 넥...Amazon Web Services Korea
넥슨 글로벌 플랫폼 구축 이야기 : DB Migration case study
이 세션에서는 넥슨의 Case study를 통하여 글로벌플랫폼 구축을 위해 기존 플랫폼을 AWS로 Migration하는 과정 및 발생가능한 이슈를 공유합니다. 넥슨이 DB서버를 이전하는 과정 속에서 마주한 기술적 고민과 이슈를 통하여 AWS 활용 시 고려해야 할 부분들에 대해 소개하고 함께 이야기 나누고자 합니다.
3. Data Platform v1
- 데이터
- WebLog는 S3
- 운영계 데이터는 데이터플랫
폼 RDS
- Scheduler로 Zeppelin사용
- Scala script실행
- external table
- DMS 는 ODS적재용
- Data Catalog로 Glue
4. Data Platform v1
Continue Legacy
- S3(ODS통합)
- Glue Data Catalog
- Scala
- 기존script를 수정/변환하기싫어
서
개선되어야할
- Zeppelin as Scheduler
- DMS
- RDS(ODS)
5. - stability 안정성
- Data
- 재실행시에도 데이터 정합성보장
- HA
- scalability 확장성
- Data
- User(개발자, 사용자)
- operability 운영편의
- monitor/alert
- rerun/backfill
- realtime 실시간
- 실시간 요건
Data Platform v2 개발목표(Data Pipeline)
6. Data Platform v2 개발방향
- 처음은 zeppelin으로 되어있는 scheduler에 대한 개선
a. 별로 고민 없이 airflow(oozie, luigi, azkaban, nifi등)
- EMR 사용개선/운영부담
a. 기존에 EMR을 terminate없이 1년넘게 사용하고 있고 EMR에 문제시 대응에 대한 압박이 있음
b. batch job단위로 EMR 생성하고 종료시 terminate해서 EMR 운영에 대한 부담을 줄임
- ODS 적재프로세스 및 활용 개선
a. RDS로 적재해서 다른 mart와의 join이 어렵고 데이터 용량도 커져서 적재시간이나 테이블관리
에 어려움
b. S3로 적재 후 glue catalog를 통해 hive/spark에서 활용
- 개발방향은
1. Airflow 도입
2. ODS 적재 개선
3. Data-Pipeline 안정화
8. - Workflow manager + scheduler
- 왜 Airflow인가?
- ETL아님! Bring Your Own ETL
- EMR, DMS, Glue,...
- python 기반
- DAG as a code
- google cloud composer
- DAG
- Directed Acyclic Graph – is a collection of all the tasks you want to run, organized in a way that reflects their
relationships and dependencies.
- operator
- An operator describes a single task in a workflow
Airflow소개
9. - Worker
- Operator 를 포함한 airflow task를 실행
- Executor
- Worker 실행
- SequentialExecutor, LocalExecutor, CeleryExecutor, DaskExecutor, KubernetesExecutor
- 동시에 여러가지 Worker를 실행시키려면 Celery 이상 실행
- Webserver
- DAG 실행, Monitor, 사
용자 및 Parameter관리
- Scheduler
- 주기적으로 DAG file
scan후 meta정보를 저
장
- metadata 기반으로
worker를 실행(Queuing)
Airflow소개
12. Airflow 도입
- 기존 batch 전환
- Livy
- zeppelin 에 scala spark 로 개발되어있어서, 최대한 재활용할 수 있도록
- scala 를 build안하고 사용가능
- 실제 Data 작업은 emr spark에서 이루어지는거라 build한거나 script나 별로 성능차이는
없다고 판단
- spark submit 에 옵션 대부분 사용가능
- scala, sql, r, pyspark
- Livy Operator 개발
- Spark Thrift server?
- EMR
- batch 단위마다 EMR을 띄우고 종료시에 EMR도 Terminate시킴
- EMR 생성,종료 함수 개발
- core, task 숫자 조절가능
- MASTER, CORE는 OnDemand, Task는 Spot Instance
13. - 안정적인 airflow 서버상태유지
- airflow 서버를 통한 데이터 전송 (ETL)은 금지!!
- DAG python은 단순하게. 분기문이나 복잡한 로직등은 배제
- 일자별data의 dependency가 있는 경우에는 DAG실행은 한번에 하나씩 날짜
순서대로
- depends_on_past : true
- max_active_runs = 1
- 시작날짜는 전날부터
- 'start_date': local_tz.convert(airflow.utils.dates.days_ago(2))
- UTC때문에 2일전으로 해야 전날배치부터 실행됨
- 특정일로 정하고 개발기간이 길어지게되면 production에 올릴때 날짜 수정해줘야함
- 날짜는 한국시간
- airflow화면에서 UTC로 나오기는 하는데, schedule은 한국시간으로 설정
- airflow에서 제공하는 date 변수 (ex) {ds}, {ds_nodash} ) 시간에서 UTC를 제공해서 한국시간으
로 하려면 자체적으로 변수생성
Airflow 개발
14. - folder구조
- compile-less 구조와 airflow서버에 부하를 덜 주기위한 목적으로
- folder는 DAG, library, script 의 세개로 나누어져있고
- DAG
- DAG를 구성
- script folder의 spark script를 livy/glue 등에 전달하는 역할
- library
- 공통함수, operator, sensor등
- script
- sql, scala, python script
- parameter화 되어있음
Airflow 개발
15. Airflow 개발
- DAG간 dependency
- task_sensor활용하고 DAG자체는 너무크지 않게 관리
- 기준일자?
- batch 실행이기때문에 기준날짜는 실행시간 전 schedule time
- 5 0 * * *
- 11/1일 에 실행되는 Job 의 경우 interval이 1day 이므로 10/31 00:05:00
- 0 2,4,10 * * *
- 11/1일 2시에 실행되는 Job의 경우 기준일시는?
16. Airflow 운영안정성
- EMR이 도중에 죽을경우를 대비해서 (Master, Core는 ondemand라서 죽을일
은 거의 없기는 하지만 AWS장애등 상황대비) , EMR 상태확인 및 재시작
- canary dag
- airflow 상태를 위한 task
- 한시간에 한번씩 task Schedule시간, 실행시간 비교
- 오래된 Task가 있는지 검사
- log retention
- log 는 S3 영구적으로 적재하고 , local log는 삭제하도록
- airflow에서 현재실행되는건 local log를 보고 이전log는 s3에서 가져옴
- https://github.com/teamclairvoyant/airflow-maintenance-dags/blob/master/log-cleanup/airflow-log-cleanup.py
18. - DMS문제점
- migration용이라서 전체데이터만 가져옴
- 테이블이 커지면서 변경데이터만 가져오거나,
- 개인정보에 대해서 안가져오거나(이건됨), 변환해서 가져오고 싶을때
- mysql에 view같은걸 만들어서 처리할수도 있으나, 운영계에 권한이 없는경우도 많고
- 원하는 데이터만 가져오는데는 한계가 있음
- 검토
- lambda
- 데이터적재에는 부적합
- 시간제한 15분
- python Queue사용못함
- glue ELT Job(python)
- python 개발이 필요함
- glue python 에 기본적으로 설치된 connector가 별로 없고,
- 추가 package 설치도 안된다
ODS
19. - 검토
- glue ELT Job(spark)
- glue data catalog를 활용하면 script개발 용이
- glueContext 가 좋다고 하는데 sparkContext만큼 기능이 많지는 않다. 하지만 toDF() 를
통해 dataframe으로 바꿔서 이후작업하면됨
- repartition 및 다른 기능사용을 위해서 dataframe으로 변환해서 사용중
- spot instance를 사용한 EMR에 비해서 가격적인 이점 ?
- jar를 추가할수 있으나 EMR Bootstrap actions 처럼 script로 편하지는 않음
- glue instance 시작하는데 9~10분가량 걸림
- spark특성상 stream ETL이 안되고 데이터가 커도 가지고 있어야 하지만, 전체적제하는
테이블의 경우에는 size가 적고, 큰 테이블에 경우 변경적제해서 ETL 데이터 size가 크지
않음
- 개발환경 구성하기 까다로움.
- dev endpoints 랑 notebooks 를 만들어야함.
- dev endpoint는 계속띄어놓거나 개발할때마다 만들어야하는데 계속띄워 놓는것도
부담($)되고 개발할때마다 띄우는건 귀찮다
ODS
20. Glue Jobs
- glue job 시작이 delay 되는 log
- mart 관련 batch를 전환하는데는 아직 시기상조인듯 하나, ODS 적재에는 개발
이 편해서 Glue ETL(spark)사용
- glue ETL(python)이 좀 더 개선되면 ETL 목적으로 사용할수도 있을듯
21. 1. glue 적재 준비(Jobs생성)
- Glue > ELT > Jobs 에서 add Job
- airflow에서 실행을 위한 job
- job name, Dependent jars path, Worker Type/capacity 항
목만 사용하고 script는 airflow에서 put 하므로 script 내용은
중요하지 않음
2. 개발
- Spark script
- Glue > ELT > Jobs 에서 add Job
- rds -> S3로 원하는 테이블은 연동하는 spark
script를 만듬
- toDF로 변환후 table insert, file write 등의 작업 수행
- 컬럼이 많은 경우 개발편하게 하려고 하는작업.
ODS(Glue spark job) 적재 개발
22. ODS(Glue spark job) 적재
2. 개발
- airflow
- glue job에서 만든 scala script를 s3에 put
- boto3 glue 활용해서 glue job 실행
- 실행되는 script는 airflow에서 put한 script
- 장점
- etl source 를 airflow repo에서 관리
- 날짜 변수등을 airflow에서 전달 가능
24. airflow 안정화 목표
- airflow 에 3개의 component에 대한 안정화
- webserver, scheduler, worker
- webserver
- down되어도 유실될 데이터는 없고, 빠른시간내에 재기동
- scheduler HA
- High Availability
- worker
- HA까지는 아니지만, 적당한 가용성과 작업을 처리할 수 있는 여러개의 worker가 필요
- source 배포
- git pull로 동기화하는걸 git에서 자동으로 동기화
25. airflow 안정화 - scheduler failover controller
airflow-scheduler-failover-controller
- scheduler 에 대한 failover
- 꾸준히 update되는거 같기는함
- scheduler HA를 위한 목적에 부
합해서 좋아보이나
- Kubernetes ?!
26. Feature apply(data pipeline 입장)
Service discovery and load balancing 필수. airflow webserver
Automatic bin packing 기본기능
Storage orchestration 기본기능
Self-healing 필수! 이거때문에 도입
Automated rollouts and rollbacks 안씀. airflow image 배포가 자주있지 않음
Secret and configuration management 필수. Secret/ConfigMap활용
Batch execution 안씀. Batch는 Airflow로 하기때문에
Horizontal scaling
Airflow에는 적용하지 않았음. Worker 구조상 적용해볼
만함
- 컨테이너화된 애플리케이션을 자동으로 배포, 스케일링 및 관리해주는 오픈소
스 시스템
EKS, Kubernetes?
27. EKS를 통한 airflow 안정화 목표(구현)
- Webserver - LoadBalance
- Scheduler - HA, fault tolerant
- Worker - multiple worker, HA, fault tolerant
- airflow deployment using git sync
30. - pod hang걸릴 경우에 대한 대비
- k8s deployments 에 livenessprobe
- webserver, scheduler에 대한 health check
- webserver : /health path에 httpGet으로 check
- scheduler : airflow metadb의 latest_heartbeat 시간과 현재 시간 차이 check
- airflow metadb check하는 부분을 python으로 실행(deployments yaml에 추가)
- EKS monitoring
- EKS 구성요소(pod, deployments 등) 에 대한 변화가 있을경우 slack
- https://github.com/bitnami-labs/kubewatch 를 쓰기는 했는데 설정적용이 안맞아서 다른 blog참조
(https://medium.com/@harsh.manvar111/kubernetes-event-notifications-1b2fb12a30ce)
airflow를 위한 EKS 설정/구성
31. - source 배포확인
- 자동배포(주기적)이기 때문에 source가 airflow에 배포되었는지 확인하기 위함
- git commit message와 hash 값을 노출
- airflow scheduler 최종시간 노출
airflow를 위한 EKS 설정/구성
32. - DAG 간 관계도
- DAG간에 dependency 관계를 diagram으로 표시
- 작업간에 관계파악, 재작업등에 용이
airflow를 위한 EKS 설정/구성
33. 더 생각해볼거
- 사용하는 사람/팀이 많아지면 배포?
- Fork/PR
- Scale out worker
- Event(git change) based scheduler
34. airflow 관련 site
- slack channel : apache-airflow.slack.com
- trouble shooting, Meetup
- lyft blog : https://eng.lyft.com/running-apache-airflow-at-lyft-6e53bb8fccff
- one of airflow committer : https://medium.com/@r39132/apache-airflow-grows-up-c820ee8a8324