MENU
Archives

AWS Glue とは?概要やできること、導入メリットについて

みなさまは、AWS GlueというAWSのデータ統合サービスをご存じでしょうか。
「AWSは知っているけど、AWS Glueは聞いたことがない。」
「データ統合サービスってETLのこと?」

AWSにはEC2やS3など様々なサービスがあり、AWSを利用している企業のみなさまでもすべてのサービスをご存じの方は少ないものです。

本記事では、情報システム部門のコンサルティングやBIツールでのデータの可視化・分析などデータ活用に関する多くの知見のある株式会社KUIXがこれまでの経験をもとにAWSのデータ統合サービスであるAWS Glueについて概要や機能、利用料金などを解説いたします。

目次

AWS Glue とは

AWS Glueは、AWS EC2やAWS S3など様々なサービスを提供するAWS(Amazon Web Services)が提供するサーバーレスのデータ統合サービスです。
AWS RedshiftやAWS S3などのデータソースからデータ分析/機械学習/アプリケーション開発などを行う際に各サービス間のデータ連携時に対象となるデータの検出・抽出・結合を行うETL機能を持っており、また、必要なデータがどこにあるのか?やどのようなデータなのか?を管理する機能も持っています。

※AWS Glueの概要に関する公式ドキュメント
AWS Glue の概要

https://docs.aws.amazon.com/ja_jp/glue/latest/dg/what-is-glue.html

補足:ETL とは

ETLは、「Extract(抽出)、Transform(変換)、Load(書き出し)」の略で、生産/在庫/販売管理などの基幹システムやCRM(顧客管理システム)などの複数のシステムからデータを抽出、加工し、DWHに蓄積するためのツールです。

似ているキーワードとして、ELTというツールもあります。
ELTは、「Extract(抽出)、Load(書き出し)、Transform(変換)」の略で、Load(書き出し)とTransform(変換)が逆になっています。

データを抽出、加工し、蓄積するという意味では、同じですが、処理を行う場所が異なり、ETLはETLツール内で一連の処理を行うのに対し、
ELTは、データベース内でデータを抽出し、保存してから加工する。という違いがあります。

補足:サーバーレス とは

サーバーレスは、サーバーに依存することなくプログラムを実行するための技術のことで、このサーバーレスという考え方を用いて、システム設計および構築することはサーバーレスアーキテクチャと呼ばれています。
サーバーレスにより、サーバーの調達(購入)や構築、保守が不要となり、さらに開発担当者は、アプリケーション開発に注力できるようになります。

また、サーバーが稼働していないと、Webアプリケーションなどのシステムも起動・稼働することができませんが、24時間365日稼働している必要はなく、処理が実行される時だけサーバーも稼働していれば良いため、サーバーレスにより低コストで効率よくサーバーを運用することができます。
代表的なサービスとして、Azure Functions、AWS Lambda、GCP Cloud Functionsがあります。

AWS GlueとAWS Lambdaの違い

AWSが提供するデータ統合サービスには、AWS GlueとAWS Lambdaがあります。
AWS GlueとAWS Lambdaは、基本的には同様の機能を持つサービスですが、タイムアウトと料金体系に大きな違いがあります。
※AWS Glueの詳細な料金体系は後述。

〇タイムアウト
データを処理しようとした場合にAWS Lambdaは15分でタイムアウトしてしまうため、大量のデータ処理を行う場合は、タイムアウトが48時間であるAWS Glueが向いています。
 AWS Glue:48時間
 AWS Lambda:15分

〇料金体系
AWS Glueは、実行時間に応じた従量課金であるのに対し、AWS Lambdaは実行時間の他に割り当てるメモリ量による従量課金となります。
そのため、短時間で処理が終わる比較的少ないデータの場合、AWS GlueよりもAWS Lambdaの方がコストを抑えることができますが、
割り当てるメモリ量を多くした場合には、AWS GlueよりもAWS Lambdaの方がコストが高くなる可能性もあります。

 AWS Glue:実行時間に応じて従量課金
 AWS Lambda:実行時間と割り当てメモリ量に応じて従量課金

AWS Glueの機能

AWS Glueの概要は理解できましたでしょうか。ここからはAWS Glueの機能を解説します。
AWS Glueの主な機能には、以下の4つの機能があります。

ETLジョブ

まず1つ目は、ETLジョブです。
ETLジョブは、AWS RedshiftやAWS S3などのデータソースからデータを抽出し、必要に応じて分析しやすいようにデータ処理を行い、DWHにデータを連携する機能です。
AWS Lambdaと同様にPythonプログラムなどをサーバーレスで実行することができ、JSONデータのCSV変換などのデータ変換ジョブを実行することができます。

また、JSONデータのCSV変換などのデータ変換ジョブは、ETL単位で実行することができ、「Apache Spark」と「Python Shell」という2つのジョブタイプがあります。
「Apache Spark」タイプは、Apache Sparkのクラスタを制御して大規模分散処理を実行することができ、ジョブによって、ドライバーと複数のエグゼキューターが起動し、スクリプトはドライバーで実行されます。
「Python Shell」タイプは、Pythonスクリプトを実行するためのジョブです。

※ETLジョブに関する最新情報は公式ドキュメントを参照ください。
AWS Glue での ETL ジョブ

https://docs.aws.amazon.com/ja_jp/glue/latest/dg/etl-jobs-section.html

クローラー

2つ目は、クローラーです。
クローラーは、データソースからETLジョブによって構築されたデータレイクをクローリング(定期的にチェック)し、メタデータ(どのようなデータなのかといった情報)を抽出し、データカタログに登録・更新する機能です。

なお、メタデータには、テーブル情報/テーブルプロパティ/テーブルスキーマなどの情報が含まれており、AWS Redshiftのようなデータベースの他にAWS S3のストレージ内のファイル情報をクローリングすることもできます。

※クローラーに関する最新情報は公式ドキュメントを参照ください。
クローラーの仕組み

https://docs.aws.amazon.com/ja_jp/glue/latest/dg/crawler-running.html

データカタログ

“3つ目は、データカタログです。
データカタログは、前述のクローラーによって、抽出されたメタデータが格納される領域です。
メタデータは、データ分析時に利用され、メタデータがあることによって、高速で高頻度なデータ分析の実行やデータ分析結果の信頼性が担保されます。
また、データカタログは、AWSアカウント毎に1つ作成されます。

※データカタログに関する最新情報は公式ドキュメントを参照ください。
AWS Glue のデータカタログとクローラー

https://docs.aws.amazon.com/ja_jp/glue/latest/dg/catalog-and-crawler.html

ワークフロー

“最後は、ワークフローです。
ワークフローは、前述のETLジョブ、クローラ、データカタログ機能を一連の処理として自動実行するための機能です。

※ワークフローに関する最新情報は公式ドキュメントを参照ください。
AWS Glue のワークフローの概要

https://docs.aws.amazon.com/ja_jp/glue/latest/dg/workflows_overview.html

AWS Glueのメリット

AWS Glueを導入することで得られるメリットは、主に以下の3つがあります。

サーバーレス構成でデータ分析環境を簡単に構築できる

まず1つ目は、サーバーレス構成でデータ分析環境を簡単に構築できることです。
AWS Glueは、前述の通りサーバーレスのため、他のAWSサービスと同様に、実機サーバーの調達や初期設定などが不要のため、データ分析環境を簡単に構築することができます。
また、大容量のデータを扱う場合のデータ容量やサイジングなども考慮不要です。

データの処理や更新を自動化できる

2つ目は、データの処理や更新を自動化できることです。
データ分析には、分析に適したデータが必要であり、場合によっては大容量のデータを処理する必要がありますが、AWS Glueを導入することで、データ処理やデータ更新を自動化することができます。
そのため、今まで手作業で行っていたデータ加工などを効率化することができます。

データ処理用のコードが自動生成できる

最後は、データ処理用のコードが自動生成できることです。
AWS Glueは、ETLジョブで行うデータの抽出や変換、読み込みに関するコードを自動的に生成することができます。
そのため、コードのパラメータであるデータソースやテーブルを変更することでデータ変換やフラット化などの処理を行うことができ、1からコーディング(プログラムを作成)する必要はなく、効率的に開発を行うことができます。

AWS Glueの料金体系

前述の通り、AWS Glueの料金体系は、実行時間に応じた従量課金となっており。課金対象は、ジョブによって使用されるデータ容量やリソース、クローラーです。
また、時間単位での課金と月額料金として課金される2種類があります。

〇時間単位課金
 ・DPU(Data Processing Unit)に対する課金
  ETLジョブ実行時に使用されたデータ処理ユニット(DPU:Data Processing Unit)の数に基づく課金。
 ・クローラーの利用による課金
  クローラーの実行時の時間とデータ処理ユニット(DPU:Data Processing Unit)の数に基づく課金。
 ・(オプション)インタラクティブセッションに対する課金
  インタラクティブなETLコード開発を使用する場合のセッションがアクティブな時間とデータ処理ユニット(DPU:Data Processing Unit)の数に基づく課金。
 ・(オプション)開発エンドポイントに対する課金
  インタラクティブなETLコード開発を使用する場合のエンドポイントがプロビジョニングされた時間とデータ処理ユニット(DPU:Data Processing Unit)の数に基づく課金。

〇月額料金として課金
 ・データカタログ利用に対する課金
  データカタログとして使用しているオブジェクトの個数とアクセス回数に基づく課金。
  ※100万個までのオブジェクトの保存は無料
  ※毎月100万回までのデータカタログへのアクセス回数は無料

※AWS Glueの料金体系に関する最新情報は公式ドキュメントを参照ください。
AWS Glue の料金

https://aws.amazon.com/jp/glue/pricing/

まとめ

AWS GlueではないETLサービスを利用・運用中の情報システム担当者の方で、
「サーバーのランニングコストを最適化したい」
「データ処理などの業務を自動化したい」
といった方は、AWSのデータ統合サービスであるAWS Glueの導入を検討してはいかがでしょうか。

株式会社KUIXではAWSを用いたシステムの開発やコンサルティングを行っています。本格的なAWS環境の構築・導入をご検討される際は、ぜひ一度ご連絡ください!お問い合わせはこちらから

よかったらシェアしてね!
  • URLをコピーしました!
  • URLをコピーしました!

この記事を書いた人

目次