「AWS Glueを使った Serverless ETL の実装パターン」について発表しました #devio2020

2020.07.06

この記事は公開されてから1年以上経過しています。情報が古い可能性がありますので、ご注意ください。

おつかれさまです。CX事業本部の新井です。

2020年7月3日に開催されたDevelopers.IO 2020 CONNECT Day6で発表した資料を投下します。

このセッションを通して、みなさまに

  • 「AWS Glueというサービスの概要がわかった!」
  • 「AWS Glueでの実装イメージが湧いた!」

と思っていただければ幸いです。

セッション概要

本セッションでは、「AWSを使ってサーバーレスなETL処理をしたいけど、どうやっていいか分からない?」といった方に向けて、AWS Glueと周辺サービスを利用した実装方法(コーディング、テスト、デプロイ、モニタリングなど)を紹介します。

発表資料

動画

Q&A

「開発中にGlueの使い過ぎで想定以上の課金が発生した」といった失敗談があれば聞いてみたいです。実際の開発案件でどれぐらいの料金が発生し得るのか?

過去に「Glue開発エンドポイントの立てっぱなし」と「Glue Jobの複数回起動」で想定以上の料金が発生していました。

以下、上司とのやりとりです。

注意しておきたい点をまとめておきます。

  1. DPUのサイズを可能な限り抑える(開発エンドポイントもGlue Jobも必要最低限まで落としましょう)
  2. 開発エンドポイントの消し忘れに気をつける(自動終了するスクリプトを定期実行しておくのもいいかも知れません)

Glueの開発エンドポイントを使った開発時にglue pytestのようなテストコードを実行することはできますか?

こちらは検証中です。

※のちほど追記します

AWS Glueで実装する場合、RPAの実装のようにワークフロー画面を利用して、No Codingで実装することは可能でしょうか?

結論から言うと、難しいと思います。

AWS Glue側でサンプルスクリプトの自動生成をしてくれますが、ノンコーディングで完結することはまずないです。 ほとんどのケースにおいては、開発者が用途に応じた処理を書く必要があるでしょう。

今回ご紹介いただいたセンサー情報の加工のみならず、S3に蓄積したデータが勤怠や営業情報などの場合もGlueをETL処理として利用することは有効でしょうか?

S3に保存されているデータ形式によりますが、 「勤怠や営業情報など」であれば構造化もしくは半構造化データかと思いますので、 AWS Glueを利用することは有効だと思います。

Glueのジョブブックマークの挙動がよく分からないのですが、解説記事等はありますか?

解説記事は、公式のドキュメントを参照すると良いかと思います。

さいごに

セッションに参加していただいた方、運営してくださったクラメソのメンバーに感謝です。

ありがとうございました!