AWS Glue
Serverless ETL と data catalog
serverless のデータ統合サービスです。crawler が schema を自動で読み取って Glue Data Catalog に登録し、Spark/Python で動く ETL job がデータをクレンジング・変換します。
- コスト$$ ふつう
- 難易度●●●●●
- 未使用でも課金?いいえ
- サーバーレス
- 出題試験SAA · DVA
たとえるなら本の目録を作りながら、本棚の整理もしてくれる司書のようなものです。
いつ使う?
✓ 使うべき場面
data lake/warehouse への ETL を行い、Athena、Redshift、EMR で共用する metadata catalog が必要なとき。
✗ 避けるべき場面
Spark cluster を完全にカスタマイズしたい → EMR。real-time ストリーム → Managed Service for Apache Flink。
よくある使い方
- crawler による S3 データのテーブル作成
- CSV から Parquet への変換
- Athena と共用する catalog
料金はいくら?
- 課金方式: ETL job は DPU 時間(秒単位)で課金されます。Data Catalog は保存した object の数と free tier を超えた request に応じて課金されます。
worker を多く設定しすぎたり、crawler を頻繁に実行しすぎたりすると DPU 時間が膨らみます。
「サーバーレス ETL で、スキーマを自動検出して Athena や Redshift Spectrum 用のデータカタログを作成」なら AWS Glue、「Spark/Hadoop クラスターを深くカスタマイズ」なら EMR、「複雑な変換なしでストリームを S3 に届ける」なら Data Firehose を選びます。
よくある質問
Glue と EMR の違いは?
Glue はサーバーレスで、ETL ジョブを定義すると AWS がリソースを用意し、実行時間に応じて課金され、クラスターの管理は不要です。EMR は Hadoop/Spark などのクラスターを完全に制御・チューニングできますが、管理の手間が増えます。通常の ETL は Glue、特殊なフレームワークや細かな制御が必要なら EMR を選びます。
Glue Data Catalog とクローラーは何のためのものですか?
Data Catalog は、テーブル名、列、データ型、S3 上の場所などを保持する中央のメタデータストアです。クローラーはソースデータをスキャンしてスキーマを推定し、カタログのテーブルを作成・更新します。Athena、Redshift Spectrum、EMR が同じカタログを使うため、スキーマを一度定義すれば複数のツールで利用できます。
Glue ジョブを再実行すると同じデータが重複処理されますか?
ジョブブックマークが処理済みの範囲を記憶するため、次回の実行では全データを読み直さず新しいデータだけを処理します。Glue は Kinesis や Kafka から読み取るストリーミング ETL にも対応しています。課金は処理能力 (DPU) と実行時間に基づくため、小さく無駄のないジョブほど安くなります。
関連サービス
SAA-C03 対策
Glue は次の対策モジュールで扱っています: