AWS Glueジョブの使い方

aws-glue-jobのアイキャッチ画像 AWS

Glueジョブの概要と基本的な使い方について解説します。

Glueジョブとは

Glueジョブの概要

Glueジョブは、Lambdaと同じようにサーバーレスでPythonプログラムなどを実行できる仕組みです。

S3と連携し、データ抽出・変換・ロード(Extract・Transform・Load:ETL)に主に使われます。例えば、S3をデータレイクやデータウェアハウスと位置付け、Glueジョブを使ってS3(データレイク・データウェアハウス)からデータを抽出し、特定のデータにのみに変換してデータマート化し、S3にロードし直すようなケースです。

内部的にはApache Spark環境上で実行されるため、ビッグデータ処理に適しています。

Lambdaとの違い

Lambdaとの違いを下表にまとめます。

項目LambdaGlueジョブ
実行方法・手動実行
・EventBridge
・API Gateway
などから起動
できる
・手動実行
・Lambda
・Glueワークフロー
などから起動できる
(EventBridgeやAPI Gatewayからは起動できない)
実行時間15分以内規定されていない(デフォルトは2,880分)
メモリ10GB以内
(ページングしないため、超えた瞬間にエラー)
32GB以内
(ページングしないため、超えた瞬間にエラー)
ディスク512MB以内128GB以内

Glueジョブの作成方法

Glueジョブの作成方法について解説します。

IAMロールの用意

Glueジョブが実行できように、IAMロールを用意します。
基本的なIAMロールの追加方法は、こちらの「IAMポリシーの追加」「IAMロールの追加」を参考にして下さい。

IAMポリシーは以下のように設定します。

AWSのIAMポリシー

IAMロールの信頼関係を、以下のように設定します。

AWSのIAMロール①
AWSのIAMロール②

Glueジョブの追加

Glueジョブを追加します。
AWSマネージメントコンソール > サービス > Glue > ジョブで、(Glue)ジョブの追加をします。

AWSのグルージョブの追加①
AWSのグルージョブの追加②
AWSのグルージョブの追加③
AWSのグルージョブの追加④

任意の実装を行い、ジョブを実行します。

AWSのグルージョブの追加⑤

以上で、Glueジョブを追加することができました。

参考:外部ライブラリの呼び出し

Glueジョブから外部に存在するライブラリを呼び出す方法を解説します。

ローカル環境に「C:\lambda\lib」のようなフォルダを作成します。
さらに、「C:\lambda\lib\test.py」のようなPythonファイルを作成します。Glueジョブからはこのtest.pyを呼び出すものとします。
test.pyを以下のように実装します。

def hello_world():
    print('Hello, World')

「C:\lambda\lib」フォルダをZIP化します。

AWSのGlueジョブ用ライブラリ

同ZIPファイルをS3にアップロードし、S3 URIを控えます。

AWSのS3のURI

AWSマネージメントコンソール > サービス > Glue > ジョブで、ジョブの編集を行います。

AWSのグルージョブの追加⑥
AWSのグルージョブの追加⑦

GlueジョブのPythonスクリプトを書き換えます。

AWSのグルージョブの追加⑧
AWSのグルージョブの追加⑨
import lib.test
from lib.test import hello_world

hello_world()

これでGlueジョブから外部に存在するライブラリを呼び出すことができました。

タイトルとURLをコピーしました