2. 22020 All Rights Reserved by Mesh Korea Co., Ltd.
발표자 소개 - 박동현
University of Illinois Urbana-Champaign (UIUC) 컴퓨터과학 학사
SK 커뮤니케이션즈 선행연구원 (스킨 메뉴효과, 음악 개인화 추천)
벅스뮤직 추천 엔진 개발자 (빅데이터 인프라 및 개인화 추천 엔진)
메쉬코리아 백엔드 개발자 (경로 최적화 엔진, 부릉 서버, 데이터 엔지니어링)
https://www.linkedin.com/in/thomas-hyun-park-m1004/
https://github.com/GomKeeper
3. 32020 All Rights Reserved by Mesh Korea Co., Ltd.
메쉬코리아
- IT 기반의 물류 플랫폼 스타트업
- 2019년 예비유니콘 선정
- 투자유치 1,000 억 (네이버, 현대자동차 등)
- 국내 350 여개의 거점 (전국 기준 70%)
- 주요 법인 화주(버거킹, 올리브영, CU 등)
- 약 10,000 개 상점 & 6,000 명의 기사
4. 42020 All Rights Reserved by Mesh Korea Co., Ltd.
부릉
- 프리미엄 배송 물류망
- 2륜 배송 & 4륜 배송 서비스 제공
- 배송 경로 & 배차 최적화 TMS 엔진
- 2륜 + 4륜 = 당일배송 서비스
- 크라우드 소싱 부릉 프렌즈
5. 52020 All Rights Reserved by Mesh Korea Co., Ltd.
목차
❏ AWS Glue를 선택한 이유
❏ AWS Glue를 버린 이유
❏ 우리가 선택한 Data Pipeline Architecture
7. 72020 All Rights Reserved by Mesh Korea Co., Ltd.
기존 데이터 분석 작업
- 상점 배달완료 시간 예측
- 기사 픽업 시간 예측
- 배달 알리미
8. 82020 All Rights Reserved by Mesh Korea Co., Ltd.
데이터 사이언스 실 설립
- 2019년 3월 김명환 실장님 합류
데이터 사이언스 업무 총괄
- ML / AI 의 초석인 데이터 수집 강화
- 사내 구성원이 쉽게 사용 할 수 있는
데이터 플랫폼 구축
9. 92020 All Rights Reserved by Mesh Korea Co., Ltd.
데이터 사이언스 실의 과제들
- 기사의 주차지점 확보
- 자동배차
- 오더 수 예측
10. 102020 All Rights Reserved by Mesh Korea Co., Ltd.
통합 Data Platform Architecture
11. 112020 All Rights Reserved by Mesh Korea Co., Ltd.
통합 Data Pipeline 주요 목표 및 요구 사항
주요 목표: 파편화된 데이터를 S3로 seemless하게 &
effortless 하게 적재하고 관리하자.
요구 사항들
1. 기존 데이터를 Data Lake로 ETL하는 방법 도출
2. 소스코드 모듈화 및 SCM 관리 확보
3. 새로 추가되는 data pipeline도 고려한 확장성
4. Scaling Data를 효과적으로 처리하는 생산성 확보
12. 122020 All Rights Reserved by Mesh Korea Co., Ltd.
최초의 시도 - Database Migration Service(DMS)
- AWS Summit 2019의 AWS
Database 기술 자문
- RDS -> S3를 위한 AWS Database
Migration Service (DMS)의 적용 여부
확인
13. 132020 All Rights Reserved by Mesh Korea Co., Ltd.
DMS의 문제점
- 현재 DMS Task에서 업데이트 주기를 설정할 수 있는 부분이 없음.
- AWS Technical Support 문의한 결과, target endpoint가 S3 인 경우 batch
mode가 동작하지 않는다는 feedback 받음. (2019.05)
- 새로운 서비스를 위한 data pipeline에 적용 어려움
14. 142020 All Rights Reserved by Mesh Korea Co., Ltd.
두번째 시도 - AWS Glue
Effective Data Lake session in AWS
Summit 2019
AWS에서 제공하는 fully-managed Data
Orcastration 서비스
https://www.slideshare.net/awskorea/effective-data-lake-aws-aw
s-summit-seoul-2019
15. 152020 All Rights Reserved by Mesh Korea Co., Ltd.
AWS Glue의 특징
- Serverless
- Databases (tables & connections)
- Crawler
- Job & Trigger
16. 162020 All Rights Reserved by Mesh Korea Co., Ltd.
AWS Glue 주요 확인 사항
AWS Glue는 우리 목표를 얼마나 충족 시킬 수 있을지 확인 필요
1. 기존 데이터를 Data Lake로 ETL하는 방법 도출
2. 소스코드 모듈화 및 SCM 관리 확보
3. 새로 추가되는 data pipeline도 고려한 확장성
4. Scaling Data를 효과적으로 처리하는 생산성 확보
18. 182020 All Rights Reserved by Mesh Korea Co., Ltd.
Serverless is not effortless
- 모든 script 구동 시 약 10분의 boot up 시간 소요
- 디버깅 시 1시간에 최대 6번 수정 가능
- 하나의 스크립트에 여러개의 데이터를 처리해야 함 (모듈화 anti-pattern)
- Resource Unavailable!!!!! (문의하니 재시도 하라는 답변만 반복)
19. 192020 All Rights Reserved by Mesh Korea Co., Ltd.
GlueContext 활용 가치 떨어짐
- GlueContext = subclass of SparkContext
- Glue의 핵심 기능 (schema 자동 적용 등)
- Dev endpoint에서는 GlueContext 사용 불가
- 모든 script를 SparkContext 기준으로 작성
20. 202020 All Rights Reserved by Mesh Korea Co., Ltd.
비용 절감 효과 반감
- dev endpoint 유지비 >= EMR 유지비
(개발을 위해 EMR을 실행하고 있는 격)
- 실행 하는 script가 많아질수록 EMR이
유리 (spot instance 활용 가능)
21. 212020 All Rights Reserved by Mesh Korea Co., Ltd.
Source Code Management(SCM) 어려움
- editor 수준의 Glue Script 수정화면
(vs lambda)
- 모든 코드는 S3 내 존재
- 스크립트의 모듈화 & 경량화의 anti-pattern
22. 222020 All Rights Reserved by Mesh Korea Co., Ltd.
Jobs 관리 툴 부재
- 모든 Job이 단일 리스트로 관리 됨
- 환경 별 & 서비스 별 분리 불가
- 공통 코드 부분 명시 불가
23. 232020 All Rights Reserved by Mesh Korea Co., Ltd.
No DAGs
- 여러개의 Job으로 엮여 있는 DAG
확인 불가
- 2019년 하반기 workflow 탭
구현됐으나, 아직 미흡
24. 242020 All Rights Reserved by Mesh Korea Co., Ltd.
Backfill 기능 부재
- 별도의 backfill 용 코드 또는 스크립트 제작 필요
25. 252020 All Rights Reserved by Mesh Korea Co., Ltd.
버리게 된 이유가 7가지
1. Serverless 부작용
2. GlueContext 효용성 떨어짐
3. 비용 절감 미비
4. SCM 어려움
5. Jobs 관리 툴 부재
6. No DAGs
7. Backfill 미지원
결론: 우리의 주요 목표를 충족 시키기에는 아직 많이 부족한 서비스
27. 272020 All Rights Reserved by Mesh Korea Co., Ltd.
Data Pipeline Architecture 요구사항
1. Data ETL
2. 모듈화 & SCM
3. 확장성
4. 생산성
28. 282020 All Rights Reserved by Mesh Korea Co., Ltd.
AWS EMR with Apache Airflow
a platform to programmatically author,
schedule and monitor workflows
Workflows are defined as code, they
become more maintainable,
versionable, testable, and collaborative.
(python)
https://airflow.apache.org/
29. 292020 All Rights Reserved by Mesh Korea Co., Ltd.
즉시 실행
- Airflow Trigger로 EMR 즉시 실행
- Airflow Test로 바로 테스트
- API 방식으로 실행 가능
30. 302020 All Rights Reserved by Mesh Korea Co., Ltd.
DAGs
- python 코드 기반의 DAG 구현
- 다양한 작업들을 관리하기 용이함
- 우월한 시각화 제공
31. 312020 All Rights Reserved by Mesh Korea Co., Ltd.
Seamless 한 SCM
- DAG와 script를 같은 repository에서
관리
- 코드 내 Versioning 적용 가능
32. 322020 All Rights Reserved by Mesh Korea Co., Ltd.
환경 분리 용이
- 환경 별 (개발, QA, 상용) 코드 분리
- Business Analyst 들도 손쉽게 실행 가능
33. 332020 All Rights Reserved by Mesh Korea Co., Ltd.
다양한 plugin 존재
- 연동 가능한 많은 plug-ins
- 직접 plug-in 제작 가능
34. 342020 All Rights Reserved by Mesh Korea Co., Ltd.
Native Backfill 지원
- execution_date 기반의 backfill 자체 지원
35. 352020 All Rights Reserved by Mesh Korea Co., Ltd.
다양한 작업의 스케줄링
- EMR 뿐만 아니라 다른 task 실행 가능 (ex. bash)
36. 362020 All Rights Reserved by Mesh Korea Co., Ltd.
Airflow의 단점
- DAG와 Git의 직접 연동 부재
(별도의 개발 필요)
- 설치 및 관리 비용 필요
(k8s 로 관리 및 모니터링 비용 최소화)
- UTC Timezone
37. 372020 All Rights Reserved by Mesh Korea Co., Ltd.
결론
AWS Glue는 Data ETL, SCM, 확장성,
생산성을 모두 고려하기엔 부족한 서비스
계속해서 발전해 나가는 모습 발견
(우리는 베터테스터?)
계속해서 사용자의 피드백을 잘 적용하는 AWS
38. 382020 All Rights Reserved by Mesh Korea Co., Ltd.
결론
- AWS Glue는 별도의 지식없이 간단히
구현 가능
- 우리의 니즈가 Glue의 발전 속도보다
빠르기에 직접 만들어가는 방식 채택
AWS Glue 발전 속도
메쉬코리아 요구사항
39. 392020 All Rights Reserved by Mesh Korea Co., Ltd.
데이터사이언스 발전 방향
다양한 분석 데이터 존재
state-of-the-art 기술 활용 가능
40. 402020 All Rights Reserved by Mesh Korea Co., Ltd.
인재 채용
- Data Engineer
- Data Scientist
- A.I. Engineer
- DataInfraOps
- Software Engineer (Java & PHP)
- Engineer Manager
- DevOps
https://www.wanted.co.kr/company/676