コンテンツにスキップ

AWS Glue

1. サービス概要

AWS Glue は、データを抽出、変換、ロード(ETL)するためのフルマネージドサーバーレスデータ統合サービスである。
ユーザーは、様々なデータソースからデータを収集し、変換し、AWS のデータストア(S3, Redshift, RDS など)にロードするプロセスを自動化できる。
Glue は、データ統合の複雑さを軽減し、データ分析や機械学習ワークロードのためのデータ準備を効率化する。

主なユースケースとして、

  • データウェアハウスへのデータロード
  • データレイクのデータ準備
  • 機械学習のデータ前処理
  • ログデータの分析
  • ストリーミングデータの変換

などが挙げられる。
AWS Glue は、これらのユースケースに対応するための様々な機能と、AWS の他のサービスとの統合を提供する。

2. 主な特徴と機能

2.1 サーバーレス ETL

AWS Glue は、サーバーレスで ETL ジョブを実行できるため、ユーザーはインフラのプロビジョニングや管理を行う必要はない。
AWS が、ジョブの実行に必要なリソースを自動的に管理する。

2.2 多様なデータソースのサポート

Amazon S3, Amazon Redshift, Amazon RDS, DynamoDB, JDBC/ODBC コネクタなど、様々なデータソースに接続できる。
これにより、多様なデータソースからのデータを統合できる。

2.3 データカタログ

AWS Glue Data Catalog は、データソースのスキーマやメタデータをカタログ化するための機能を提供する。
これにより、データを発見、理解し、利用しやすくなる。

2.4 変換機能

データ変換のための様々な機能を提供する。
ユーザーは、Spark または Python を利用して、データをフィルタリング、集計、結合、変換できる。

2.5 スケジュール実行

ETL ジョブの実行をスケジュールできる。
これにより、定期的なデータ統合を自動化できる。

2.6 ジョブ監視

AWS Glue コンソールまたは CloudWatch Logs で、ETL ジョブの実行状況を監視できる。
これにより、ジョブの実行中に問題が発生した場合、迅速に特定し、解決できる。

2.7 統合性と拡張性

AWS Glue は、AWS Lambda, Amazon S3, Amazon Redshift, Amazon Athena などの AWS の他のサービスと密接に統合されている。
また、API を利用して、ETL ジョブの作成や実行を自動化することもできる。

3. アーキテクチャおよび技術要素

  1. ユーザーは、AWS Glue でクローラーを実行し、データソースのスキーマを自動的に検出。
  2. Glue Data Catalog にスキーマ情報を保存。
  3. ユーザーは、ETL ジョブを作成し、データソース、データ変換、データターゲットを指定。
  4. Glue は、指定されたスケジュールに基づいて ETL ジョブを実行。
  5. 変換されたデータは、指定されたターゲット(S3, Redshift など)にロード。

AWS Glue は、AWS のインフラ上に構築されており、高い可用性とスケーラビリティを提供する。
ETL ジョブの実行や管理は AWS が行うため、ユーザーはインフラの管理を行う必要はない。

4. セキュリティと認証・認可

AWS Glue は、データセキュリティを確保するために、以下の機能を提供する:

  • IAM 統合: AWS Identity and Access Management (IAM) を利用して、Glue へのアクセスを制御する。
  • VPC 内での実行: Glue ジョブは Virtual Private Cloud (VPC) 内で実行でき、ネットワーク隔離を実現。
  • データ暗号化: データは転送中および保存時に暗号化される。
  • アクセス制御: IAM ポリシーを通じて、ユーザーやグループごとに、Glue の操作権限を詳細に制御できる。
  • 監査ログ: CloudTrail を通じて、Glue の利用状況を監査できる。

これらのセキュリティ対策により、データへの不正アクセスを防止し、機密情報を保護できる。

5. 料金形態

AWS Glue の料金は主に以下に基づく:

  • クローラー: クローラーの実行時間に応じて課金。
  • ETL ジョブ: ETL ジョブの実行時間に応じて課金。
  • データカタログ: Glue Data Catalog に保存されたメタデータ量に応じて課金。
  • 開発エンドポイント: 開発エンドポイントの利用時間に応じて課金。

6. よくあるアーキテクチャ・設計パターン

AWS Glue は、様々なデータ統合に利用できる。一般的なパターンは以下の通りである:

  • データウェアハウスへのデータロード: S3 上のデータを Redshift にロードするために、Glue を利用。
  • データレイクのデータ準備: S3 上の様々な形式のデータを変換し、データレイクに保存。
  • 機械学習のデータ前処理: 機械学習モデルのトレーニングデータとして、データを変換し、準備。
  • ログデータの分析: アプリケーションログを S3 に保存し、Glue を使って整形、変換し、分析用データベースにロード。
  • ストリーミングデータの変換: Kinesis からストリーミングデータを取得し、変換して S3 や Redshift に保存。

7. 設定・デプロイ手順(ハンズオン例)

  1. AWS マネジメントコンソールから AWS Glue を開き、クローラーを作成。
  2. クローラーを設定し、データソース(S3 バケット、RDS など)を指定。
  3. クローラーを実行し、スキーマを自動的に検出。
  4. ETL ジョブを作成し、データソース、変換ロジック、データターゲットを指定。
  5. ETL ジョブを実行し、データの変換とロード。
  6. AWS Glue Data Catalog で、テーブルを確認。

8. 試験で問われやすいポイント

8.1 サーバーレス ETL

  • 特徴: インフラストラクチャのプロビジョニングや管理が不要。
  • 利点: ユーザーはデータ変換に集中可能。
  • 試験対策: サーバーレスのメリット、管理範囲が問われる。

8.2 多様なデータソースのサポート

  • 対象: S3, Redshift, RDS, DynamoDB, JDBC/ODBC コネクタなど。
  • 利用: 様々なデータソースからのデータを統合。
  • 試験対策: サポートされるデータソースの種類が問われる。

8.3 データカタログ

  • 機能: データソースのスキーマやメタデータをカタログ化。
  • 目的: データを発見、理解し、利用しやすくする。
  • 試験対策: Data Catalog の役割、利用方法が問われる。

8.4 変換機能

  • 利用技術: Spark, Python。
  • 利用: データフィルタリング、集計、結合、変換。
  • 試験対策: データ変換の仕組み、利用できる関数が問われる。

8.5 料金体系

  • 課金対象: クローラーの実行時間、ETL ジョブの実行時間、Data Catalog のメタデータ量、開発エンドポイント。
  • 最適化: ジョブの実行時間、不要なデータの取り込みを減らすことでコストを削減。
  • 試験対策: 料金体系、課金対象が問われる。

8.6 類似・関連サービスとの比較

  • AWS Data Pipeline: データ移動サービス。Glue は ETL に特化。
  • AWS Step Functions: ワークフローを管理するサービス。Glue は ETL 処理に特化。

8.7 試験で頻出となる具体的な問われ方と答え

  • Q: AWS Glue は何を提供するサービスですか?
  • A: データを抽出、変換、ロード(ETL)するためのフルマネージドサーバーレスデータ統合サービスである。
  • Q: AWS Glue Data Catalog は何に使用しますか?
  • A: データソースのスキーマやメタデータをカタログ化し、データを発見、理解しやすくするために使用する。
  • Q: AWS Glue でサポートされているデータ形式の例を 3 つ挙げてください。
  • A: JSON, CSV, Parquet, ORC などがある。
  • Q: AWS Glue でデータ変換を行うには、どのような言語を利用できますか?
  • A: Spark または Python を利用できる。
  • Q: AWS Glue の料金はどのように計算されますか?
  • A: クローラーの実行時間、ETL ジョブの実行時間、Glue Data Catalog に保存されたメタデータ量、開発エンドポイントの利用時間などに基づいて計算される。