LoginSignup
1
1

More than 3 years have passed since last update.

AWS Glueのオンラインセミナー受けてみた

Posted at

AWS Black Belt Online Seminar AWS Glue」の自分向けメモ
AWS Glueって何?......レベルの人向け

Glue登場の背景

ビッグデータがキーワード

  • データ分析のプロセスは以下
    • 収集
    • 保存
    • 分析
    • 活用
  • ビッグデータが注目される前、ほとんどCSVやRDS上のデータとして保存
  • 今日ではIOTによる大量データや様々なデータ形式が使われている
  • 大量データの生で保存、かつ必要なときに必要分取得、活用できる保存場所が求められた

データレイクの登場

  • 様々なデータソースから生成される生データをそのまま保存する
  • 生データは分析するために前処理(ELT処理)が必要

Glue

  • フルマネージドでサーバーレスなELTサービス
  • データカタログによって、他サービスとの連携が容易
  • 暗号化対応

機能

全体像

  • クローラーによってデータソースからメタデータ(テーブル構造やスキーマ)をクロール
  • クローラーが更新したメタデータをデータカタログにて管理
  • トリガーにてサーバーレスエンジンが起動
  • サーバーレスエンジンはジョブを実行し、データカタログとデータソースから結果を出力

データカタログ

  • データソースのメタデータを管理するリポジトリ機能
  • データソースは以下を指定可能
    • DynamoDB
    • S3
    • Redshift
    • RDS
    • オンプレDB

Apache Hiveメタストアとは

  • 実データとは別に表の定義だけ保存する仕組み
  • 実データはHDFS(Hadoop Distributed File System)やS3などに保存する

クローラー

  • データカタログにメタデータを作成する機能
  • スキーマ情報を自動で判断
  • パーティションも自動で認識

メタデータ

  • テーブル情報
  • テーブルプロパティ
  • テーブルスキーマ

スキーマ管理

  • バージョン管理可能
  • バージョン比較(差分表示)も可能

接続管理

  • S3、DyanmmoDB:IAMロールで制御
  • Redshift、RDS、オンプレDB、EC2:JDBCでアクセス制御
    • 事前に接続設定の追加が必要
    • セキュリティグループの設定が必要

サーバーレスエンジン

ジョブ作成

  • ETLの処理単位(ジョブ)はApache SparkとPython Shellがある

Worker Type

  • DPU(ジョブ実行時に割り当てる処理能力)
  • G.1xとG.2xを選択可能

SparkでETL実行した際に起きうる課題

  • 型が混在すると処理が止まってしまう
  • 事前にデータの中身を調査する必要がある

DynamicFrameとは

  • 複数の型の可能性を残して、後で決定できるようにする(Choice型)
    • 複数の型を発見した場合に両方の型をもつことが可能

ブックマーク機能

  • ジョブの実行状態を保持、追跡が可能
  • 定常的にELT処理を行う場合に有効
    • 処理済みデータを再度処理しない
    • 処理結果を重複出力しない

サーバレスETL処理の使い分け

  • Lmabda
    • 小規模処理
    • 15分以内
    • 豊富なトリガー
  • Glue Python Shell
    • 中規模処理
    • 実行時間制限なし
    • Pandasなどのライブラリ
  • Glue Spark
    • 大規模処理
    • 実行時間制限なし
    • 並列分散処理

オーケストレーション

独自ライブラリの利用

  • Spack、Python Shellともに利用可能

トリガー

  • ジョブを開始するための定義を設定できる機能
  • スケジュール、ジョブイベント、手動実行可能

ワークフロー機能

  • クローラー、トリガー、ジョブのDAG(有向非巡回グラフ)を生成する機能

開発環境

開発エンドポイント

  • ジョブを実行するために開発したコードを動かす実行環境

Notebookサーバー

  • プログラムそのものの記述と実行結果を表示する環境

SageMaker Notebook

  • Glueのコンソール上でSageMaker Notebookサーバーを起動する
  • SageMaker Notebookから直接SparkSQLの実行が可能

開発エンドポイントとNotebookの関係

  • ユーザー → Notebook → 開発エンドポイント → Glue

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

GlueからVPCへのアクセス

  • プライベートサブネットのENI経由でアクセスしていく

セキュリティグループ

  • Glueが利用しているENIをセキュリティグループに自己参照として設定

IAM

  • IAMを用いて、Glueの権限管理

リソースレベルによるポリシーとアクセス許可

  • データカタログリソースへの制御

暗号化

  • KMSキーを指定して、データベース、テーブルを含むデータベースカタログ全体を暗号化

モニタリング

  • クローラー、ジョブステータス、ジョブの実行状況の確認可能

Continuous Logging

  • Spark ETLジョブの新緑状況をリアルタイムで確認可能

ユースケース

データカタログを用いたメタデータ管理

  • EMR、Athena、Redshift利用時のメタデータ管理
  • S3条にあるデータのメタデータをデータカタログに登録

ジョブによるSQLの定期実行

  • Redshiftに定期クエリを実行
  • タイムアウト設定し中断することが可能
  • SQLを長時間実行し続けることが可能

ワークフロー機能を用いたELTパイプライン

  • 複数ジョブを組み合わせて利用

サーバーレスアナリティクス

  • 開発エンドポイント、SageMaker Notebookを用いて分析

データレイクを用いたログ分析基盤

  • fluentd、Kinesis Data Streamsでリアルタイムにログデータを可視化(スピードレイヤー)
  • fluentd、Kinesis Firehose、S3で収集したログデータをELT処理、可視化(バッチレイヤー)

GlueとSageMagerを用いた機械学習基盤

  • Glueにて学習データを作成し、学習の実行とモデルのデプロイをSageMkerで実行
  • ワークフロー機能もしくはStep Functionsで構築

料金

  • ELTジョブ
    • Apatche Spark
    • Python Shell
  • 開発エンドポイント
  • データカタログ
    • ストレージ
    • リクエスト
  • クローラー

まとめ

  • サーバーレスのELTサービス
  • メタデータを管理
  • 他サービスとセキュアに連携
1
1
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
1
1