AWS Glueハンズオンで学ぶETL実践:Azure ADFとの類似点から理解する

AWS

はじめに

本記事では、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ロールの作成と設定

  1. IAMロール作成でGlueをユースケースに選択
  2. S3フルアクセスのポリシーをIAMロールにアタッチ
  3. 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 GlueAzure Data Factory (ADF)
操作スタイルVisual ETL & PythonスクリプトVisual ETL(GUI中心)
実行エンジンSparkベース(Python/Scala対応)Sparkベース(Data Flow)、SSIS互換も
データカタログGlue Data CatalogAzure Data Catalog / Purview
権限管理IAMベースの細かい制御RBACベースの役割付与

まとめ

AWS Glueは、GUIとコードベースの両方で柔軟にETLを設計できる強力なサーバレスサービスです。Azure ADFと同様にバッチ処理やETL設計に長けており、プロジェクト経験者にとっては移行や共通理解がしやすいツールです。

ハンズオンを通じて、IAMロールの設計、S3とのデータ連携、Visual ETLとPythonスクリプトの使い分けなど、Glueの基礎的な運用フローを把握することができました。

最新情報をチェックしよう!