Table of Contents
はじめに
本記事では、AWSのサーバレスETLサービスである AWS Glue のハンズオン実践内容を整理し、同様の機能を持つ Azure Data Factory(ADF) との類似点にも触れながら解説していきます。筆者はプロジェクトでADFを活用した経験があり、その視点からGlueとの違いや共通点を見ていきましょう。
Glueについて
AWSのデータ統合プラットフォームであるGlueとは、物凄く簡単に言うと
「バラバラな場所(S3・DB・CSVなど)にあるデータを、集めて、加工して、キレイに整理して、次のシステムに渡す仕事をしてくれるクラウド上の自動処理の工場」です。実行する処理を作成する方法としても、Visual的なGUIのコンソールで実施したり、pythonスクリプトを実際に記載したりするなど指定することができます。
デモの全体アーキテクチャ
Glueを用いたETL構成は以下の通りです:
- データレイク:Amazon S3(データ入力)
- ETL処理:AWS Glue(Visual ETL / Python スクリプト)
- データウェアハウス(DWH):Amazon S3(出力先)
この構成は、AzureでのBlob Storage + ADF + Synapse にも類似しており、移行やクロスクラウドでの理解にも役立ちます。
S3バケット構成とGlueジョブの準備
バケット構成は「datalake-dev-xxxx」「datawarehouse-dev-xxxx」など、明確な命名規則を用意して、入力・出力を分離。
Glue Studioの”Script Editor”からPythonスクリプトを直接記述可能です。
IAMロールの作成と設定
- IAMロール作成でGlueをユースケースに選択
- S3フルアクセスのポリシーをIAMロールにアタッチ
- Glue Studioのジョブ作成画面でIAMロールを指定
これにより、GlueがS3へ読み書きするための権限を担保します。
Pythonスクリプトを用いたETL処理(Glue Job)
Glue Studio上で以下のようなPySparkスクリプトを実装します:
from_options
でS3のCSV読み込みApplyMapping
でスキーマ変換EvaluateDataQuality
でデータ品質ルール評価- S3へ出力
このジョブはCloudWatch Logsで成功・失敗を確認できます。
Visual ETLでの実装
GUIベースのETL設計も可能で、ノーコードで以下のような構成を作成:
- S3のデータを読み込み
- Spark設定やプロパティ設定をGUIで実施
- スキーマのマッピング・変換
- データ出力先を指定
ジョブ実行後はCloudWatchで出力ログ、エラーログを確認可能。
実行と検証
- Glueジョブは複数回実行(Runsタブ)で履歴管理が可能
- 成功するとS3上にCSVファイルが出力され、DWHとして活用可能
- Python Shellタイプでは
awsglue
モジュールが使えない制約があるため注意
Azure ADFとの共通点と相違点
Azureにも、データ統合プラットフォームとしてADF(Azure Data Factory)があります。比較を見ていきましょう。
比較軸 | AWS Glue | Azure Data Factory (ADF) |
---|---|---|
操作スタイル | Visual ETL & Pythonスクリプト | Visual ETL(GUI中心) |
実行エンジン | Sparkベース(Python/Scala対応) | Sparkベース(Data Flow)、SSIS互換も |
データカタログ | Glue Data Catalog | Azure Data Catalog / Purview |
権限管理 | IAMベースの細かい制御 | RBACベースの役割付与 |
まとめ
AWS Glueは、GUIとコードベースの両方で柔軟にETLを設計できる強力なサーバレスサービスです。Azure ADFと同様にバッチ処理やETL設計に長けており、プロジェクト経験者にとっては移行や共通理解がしやすいツールです。
ハンズオンを通じて、IAMロールの設計、S3とのデータ連携、Visual ETLとPythonスクリプトの使い分けなど、Glueの基礎的な運用フローを把握することができました。