AWS Glue

# AWS Glue

https://d1.awsstatic.com/webinars/jp/pdf/services/20190806_AWS-BlackBelt_Glue.pdf

## データ分析

  • プロセス
    • 収集
    • 保存
      • 過去では、データ収集の際にETL処理を行い、分析しやすい状態にしていた
      • 現在では、データレイクに生データをそのまま保存し、分析する前に前処理を実施している
    • 分析
    • 活用
  • AWS Glueとは
    • 様々なデータソースのメタデータを管理する、フルマネージドでサーバーレスなETLサービス
    • 特徴
      • サーバーレス
      • VPC内からアクセス
      • セキュア
      • 柔軟な軌道方法
      • データソースのメタデータ管理
      • 他のAWS サービスとの連携
      • Notebook での開発
    • 構成要素
      • データカタログ
      • クローラー
        • Glue のデータカタログにメタデータを作成するプログラム
        • 分類子の優先度に従って、スキーマ情報を自動で判断する
      • スキーマ管理
        • データカタログに登録したテーブルのスキーマのバージョン管理することが可能
      • 接続管理
        • データをクロールする際のアクセス方法
      • サーバレスエンジン
        • ジョブ
        • Worker Type
          • Glue 内のSpark ジョブに割り当てるワーカーのタイプを変更可能に
          • DPU という単位(4vCPU, 16GB)
        • DynamocFrame
          • SparkSQL DataFrame と似たGlue特有の抽象化の概念
            • ETLに特化している
            • DynamicFrame はデータ全体を表し、DynamicRecord はデータ一行を表す
            • DataFrame DynamicFrame 間でそれぞれ変換することができる
        • Choice
        • ブックマーク機能
          • ジョブの実行状態を保持する機能
      • サーバーレスETL処理の使い分け
        • 小規模
        • 中規模
          • AWS Glue Python Shell
          • Lambda に比べてメモリ量が多い
          • Redshift EMRAthenaに対するSQLベースの分析
        • 大規模
          • AWS Glue Spark
      • 独自ライブラリの利用
      • スケジューリング
      • ワークフロー作成機能

 

## 開発

  • ETLジョブのコードを開発・実行する環境
  • SageMaker Notebook

 

## ネットワーク・セキュリティ・監視

  • Glue からVPC Endpoint 経由で他のサービスにアクセス
  • Glue からVPC Endpoint 経由でVPC Peering を通して他のVPCリソースへアクセス
  • セキュリティグループ
  • Glue 内のアクセス許可
    • Glue 内で管理するアクセスポリシー
    • データカタログリソースへのアクセス制御
    • データカタログに対するクロスアカウント・クロスリージョンのアクセス制御
  • 暗号化
    • データカタログ、接続パスワードのKMSを利用した暗号化
  • モニタリング
    • クローラー・ジョブステータス・ジョブの実行状況が確認可能
      • CloudWatch との連携
      • ジョブ失敗時にSNS通知やLambdaを起動する
      • Spark のメモリ監視
    • Continuous Logging
      • Spark ETL ジョブの進捗状況をリアルタイムに追跡できる機能

 

## ユースケース

  • データカタログを用いたメタデータ管理
    • EMR/Athena/Redshift Spectrum を利用する際のメタデータ管理に利用
  • ジョブによるSQLの定期実行
    • トリガー・Python Shell を用いてRedshift に定期クエリを実行し、データの加工を行う
  • WorkFlow 機能を用いたETLパイプライン
    • WorkFlow 機能を用いて単一ジョブではなく、複数ジョブを組み合わせて実行する
  • サーバーレスアナリティクス
    • Glueのデータカタログを利用する
    • SparkSQL を用いて標準SQLSageMaker Notebook を用いて分析を行う
  • データレイクを用いたログ分析基盤
    • スピードレイヤ・バッチレイヤを活用したログ分析基盤
    • アーキテクチャ
      • fluentd -> Kinesis Data Stream
        • スピードレイヤ
          • Kinesis Data Firehose -> Elasticsearch Service
        • パッチレイヤ
          • Kinesis Data Firehose -> S3 <-> Glue
          • S3 のデータを分析サービスを用いて分析
  • Glue SageMaker を用いた機械学習基盤
    • Glue WorkFlow を利用したETL機械学習のワークフロー

 

## まとめ

  • Glue はサーバレスのETLサービス
  • クローラー・データカタログでメタデータを管理
  • EMR/Athena/RedshiftSageMakerなどの他のサービスとセキュアに連携

 

## 雑感

機械学習や分析をする際にデータレイクのデータはそのままでは利用できない。それを可能にするためにデータカタログを作成する必要がある。Glue ETL処理を行い、他のAWSサービスが分析をできるようにするサービス。

ただ、これだと部分的にしかできずに他のサービスのセットアップも必要になる。そこでAWS LakeFormation がある。

課金はETL処理をするためのリソースと各種サービスの料金がかかる。