🥯

【図解】AWS Glueってそもそも何?調べて比較して選定を考えた話

に公開

こんにちは。アスエネ株式会社でバックエンドエンジニア兼PMをしているハルピンです!

きっかけ

最近、社内でデータの整形処理をどう自動化・効率化するかという議論がありました。その中で候補に挙がったのが、AWS Glueです。

ただ、僕は「Glueって何?」という状態だったので、Glueについて調べ、導入検討の判断軸を整理し、実際に何を採用したかのお話ができればと思っています。

Glueってそもそも何?

Glueは一言で言えば、AWS上でETL(データの整形)処理を自動で行うサービスです

主な機能を整理します。

  • クローラー:S3などのファイルを読み取って、データ構造(スキーマ)を自動判別
  • データカタログ:その構造情報を管理・再利用できる“辞書”のような存在
  • ETLジョブ:Pythonなどで変換処理を書いてバッチ実行できる
  • トリガー/サーバレス:決まった条件で起動したり、インフラ準備がいらなかったりする

ETLの流れで言うと、こんな役割です

収集(Collect) → 蓄積(Store) → 整形(Transform ←ここがGlue) → 分析・活用

ちなみに、Glueって英語で「のり(糊)」という意味で、「バラバラのデータをくっつけて整える」というイメージです。

「Glue使えば良い!」とはならなかった

Glueの説明だけ見ると、「自動でやってくれるしこれで決まりだ!」と思いました。でも調べていくうちに、実際の導入シーンを考えると、色んな疑問が出てきました

  • 同じことはLambdaでもできる?
  • コスト感がようわからんけど、高くつく?
  • コードはちゃんと管理できる?

そこから、「ほんとにGlueがベストなのか?」と改めて考えるようになりました。

比較してみて見えてきたこと

GlueとLambda、どっちで処理するかを選ぶときに、以下のポイントで比べました:

観点 Glue Lambda
データ量 大量(GB〜TB)向き 少量・軽量処理向き
処理時間 最大48時間 最大15分まで
開発性 GUIベース、CLI連携に工夫必要 Git・CI/CDと相性◎
コスト DPU×時間で課金、高め 軽量なら安いが回数に注意
リアルタイム性 △ 定期バッチ向け ◎ S3イベントなどに即反応

自分なりの判断軸としては

Glueを使うなら:

  • データ量が多くて変換処理が複雑なとき
  • 定期的に決まった時間に処理を回したいとき
  • 処理時間が長くかかっても問題ないとき

Lambdaを使うなら:

  • ファイル単位で軽めの整形をしたいとき
  • イベントドリブンにすぐ反応させたいとき
  • Gitでコード管理したいとき

このように、「Glueは重バッチ向き」「Lambdaは軽量・リアルタイム処理向き」という棲み分けが見えてきました。

また、選定にあたっては単なる機能比較だけでなく、コスト感や扱いやすさ(運用・開発のしやすさ)など、プロジェクトの状況に合わせた総合的な判断が必要になります。

今回はそうした観点も踏まえたうえで、実現度が高く、コスト感に優位性がある選択肢としてLambdaを採用しました!

まとめ

  • Glueは「整える」部分を自動化してくれる便利なサービス
  • ただし、Lambdaでも同じことを実現できないかは比較しても良さそう

ここまでお読みいただき、ありがとうございます!

最後になりますが、アスエネでは一緒に働くエンジニアを募集しています。

開発本部 の求人一覧 - アスエネ株式会社

まずは、選考要素のないカジュアル面談も歓迎しています。

僕のPitta(旧:Meety)も記載しておきますね。

https://pitta.me/matches/WfARZpMbREsd

人類が未だかつて直面したことのない、地球規模の課題を解決するためのシステム開発は面白いですよ!

関心や共感のある方は、ぜひお話を聞きに来てください!

Discussion