【레포트】[초급] AWS 에서의 데이터 수집, 분석, 그리고 기계학습 #AWSSummit

본 글은 참가해서 들었던 세션 「【初級】AWSでのテー収集、分析、そして機械学習」에 대한 레포트입니다.
2019.06.13

この記事は公開されてから1年以上経過しています。情報が古い可能性がありますので、ご注意ください。

안녕하세요! 클래스메소드 주식회사(Classmethod Inc.)의 김태우입니다.

저희 회사가 한국에서는 아직 잘 알려져 있지 않지만 일본에서 2018년에는 "올해의 AWS 프리미엄 파트너"로 선정되기도 한 만큼 일본 최고의 AWS 프리미엄 파트너로서 2019년에도 맹활약하고 있습니다.

2019년 6월 12일(수) 부터 2019년 6월 14일(금) 까지 치바현의 마쿠하리 멧세(幕張メッセ) 에서 AWS Summit Tokyo 2019 가 개최되었는데요, 저도 이번에 부서 차원에서 참가를 장려하여 참가하게 되었습니다.

본 글은 참가해서 들었던 세션 「【初級】AWSでのテー収集、分析、そして機械学習」에 대한 레포트입니다.

본 세션에 대하여

  • 야마자키 쇼타
  • 솔루션 아키텍트
  • AWS Japan, 기술총합본부

목차

  • 데이터 활용의 흐름과 데이터 레이크
  • 최초 데이터 활용 플로우의 구축
  • 기계 학습의 활용
  • 정리

데이터 활용의 흐름과 목적

  • 데이터를 기준으로 의사결정을 할 수 있도록
  • 예를 들어 e-Commerce 사이트에서는 데이터를 활용하여 아래와 같은 일들을 처리할 수 있다.
  1. 취급 상품의 결정
  2. 판매 지역의 결정
  3. 상품 가격을 결정
  4. 상품 가격을 변경
  5. 상품 랭킹을 변경
  6. 상품 추천

크게 두가지 종류의 기술이 사용됨

  1. 데이터 소스를 가시화하고(BI 툴) -> 데이터 분석
  2. 데이터 소스를 기계학습 시켜서 추론

데이터 기반 의사결정을 위해 필요한 것

  1. 충분한 양의 데이터가 필요
  2. 데이터 분석이나 기계학습을 실행하는 구성
  3. 평가지표와 그것을 계산하는 구성

데이터 분석의 흐름

  1. 비즈니스 과제로 부터 시작
  2. 데이터 수집
  3. 데이터 분석 또는 기계학습
  4. 평가
아무리 뛰어난 기술을 사용하고 있더라도 비즈니스에서 당면한 문제를 풀 수 없으면 의미가 없음.
반드시 비즈니스 과제로 부터 시작하는 자세가 필요함

가장 시간이 걸리는 곳은?

  • 다른 것도 다 시간 걸리지만 데이터를 전처리 하는 부분이 가장 시간이 오래걸림
  • 즉, 버즈니스 적인 측면에서 봐도, 가능한 빨리 데이터를 수집하고 전처리 하는 것이 필요함

하고싶은 것은 반드시 나중에 변하고, 증가하기 마련이다

  • 이커머스 사이트도 처음에는 가격정책이나 상품 관련된 정책을 정할 수 없었지만, 점점 그 중요성을 실감하고 도입한 것

데이터레이크

  • 데이터베이스, 로그 파일, IoT 디바이스로부터의 데이터를 변환시키지 않고 그냥 있는 그대로를 저장함
  • Amazon S3 를 활용해서 데이터레이크를 구축하는 것을 소개

왜 S3?

  • 데이터를 임의의 파일형식으로 보존할 수 있다!! (이게 중요)
  • 용량 제한이 없음
  • 데이터 신뢰도 99.99999999% (9가 몇개인지..)
  • 낮은 비용
  • 다양한 권한 관리 및 암호화에 의한 시큐리티 관리
  • API 에 의해 다양한 프로그램 언어나 서비스에서 연계 (이것도 중요!!)
실제로 1만개 이상의 기업이 S3 를 활용해 데이터 레이크를 구축했음.

S3 를 중심으로 한 다양한 데이터 활용 서비스 활용

  • IoT
  • 데이터 전송, 백업
  • 데이터 아카이브
  • 콘텐츠 전송
  • 기계학습, AI서비스
  • 가시화, BI
  • 데이터 카탈로그
  • ETL
  • 데이터 분석

무엇부터 해야할까?

  • 비즈니스 과제로 부터 시작해야함
  • 데이터를 빠르게 수집하는 것이 중요하지만 그것을 목적화시켜야만 한다.
  • 먼저, 일체의 데이터 활용 플로를 만들어보기를 추천한다. 예를 들어,
  1. 로그파일이나 DB 에서
  2. S3 에서 저장하고
  3. 가시화하고 4.의사결정과 평가를 진행한다.

최초의 데이터 활용 플로우와 구축

데이터 활용 플로우 설계시의 포인트

  1. 만능 툴은 존재하지 않는다. --> 다양한 툴을 활용
  2. 하고 싶은것은 반드시 변하게 된다 --> 마니지드 서비스를 이용
  3. 다루고 싶은 데이터 량도 변하기 마련 --> 스케일 아웃하기 위해 서버리스로

서버리스란?

  1. 프로비저닝이나 관리대상이 없음
  2. 처리한 부분만 비용 청구
  3. 사용량에 대해 자동적으로 스케일링 됨
  4. 가용성이 뛰어남

누가 어떻게 데이터를 이용할까? - 분석 기반

  • SQL 으로 분석하는 경우에는 Amazon Athena
  • 관리자가 볼때는 RedShift
  • 하둡이나 스파크로 분석하고 싶다. 그리고 엔지니어가 있다 -> Amazon EMR
  • BI 화면에서 분석, 비엔지니어가 볼 때는 Amazon QuickSight
  • 데이터 분석가가 활용하는 경우에는 3rd part tools + Amazon Elasticsearch service
  • Jupyter Notebook 을 사용하는 파이썬 분석을 하는 데이터 사이언티스트가 있다면 Amazon SageMaker

Amazon QuickSight - 서버리스의 BI 서비스

  • 웹 브라우저에서 기계학습이 가능함 (서버 등은 필요 없음)
  • S3 나 직접 업로드한 데이터를 이용할 수도 있음
  • Athena 와 S3 를 이용하여 직접 QuickSight 에서 쿼리날리는 것도 가능함

데이터 수집

  • 가능한 세세하게 데이터를 수집하는 것을 추천함

어떤 경로로 데이터를 수집할까?

  • 로그 데이터는 fluentd
  • IoT 데이터는 IoT Core 를 활용해서 Kinesis Data Firehose 를 통해 S3 에 저장
  • 데이터베이스에서는 데이터파일 자체를 S3 에 저장하거나 AWS Glue 를 통해 S3 에 저장
  • 직접 S3 으로 업로드

ETL 처리의 서버리스가 기본 방침

  • 15분 이내의 소규모 처리는 S3에 저장하는 람다
  • 어느정도 규모 있는 AWS Glue 의 Python Shell
  • 큰 규모는 AWS Glue 의 Spark Job

심플한 데이터 활용 플로우 예

  • 데이터베이스 및 로그 데이터가 S3 에 저장되고
  • ETL 은 AWS Glue 나 Lambda 를 통해 다시 S3에 저장
  • 이때 사용자는 QuickSight 에서 Athena 를 통해 S3 의 내용을 볼 수 있음

기계학습의 기본적인 흐름

  • 과거의 데이터를 기반으로 학습하여 추론 등의 태스크 수행

기계학습에서 중요한 것

  1. 이것도 비즈니스 과제에서부터 출발한다.
  2. 기계학습으로 풀 수 있는 과제들을 이해한다. (컴퓨터 비전, 자연어 처리, 시계열 예상 등)
  3. 주력할 영역을 정한다. 기계학습의 모든 부분을 회사에서 직접 풀 필요는 없다. 클라우드 등을 적절히 활용하자!

QuickSight ML Insights

  • 전문가가 필요없이 생각할 수 있는 인사이트 기능을 제공
  1. 기계학습 베이스의 이상검사
  2. 기계학습베이스의 예측
  3. 자동으로 생성되는 해설 --> 기계학습으로 나온 결과물을 이해하기 쉽게 설명해줌

AWS 가 제공하는 기계학습 서비스의 스택

  • AI 서비스 : 기계학습을 깊이 있게 이해하지 않고도 어플리케이션에 적용할 수 있는 서비스
  • ML 서비스 : 기계학습 모델을 고속 개발, 학습, 디플로이 할 수 있음
  • ML 프레임워크 & 인프라스토락쳐 : TensorFlow, Keras

Amazon Rekognition

  • 딥러닝에 의한 영상인식 서비스
  • 연령이나 표정, 물체 등을 인식

AmazonPersonalize

  • 기계학습 경험이 전혀 없어도 상관없이 사용할 수 있는 추천서비스
  • 데이터를 읽어들이고, 검토하고, 인식하고, 알고리즘을 선택하는 등 Personalize 에서 이 모든걸 다 알아서 해줌

Amazon SageMaker

  • 기계학습의 워크플로우 전체를 커버하는 매니지드 서비스
  • 라벨링 -> 모델 개발 -> 학습 -> 디플로이(활용)

이해하고 싶은 것과 스킬을 합쳐서 툴을 선택

  • AI 서비스 : 전혀 경험이 없는자
  • ML 서비스 : 서비스에서 모델을 학습시켜서 사용
  • ML 프레임워크 & 인프라스토락쳐 : 직접 알고리즘 개발 등

기계학습의 활용 예

  • 앱 서버에서 Kinesis Data Firehose 를 통해 S3
  • 이걸 이용해서 학습하고
  • Amazon Personalize 또는 Amazon SageMaker 에서 학습한 데이터와 앱 서버에서 들어오는 데이터를 이용해 예측한다.
  • 그리고 이걸 QuickSight 와 Athena 를 이용해 S3 를 볼 수 있음

정리하며

  1. 항상 비즈니스 문제 먼저 생각!
  2. 데이터 레이크는 데이터 활용의 기반이 된다.--> S3 를 활용하자
  3. 목적과 사용하는 사람에 맞는 툴을 선택!