この記事では、AWS Glueの基本を私なりの理解で整理していきたいと思います。
以下のような人のフォローになれば幸いです。
- AWS Glueを全く知らない
- ETLサービスの全体像を知りたい
- Data CatalogやCrawlerの役割が気になる
この記事で学べること
- AWS Glueの役割と特徴
- 主要コンポーネントの説明
- 実際の利用フロー
- Glueを使うべき場面
AWS Glueとは?
AWS Glueは、AWSが提供するフルマネージドなデータ統合サービスです。
簡単に言うと、
- データを集めて
- 整えて
- 分析や機械学習で使える形にする
ための仕組みを、AWSが代わりに動かしてくれます。
もう少し具体的に
Glueは主に以下を自動化します。
- データの読み込み
- データの変換
- データの保存
- データの整理と登録(どこに何があるかを記録する)
Glueでは、サーバーを自分で用意したりOSやソフトウェアの管理をしたりする必要がありません。
AWSが必要なときにだけ処理を起動し、処理が終わったら自動で終了するので、常にサーバーを立てっぱなしにする必要はありません。
Glueのイメージ
- データの“収集屋”:S3やRDS、Redshiftなどからデータを読み込む
- データの“整形屋”:データ形式を変えたり、不要な列を削除したりする
- データの“まとめ屋”:データの構造や型をカタログ化して管理する
Glueの主な用途
- ETL(Extract, Transform, Load)処理
- データカタログ管理
- データレイク構築の支援
- 定期実行バッチの運用
AWS Glueは、特に「データを集めてから分析に渡す」までの前処理に強いサービスです。
主要用語とコンポーネント
ETL
- Extract:データを取り出す
- Transform:データを加工・変換する
- Load:変換したデータを書き込む
GlueはこのETL処理をサーバーレスで実行します。その背後では、Apache Sparkというデータ処理エンジンが動いています。
Apache Sparkとは:
大量のデータを高速に処理するための技術です。
Sparkの学習が必要かどうか:
- Glue Studioでビジュアルにジョブ作成 → まずは深い仕組みを知らなくても使える
- PythonやScalaでスクリプトを書く → DynamicFrameやSparkの基礎を理解する必要がある
つまり、使い方次第です。Glue Studioなら最初は入りやすいものの、運用やトラブル対応のためには後でSparkやGlueの概念を学ぶのが望ましいです。
Data Catalog(データカタログ)
Glueの中心になるのがData Catalogです。
Data Catalogは何か:
- データそのものを保存する場所ではなく、メタデータ(データについての情報)を保存する仕組み
- 「この場所にあるデータは、この形式で、こんな列を持っている」という情報を記録する
- 実際のデータはS3やRDS、Redshift、JDBC接続先などに別に存在し、Data Catalogはそれを記録・整理して管理するだけ
- Data Catalog自体はS3の中ではなく、AWS Glueのサービス側に作られる
例え:引っ越しの段ボール箱
段ボール5号の外に書かれたラベル:
├─ 中身:食器
├─ 個数:30個
├─ 保管場所:倉庫1階左奥
実際の中身:
├─ 皿、カップ、スプーン...(本体)
- ラベル = Data Catalog(「何があるか」の情報)
- 段ボール箱の中身 = 実データ(S3に保存されたファイル)
Data Catalogを見れば、「このデータはどこにあって、何が入ってるの?」がすぐわかるということです。
-
AthenaやRedshift SpectrumはData Catalogを見て、保存先のデータをどのように扱うか判断します。 -
Redshift SpectrumはRedshiftの中の機能で、S3上のデータをこのカタログ情報を使ってクエリします。
Crawler(クローラー)
Crawlerは、データ構造を自動で調べる機能です。
- S3やRDSなどのデータソースをスキャン
- フォルダ構造やファイル形式を解析
- データのスキーマ(列名・型・パーティション)を推測
- Data Catalogにテーブル定義を作成・更新する
このため、S3をスキャンするのは「データがどのような形をしているか」をGlueに教え、Data Catalogに登録するためです。ここではS3を例にしていますが、Glue CrawlerはRDS/JDBCなど他のデータソースも対象になります。
初心者はまずCrawlerを使って、Data Catalogにテーブルを登録する流れを体験すると理解しやすいです。
Job(ジョブ)
Glueの処理単位です。
- PythonまたはScalaでETL処理を定義
- Glue StudioのGUIからも作成可能
- バッチ処理として実行される
Trigger(トリガー)
Jobの実行タイミングを管理します。
- スケジュール実行(cron風)
- 他のJob完了後に実行
- 手動実行も可能
DynamicFrame
Glue固有のデータ構造です。
- SparkのDataFrameに似ている
- DataFrameよりもスキーマの柔軟性が高い(列の型や構造が揺らいでいるデータを扱いやすい)
- 型が不揃いなデータでも扱いやすい
どういうことか:
- たとえば同じ列に文字列と数値が混ざっていたり
- ファイルごとに列の並びや型が少し違っていたりしても
- DynamicFrameはスキーマを自動的に推測・変換しやすい
対比:DataFrameの場合
- 列の型や構造が厳密に決まっていることを前提に処理する
- その前提が崩れるとエラーになりやすい
Development Endpoint(開発エンドポイント)
Glueの開発用環境です。
- ノートブックやIDEで接続可能
- スクリプトを実行しながら開発できる
- ただし最近はGlue Studio Notebookの利用が増えています
Glue Studio
GUIでETLパイプラインを作成できる画面です。
- ビジュアルでジョブ設計
- コードを書かずにパイプライン構築
- 初心者の学習に便利
AWS Glue DataBrew
ノーコードでデータのクリーニングや変換を行うツールです。
- データを視覚的に操作
- データ分析前の準備に最適
- サンプルを見ながら作業できる
実際の利用フロー
- データをS3などに置く
- GlueのData Catalogにテーブルを登録する
- Crawlerで自動登録するのが簡単
- Glue Jobを作成してETLを定義する
- Triggerで定期実行やJob連携を設定する
- AthenaやQuickSightで整形済みデータを分析する
例:ログデータを分析可能にする流れ
- S3にログファイルを配置
- Crawlerでスキーマを検出しData Catalogに登録
- Glue Jobで不要列の削除・型変換を実行
- 出力結果を別のS3に書き込む
- AthenaからSQLで検索する
Glueが得意な状況
- S3にたまったログデータを整形したい
- 複数のデータソースをまとめたい
- スキーマが変わりやすいデータを扱う必要がある
- 定期的にバッチ処理を実行したい
Glueは「データの前処理を自動化して、分析に渡す」役割に適しています。
Glueと関連するAWSサービス
- Amazon S3:データ保存の代表的な場所
- AWS Athena:Glue Data CatalogのテーブルをSQLで検索
- Amazon Redshift Spectrum:S3のデータをRedshiftからクエリ
- AWS Lambda:Glueジョブ起動や後処理に利用
- AWS IAM:Glueのアクセス権限を管理
まとめ
AWS Glueは、データを分析しやすい形に整えるためのサービスです。初心者がまず押さえるべきは、
- Data Catalog
- Crawler
- Job
の3つです。
これらを理解すると、Glueを使ったデータ連携の全体像がつかみやすくなります。
次のステップ:
- Glue StudioのGUIで簡単なJobを作成してみる
- Data Catalogを実際に確認してみる
- 簡単なCSVファイルでCrawlerを試す
参考記事
- AWS公式:AWS Glue ユーザーガイド
- AWS公式:AWS Glue Crawlers
- AWS公式:AWS Glue Data Catalog