AWS Glue(エーダブリューエス グルー)は、Amazon.comがAmazon Web Services(AWS)の一部として提供する、ETL(データの抽出・変換・書き出し)を中心としたデータ統合サービスである。複数の場所に分かれて保存されているデータの構造を自動的に調べて目録にまとめる。そのうえで分析に適した形へ変換し、データレイクやデータウェアハウスへ移す。サーバーレスのサービスであり、利用者はサーバーを用意・管理せず、処理を実行した時間に応じた料金を支払う。2016年12月に予告され、2017年8月14日に一般提供が始まった。

概要 企業がデータ分析を行うときは、業務システムのデータベースやログファイルなど複数の場所にあるデータを、分析しやすい形に整えて1か所に集める必要がある。この抽出・変換・書き出しの処理をETLと呼ぶ。ETLでは、変換の内容を細かく指定したスクリプトを利用者が用意する必要があり、手間がかかるとされる。AWS GlueはこのETLの処理をAWS上のサービスとして提供し、データの検出、目録の作成、変換処理の実行、実行の自動化までを1つのサービスにまとめている。クラウドサービスであるため、利用者が処理を動かすインフラを構築したり管理したりする必要はない。TechTargetジャパンは、AWS Glueとマイクロソフトの「Azure Data Factory」を、クラウド上のETLサービスの代表として並べて紹介している。

AWS Glueは70を超えるデータソースへの接続に対応し、収集したメタデータ(データの所在や構造を説明する情報)を一元的なデータカタログで管理する。カタログに登録したデータは、Amazon Athena、Amazon EMR、Amazon Redshift Spectrumといった他のAWSの分析サービスからそのまま検索・照会できる。ETLの処理は主にApache Sparkを基盤とする実行環境で動き、変換の手順はPython(Apache Sparkを操作するPySpark)またはScalaで記述する。

料金は、クローラーとETLジョブについて、処理に割り当てた「データ処理ユニット」(DPU)の数と実行時間に応じて秒単位で計算される。1DPUは4個の仮想CPUと16ギガバイトのメモリに相当する。データカタログについては、保存したメタデータの量とアクセス回数に応じた月額料金がかかる。

ジョブの実行状況はAmazon CloudWatchのメトリクスとログで監視でき、AWSはジョブ内部の動きを把握するための追加のメトリクスを「オブザーバビリティメトリクス」と呼んでいる。DatadogやNew Relicなどのサードパーティーのオブザーバビリティサービスも、AWS Glueのメトリクスを取り込むインテグレーションを提供している。

主な構成要素 AWS Glueは、次の要素の組み合わせでETLの流れを構成する。

AWS Glue Data Catalog(データカタログ) テーブルの定義やジョブの定義などのメタデータを保存する場所。実際のデータは元の保存先に残り、カタログには構造を説明する情報だけが置かれる。AWSアカウントとリージョンごとに1つ用意される。Apache Hiveのメタストアと互換性があり、Amazon EMR上のアプリケーションからはHiveメタストアの代わりとして利用できる。 クローラー データの保存先に接続して項目構成(スキーマ)を推測し、データカタログにテーブルの定義を作成するプログラム。CSV、JSON、XMLなどのファイル形式や、JDBC(Javaの標準的なデータベース接続方式)で接続する関係データベースに対応する。 ETLジョブ データの抽出、変換、書き出しを行う処理の本体。変換の手順はAWS Glueが自動生成することもでき、利用者が用意したものを使うこともできる。半構造化データ(JSONのように入れ子や配列を含み、表の形に収まりきらないデータ)を扱うための「動的フレーム」(DynamicFrame)という表形式が用意されており、Apache SparkのDataFrameと相互に変換できる。 トリガーとワークフロー 指定した時刻や別のジョブの完了といった出来事に応じてジョブの実行を開始する仕組み。複数のクローラーとジョブをつないだ一連の流れをワークフローとして定義できる。 AWS Glue Studio ジョブを画面上で図として組み立て、実行状況を監視できるグラフィカルな操作画面。2020年9月に追加された。 AWS Glue DataBrew プログラムを書かずに、画面操作でデータの表記のばらつきや欠けた値を整えるためのツール。整えた手順は「レシピ」として保存し、再利用できる。 AWS Glue Data Quality データが想定した条件を満たしているかを規則として定義し、継続的に点検する機能。

歴史 AWS Glueは2016年12月にAWSから予告され、2017年8月14日、アメリカのニューヨークで開かれたAWS Summitで一般提供の開始が発表された。当初の提供地域は米国東部(バージニア北部)リージョンのみで、順次拡大するとされた。同年12月21日にはアジアパシフィック(東京)リージョンでも利用できるようになった。2018年1月には、変換の手順を記述する言語としてPythonに加えてScalaが選べるようになった。

2020年8月にはジョブの起動時間を短くしたAWS Glue 2.0が、9月にはビジュアルな操作画面のAWS Glue Studioが、11月にはデータの形式定義を集中管理するスキーマレジストリが加わった。同じ2020年11月には、プログラムを書かずにデータを整えるAWS Glue DataBrewが一般提供された。

2021年8月のAWS Glue 3.0はApache Spark 3.0系に対応し、2022年11月のAWS Glue 4.0はApache Hudi、Delta Lake、Apache Icebergといったデータレイク向けのテーブル形式にそのまま対応した。2023年5月にはAWS Glue Data Qualityが一般提供された。

2024年1月には、自然言語による指示からETLの手順を生成する「Amazon Q data integration in AWS Glue」がプレビューとして公開され、同年4月に一般提供された。同年12月にはApache Spark 3.5.2とJava 17を採用したAWS Glue 5.0が提供され、2026年8月にはApache Spark 4.1系とPython 3.13を採用したAWS Glue 6.0が提供された。

関連項目 Extract/Transform/Load データレイク データウェアハウス Apache Spark Apache Hive Amazon Simple Storage Service

脚注

外部リンク AWS Glue(日本語) AWS Glue(英語) AWS Glueユーザーガイド(日本語)