AWS Glue のご紹介...1 #AWSDBDay ETL をサーバーレスで実現する新サービスAWS Glue...

42
#AWSDBDay ETL をサーバーレスで実現する新サービス AWS Glue のご紹介 2017年7月5日 アマゾン ウェブ サービス ジャパン ソリューションアーキテクト 下佐粉 昭 @ simosakoAWS Solution Days 2017 AWS DB Day

Transcript of AWS Glue のご紹介...1 #AWSDBDay ETL をサーバーレスで実現する新サービスAWS Glue...

Page 1: AWS Glue のご紹介...1 #AWSDBDay ETL をサーバーレスで実現する新サービスAWS Glue のご紹介2017年7月5日 アマゾンウェブサービスジャパン ソリューションアーキテクト

1 #AWSDBDay

ETL をサーバーレスで実現する新サービスAWS Glue のご紹介

2017年7月5日

アマゾン ウェブ サービス ジャパン

ソリューションアーキテクト

下佐粉 昭 (@simosako)

AWS Solution Days 2017 ~ AWS DB Day ~

Page 2: AWS Glue のご紹介...1 #AWSDBDay ETL をサーバーレスで実現する新サービスAWS Glue のご紹介2017年7月5日 アマゾンウェブサービスジャパン ソリューションアーキテクト

2 #AWSDBDay

はじめに

• AWS Glueは現在Preview中のサービスです

• 本資料に記載した内容はGA(正式リリース)までに予告なく変更される可能性があります

• Twitterのハッシュタグは #AWSDBDay です

Page 3: AWS Glue のご紹介...1 #AWSDBDay ETL をサーバーレスで実現する新サービスAWS Glue のご紹介2017年7月5日 アマゾンウェブサービスジャパン ソリューションアーキテクト

3 #AWSDBDay

自己紹介

下佐粉 昭(しもさこ あきら)Twitter - @simosako

所属:アマゾン ウェブ サービス ジャパン技術統括本部 エンタープライズソリューション部ソリューションアーキテクト

好きなAWSサービス:Redshift, RDS, S3人間が運用等から解放されて楽になるサービスが好きです

Page 4: AWS Glue のご紹介...1 #AWSDBDay ETL をサーバーレスで実現する新サービスAWS Glue のご紹介2017年7月5日 アマゾンウェブサービスジャパン ソリューションアーキテクト

4 #AWSDBDay

アジェンダ

• データレイクを中心とした大規模データ分析基盤

• クラウド上のETL - AWS Glue

• AWS Glueの機能

• まとめ

Page 5: AWS Glue のご紹介...1 #AWSDBDay ETL をサーバーレスで実現する新サービスAWS Glue のご紹介2017年7月5日 アマゾンウェブサービスジャパン ソリューションアーキテクト

5 #AWSDBDay

データレイクを中心とした大規模データ分析基盤

Page 6: AWS Glue のご紹介...1 #AWSDBDay ETL をサーバーレスで実現する新サービスAWS Glue のご紹介2017年7月5日 アマゾンウェブサービスジャパン ソリューションアーキテクト

6 #AWSDBDay

①データをデータレイクに集め、多様な分析につなげる

②分析はスケールアウト可能なインフラの上で実現

大規模データ分析 on クラウド

収集 データレイク

(保存)

分析 可視化

データを収集し、データレイクへ格納

全期間保存共通APIでアクセス

可視化

スケールアウト可能な技術

分析スケールアウト可能な技術

AP

I

Page 7: AWS Glue のご紹介...1 #AWSDBDay ETL をサーバーレスで実現する新サービスAWS Glue のご紹介2017年7月5日 アマゾンウェブサービスジャパン ソリューションアーキテクト

7 #AWSDBDay

データレイク

• 多様なデータを一元的に保存

• データを失わない

• サイズ制限からの開放

• 決められた方法(API)ですぐにアクセスできる

センサーデータ

非構造化ファイルテキストファイル

RDBMS

データレイク

API呼び出しによる連携

Page 8: AWS Glue のご紹介...1 #AWSDBDay ETL をサーバーレスで実現する新サービスAWS Glue のご紹介2017年7月5日 アマゾンウェブサービスジャパン ソリューションアーキテクト

8 #AWSDBDay

Amazon S3によるデータレイクの実現

• 上限無し:サイジング不要

• 高い耐久性:99.999999999%

• 安価:• $0.025/GB/月*(スタンダード)

• $0.019/GB/月*(標準-低頻度アクセス)

例)10TBの保存で約2.1万円/月**

• APIアクセス• 多様な言語にライブラリを提供

• AWS各種サービスと連携

データレイク

Amazon

EMR(Hadoop)

Amazon

Redshift

Amazon

API

Gateway

Amazon

S3

センサーデータ

非構造化ファイルテキストファイル

RDBMS

* 費用は2017年7月時点での東京リージョンでの価格です** 1USドル = 110円で、標準-低頻度アクセスでの試算

Amazon

Machine

Learning

Page 9: AWS Glue のご紹介...1 #AWSDBDay ETL をサーバーレスで実現する新サービスAWS Glue のご紹介2017年7月5日 アマゾンウェブサービスジャパン ソリューションアーキテクト

9 #AWSDBDay

スケールアウトが鍵

• スケールアップもスケールアウトもクラウドでは容易

• …しかしスケールアップには限界がある(CPU、メモリ)

スケールアウト可能なテクノロジー

=規模の増加に耐えうる設計

S

XL

スケールアップ

スケールアウト

Page 10: AWS Glue のご紹介...1 #AWSDBDay ETL をサーバーレスで実現する新サービスAWS Glue のご紹介2017年7月5日 アマゾンウェブサービスジャパン ソリューションアーキテクト

10 #AWSDBDay

スケールアウト ≠ 高価• クラウドではスケールアウトがコスト・時間の両面で効率的• 必要な時に必要なだけノードを追加できる• ノードを増やしても利用時間が短くなればコストは同じ

処理時間

8時間 処理時間

2時間

JOB

16ノードに拡張

JOB

4ノード×8時間=32

16ノード×2時間=32

Page 11: AWS Glue のご紹介...1 #AWSDBDay ETL をサーバーレスで実現する新サービスAWS Glue のご紹介2017年7月5日 アマゾンウェブサービスジャパン ソリューションアーキテクト

11 #AWSDBDay

スケールアウト可能な分析サービス

マネージド, 標準技術, スケールアウトが選択の鍵

Amazon

Redshift

Amazon

EMR

Amazon

Athena

マネージド マネージド

DWH(RDB)

マネージドHadoop/Spark環境

マネージドクエリ環境

標準・デファクトスタンダード技術

SQL標準 Hadoop/Spark(デファクト)

SQL標準

スケールアウト ユーザ操作でスケールアウト

ユーザ操作でスケールアウト

自動的にスケールアウト

Page 12: AWS Glue のご紹介...1 #AWSDBDay ETL をサーバーレスで実現する新サービスAWS Glue のご紹介2017年7月5日 アマゾンウェブサービスジャパン ソリューションアーキテクト

12 #AWSDBDay

分析

分析

データレイク

全体図(組み合わせ例)①データをデータレイクに集め、多様な分析につなげる

②分析はスケールアウト可能なインフラの上で実現

③データソースからの収集やプリプロセス(ETL)は?

収集

可視化

Redshift QuickSight

Amazon S3

BI+EC2

プリプロセス

全データ 変形済

Athena

Page 13: AWS Glue のご紹介...1 #AWSDBDay ETL をサーバーレスで実現する新サービスAWS Glue のご紹介2017年7月5日 アマゾンウェブサービスジャパン ソリューションアーキテクト

13 #AWSDBDay

クラウド上のETLAWS Glue

Page 14: AWS Glue のご紹介...1 #AWSDBDay ETL をサーバーレスで実現する新サービスAWS Glue のご紹介2017年7月5日 アマゾンウェブサービスジャパン ソリューションアーキテクト

14 #AWSDBDay

AWS上のETL(Extract, Transform and Load)サービス

巨大データへのETL処理を...

「スケールアウト」で対応「サーバレス」で提供

AWS Glue (Preview)

https://aws.amazon.com/jp/glue/

Page 15: AWS Glue のご紹介...1 #AWSDBDay ETL をサーバーレスで実現する新サービスAWS Glue のご紹介2017年7月5日 アマゾンウェブサービスジャパン ソリューションアーキテクト

15 #AWSDBDay

Glueはスケールアウト処理を実現

• ベース技術にSparkを採用

• 大規模データに対し自動的にスケールアウト

• スケールアウトのための設計が不要

JOB

Page 16: AWS Glue のご紹介...1 #AWSDBDay ETL をサーバーレスで実現する新サービスAWS Glue のご紹介2017年7月5日 アマゾンウェブサービスジャパン ソリューションアーキテクト

16 #AWSDBDay

サーバレスのジョブ実行

• サーバレス:サーバ管理を意識しないで利用できるサービス

• プロビジョン、コンフィグ、パッチ等が不要に

• 処理に掛かったリソースのみへの支払い(※利用費用については未定であり、変更の可能性があります)

Page 17: AWS Glue のご紹介...1 #AWSDBDay ETL をサーバーレスで実現する新サービスAWS Glue のご紹介2017年7月5日 アマゾンウェブサービスジャパン ソリューションアーキテクト

17 #AWSDBDay

分析データレイク

ビッグデータ処理もサーバレスで実現可能に

サーバレス = より分析に集中しやすい環境を実現

※全ての分析がサーバレスで実現できるわけではありません。適材適所の配置が重要です

可視化

Amazon

QuickSight

Amazon S3

プリプロセス

全データ 変形済

Amazon

Athena

AWS

Glue

収集

AWS

Glue

Page 18: AWS Glue のご紹介...1 #AWSDBDay ETL をサーバーレスで実現する新サービスAWS Glue のご紹介2017年7月5日 アマゾンウェブサービスジャパン ソリューションアーキテクト

18 #AWSDBDay

Amazon EMRとAWS Glue

Amazon EMR AWS Glue

用途 汎用Hadop/Spark環境 ETL処理に特化(Sparkベース)

スケールアウト 可能(ユーザ設計) 可能(自動判断)

サーバ管理 数クリックで指定した環境が準備される

サーバの管理自体不要

データレイク(S3)への透過的なアクセス

可能 可能

プログラミング環境 Hadoopエコシステム上の多様なアプリケーション

PySparkでETL処理をカスタマイズ

Page 19: AWS Glue のご紹介...1 #AWSDBDay ETL をサーバーレスで実現する新サービスAWS Glue のご紹介2017年7月5日 アマゾンウェブサービスジャパン ソリューションアーキテクト

19 #AWSDBDay

AWS Glueの機能

Page 20: AWS Glue のご紹介...1 #AWSDBDay ETL をサーバーレスで実現する新サービスAWS Glue のご紹介2017年7月5日 アマゾンウェブサービスジャパン ソリューションアーキテクト

20 #AWSDBDay

AWS Glue – 全体像

データソースをクロールし、メタデータを取得

メタデータはデータカタログで管理

メタデータを元にジョブを作成(PySpark)

ジョブはサーバレスな環境で実行される

Page 21: AWS Glue のご紹介...1 #AWSDBDay ETL をサーバーレスで実現する新サービスAWS Glue のご紹介2017年7月5日 アマゾンウェブサービスジャパン ソリューションアーキテクト

21 #AWSDBDay

データカタログ

Hiveメタストア互換のデータソース用メタデータリポジトリ

テーブル、データ型、パーティションフォーマットを推測するため

にソースをクロール

オーケストレーション

オートスケール - 複数インスタンスでジョブを実行

サーバレス - 利用したリソース分だけの支払い

ジョブオーサリング

ETL処理のためのPythonコード(PySpark)を生成

任意のIDEでコードを作成可能

AWS Glueの構成要素

Page 22: AWS Glue のご紹介...1 #AWSDBDay ETL をサーバーレスで実現する新サービスAWS Glue のご紹介2017年7月5日 アマゾンウェブサービスジャパン ソリューションアーキテクト

22 #AWSDBDay

Glueデータカタログ

データセットの発見・管理

Page 23: AWS Glue のご紹介...1 #AWSDBDay ETL をサーバーレスで実現する新サービスAWS Glue のご紹介2017年7月5日 アマゾンウェブサービスジャパン ソリューションアーキテクト

23 #AWSDBDay

表のメタデータをHiveメタストアで管理

メタデータ

• 列・プロパティ・型

• データロケーション(URI)

• 接続情報

• 更新情報

クローラーによる自動チェックと登録

Glue データカタログ (Data catalog)

Page 24: AWS Glue のご紹介...1 #AWSDBDay ETL をサーバーレスで実現する新サービスAWS Glue のご紹介2017年7月5日 アマゾンウェブサービスジャパン ソリューションアーキテクト

24 #AWSDBDay

クローラーが自動的にスキーマを推測

• ファイルタイプを識別子、どのような内容が含まれるのかを分類(Classifier)しスキーマとして抽出

• Grokフィルタでカスタマイズ可能

クローラーをスケジュール実行することで新しいデータやスキーマの変更を発見

クローラーを使わず手動での登録も可能

ログはCloudWatch Logsに出力

クローラーによるデータカタログの自動更新

Page 25: AWS Glue のご紹介...1 #AWSDBDay ETL をサーバーレスで実現する新サービスAWS Glue のご紹介2017年7月5日 アマゾンウェブサービスジャパン ソリューションアーキテクト

25 #AWSDBDay

クロールする範囲(接続)

• RDB– RDBへの接続情報を定義

– ホスト名、ID、パスワード+セキュリティグループでアクセスを制限

• S3– S3バケットを指定

– IAMでアクセスを制限

Page 26: AWS Glue のご紹介...1 #AWSDBDay ETL をサーバーレスで実現する新サービスAWS Glue のご紹介2017年7月5日 アマゾンウェブサービスジャパン ソリューションアーキテクト

26 #AWSDBDay

クローラー:対応データソース

• Amazon RDS– Aurora, MySQL, MariaDB, PostgreSQL

• Amazon Redshift

• EC2上のRDBにJDBC接続

• S3上のファイル– CSV, Avro, JSON 等

Page 27: AWS Glue のご紹介...1 #AWSDBDay ETL をサーバーレスで実現する新サービスAWS Glue のご紹介2017年7月5日 アマゾンウェブサービスジャパン ソリューションアーキテクト

27 #AWSDBDay

標準Classifier

• 多様なClassifierを提供(右表)

• 圧縮ファイルにも対応– ZIP (1アーカイブ=1ファイルのみ)

– BZIP2

– GZIP

– LZ4

– Snappy (標準Snappy)

Page 28: AWS Glue のご紹介...1 #AWSDBDay ETL をサーバーレスで実現する新サービスAWS Glue のご紹介2017年7月5日 アマゾンウェブサービスジャパン ソリューションアーキテクト

28 #AWSDBDay

補足:カスタムClassifier

• GorkパターンでカスタムClassifierを作成可能– Grokパターンで表記できないものについては、カスタムパターン(正規表現ベース)で対応可能

%{TIMESTAMP_ISO8601:timestamp} ¥[%{MESSAGEPREFIX:message_prefix}¥]%{CRAWLERLOGLEVEL:loglevel} : %{GREEDYDATA:message}

例)Grokパターン

Page 29: AWS Glue のご紹介...1 #AWSDBDay ETL をサーバーレスで実現する新サービスAWS Glue のご紹介2017年7月5日 アマゾンウェブサービスジャパン ソリューションアーキテクト

29 #AWSDBDay

ジョブオーサリング

使い慣れたツールでETLジョブのオーサリング、コード開発

Page 30: AWS Glue のご紹介...1 #AWSDBDay ETL をサーバーレスで実現する新サービスAWS Glue のご紹介2017年7月5日 アマゾンウェブサービスジャパン ソリューションアーキテクト

30 #AWSDBDay

自動的なジョブコード生成• データソースとターゲットを指定してETLジョブを定義• GUIで定義を決めるとPySparkのコードが出力される

– 基本的な処理のみであれば、コード編集不要

Page 31: AWS Glue のご紹介...1 #AWSDBDay ETL をサーバーレスで実現する新サービスAWS Glue のご紹介2017年7月5日 アマゾンウェブサービスジャパン ソリューションアーキテクト

31 #AWSDBDay

柔軟な処理を提供するGlue ETLスクリプト

• 人間が読め、編集し易いコードを出力

• PySparkのライブラリを活用して高度なカスタマイズも可能

• 任意のエディタで編集可能

Page 32: AWS Glue のご紹介...1 #AWSDBDay ETL をサーバーレスで実現する新サービスAWS Glue のご紹介2017年7月5日 アマゾンウェブサービスジャパン ソリューションアーキテクト

32 #AWSDBDay

開発者に優しいETLスクリプト

• 生成されたコードはETL図に連動したアノテーションが人間が読める形で記載されている

• 任意の開発環境で開発可能– AWSにはAWS CodeStar等の開発環境も

Page 33: AWS Glue のご紹介...1 #AWSDBDay ETL をサーバーレスで実現する新サービスAWS Glue のご紹介2017年7月5日 アマゾンウェブサービスジャパン ソリューションアーキテクト

33 #AWSDBDay

PySpark extensionと外部ライブラリ

• 変換処理をPySparkのextensionとして用意済

• 多彩な出力フォーマットに対応:プログラム不要

• PySparkコード+ライブラリで柔軟な処理– S3上に置いたPythonライブラリや

Jarファイルを読み込み可能

— transforms —

• drop_fields

• join

• relationalize

• rename_field

• select_fields

• spigot

• split_fields

• split_rows

• unbox

• unnest

• write

Page 34: AWS Glue のご紹介...1 #AWSDBDay ETL をサーバーレスで実現する新サービスAWS Glue のご紹介2017年7月5日 アマゾンウェブサービスジャパン ソリューションアーキテクト

34 #AWSDBDay

オーケストレーション&リソース管理

フルマネージド、サーバレスのジョブ実行

Page 35: AWS Glue のご紹介...1 #AWSDBDay ETL をサーバーレスで実現する新サービスAWS Glue のご紹介2017年7月5日 アマゾンウェブサービスジャパン ソリューションアーキテクト

35 #AWSDBDay

ジョブの定義と実行

• 作成したETLスクリプトを読み込んで実行– IAMロールで権限を設定

• ジョブの実行開始方法– APIコール(手動)– トリガー

• リトライ制限の指定や、パラメータを渡すことが可能

• 実行ログやエラーログはCloudWatch Logsに出力

Page 36: AWS Glue のご紹介...1 #AWSDBDay ETL をサーバーレスで実現する新サービスAWS Glue のご紹介2017年7月5日 アマゾンウェブサービスジャパン ソリューションアーキテクト

36 #AWSDBDay

トリガー

• ジョブ開始のタイミング– 先行ジョブ完了時

– スケジュール

– API(オンデマンド)

Page 37: AWS Glue のご紹介...1 #AWSDBDay ETL をサーバーレスで実現する新サービスAWS Glue のご紹介2017年7月5日 アマゾンウェブサービスジャパン ソリューションアーキテクト

37 #AWSDBDay

サーバレスのジョブ実行環境

サーバ管理や準備が不要

ジョブに必要なインスタンスが自動的に用意される

ワームプール:事前コンフィグ済のインスタンスフリートによりスタートアップに掛かる時間を削減

VPC内のリソースにアクセス可能

お客様VPC お客様VPC

インスタンスのワームプール

Page 38: AWS Glue のご紹介...1 #AWSDBDay ETL をサーバーレスで実現する新サービスAWS Glue のご紹介2017年7月5日 アマゾンウェブサービスジャパン ソリューションアーキテクト

38 #AWSDBDay

ジョブ実行時のVPC内へのアクセス

• ジョブインスタンスはVPC内に存在するように見える(※VPC内のリソースにアクセスするジョブの場合)

• ジョブインスタンスにはプライベートIPが付与

• インターネットへのアクセスが無いサブネットでも利用可能

• そのため、S3にアクセスする場合はVPC Endpointの設定が必須

Page 39: AWS Glue のご紹介...1 #AWSDBDay ETL をサーバーレスで実現する新サービスAWS Glue のご紹介2017年7月5日 アマゾンウェブサービスジャパン ソリューションアーキテクト

39 #AWSDBDay

まとめ – AWS Glue

• サーバレスなETL環境

• Sparkベースのスケールアウト処理

• PySparkを使ってジョブをカスタマイズ

現在プレビュー中:ぜひお試しください!– https://pages.awscloud.com/glue-sign-up-form.html

Page 40: AWS Glue のご紹介...1 #AWSDBDay ETL をサーバーレスで実現する新サービスAWS Glue のご紹介2017年7月5日 アマゾンウェブサービスジャパン ソリューションアーキテクト

40 #AWSDBDay

参考情報

• AWS Glue ホームページ– 各種資料や動画等へのリンクがあります

– https://aws.amazon.com/jp/glue/

• AWS Glue プレビューお申込み– https://pages.awscloud.com/glue-sign-up-form.html

Page 41: AWS Glue のご紹介...1 #AWSDBDay ETL をサーバーレスで実現する新サービスAWS Glue のご紹介2017年7月5日 アマゾンウェブサービスジャパン ソリューションアーキテクト

41 #AWSDBDay

内容についての注意

• 本資料では2017年7月5日時点のサービス内容および価格についてご説明しています。最新の情報はAWS公式ウェブサイト(http://aws.amazon.com)にてご確認ください。

• 資料作成には十分注意しておりますが、資料内の価格とAWS公式ウェブサイト記載の価格に相違があった場合、AWS公式ウェブサイトの価格を優先とさせていただきます。

• 価格は税抜表記となっています。日本居住者のお客様が東京リージョンを使用する場合、別途消費税をご請求させていただきます。

• AWS does not offer binding price quotes. AWS pricing is publicly available and is subject to change in accordance with the AWS Customer Agreement available at http://aws.amazon.com/agreement/. Any pricing information included in this document is provided only as an estimate of usage charges for AWS services based on certain information that you have provided. Monthly charges will be based on your actual use of AWS services, and may vary from the estimates provided.

Page 42: AWS Glue のご紹介...1 #AWSDBDay ETL をサーバーレスで実現する新サービスAWS Glue のご紹介2017年7月5日 アマゾンウェブサービスジャパン ソリューションアーキテクト

42 #AWSDBDay