全般

Q: AWS Glue とはどのようなサービスですか?

AWS Glue はフルマネージド型で従量制を採用した、データの抽出、変換、ロード (ETL) のためのサービスで、分析用にデータを準備するという時間のかかるステップを自動化できます。AWS Glue では、Glue データカタログによって自動的にデータの検出とプロファイルが行われ、ソースデータをターゲットスキーマに変換する ETL コードの推奨と生成が行われます。その後、フルマネージド型の Apache Spark スケールアウト環境で ETL ジョブが実行され、データが送信先にロードされます。また、複雑なデータフローのセットアップ、調整、モニタリングも実行できます。

Q: AWS Glue の使用を開始するにはどうしたらよいですか?

AWS Glue の使用を開始するには、AWS マネジメントコンソールにサインインして、[分析] カテゴリの [AWS Glue] をクリックしてください。AWS Glue のユースケースの一例を説明したガイド付きチュートリアルのいずれかに沿って実行できます。また、AWS ラボにある GitHub リポジトリには、ETL コードのサンプルがあります。

Q: AWS Glue を構成する主なコンポーネントには何がありますか?

AWS Glue は、メタデータの集中リポジトリであるデータカタログ、Scala または Python のコードを自動生成する ETL エンジン、および依存関係の解決、ジョブのモニタリング、再試行を処理する柔軟なスケジューラで構成されています。このコンポーネントが連動することで、データの検出、分類、クリーニング、エンリッチ、移動に関連する、差別化につながらない面倒な作業の大部分が自動化されるため、お客様はデータの分析により多くの時間をかけることができます。

Q: AWS Glue を使用するとよいのはどのような場合ですか?

AWS Glue は、所有するデータに関するプロパティ検出、変換、分析準備のために使用できます。Glue では、Amazon S3 に構築されたデータレイク、Amazon Redshift 内のデータウェアハウス、AWS で実行されるさまざまなデータベースに保存された構造化データと半構造化データの両方を自動的に検出できます。Glue データカタログによるデータの統合ビューを利用でき、ETL のほか、Amazon AthenaAmazon EMRAmazon Redshift Spectrum といったサービスを使用したクエリとレポートに利用できます。Glue では、ETL ジョブを実行する、Scala または Python のコードが自動生成されます。お客様は、使い慣れたツールを使用して、このコードをさらにカスタマイズできます。AWS Glue はサーバーレスなので、コンピューティングリソースを設定して管理する必要がありません。

Q: AWS Glue でサポートされるのはどのようなデータソースですか?

Amazon AuroraAmazon RDS for MySQLAmazon RDS for OracleAmazon RDS for PostgreSQLAmazon RDS for SQL ServerAmazon RedshiftAmazon S3 に保存されたデータに加え、Amazon EC2 で実行されている Virtual Private Cloud (Amazon VPC) 内の MySQL、Oracle、Microsoft SQL Server、PostgreSQL などのデータベースが AWS Glue でネイティブでサポートされます。AWS Glue データカタログに保存されたメタデータは、Amazon AthenaAmazon EMRAmazon Redshift Spectrum から簡単にアクセスできます。Scala または Python のカスタムコードを作成し、Glue ETL ジョブにカスタムライブラリと JAR ファイルをインポートすることで、AWS Glue でネイティブにサポートされていないデータソースにアクセスすることもできます。カスタムライブラリのインポートの詳細については、AWS のドキュメントをご覧ください。

Q: AWS Glue はどのようにAWS Lake Formationと関係していますか?

回答:Lake Formationは コンソールコントロール、 ETL コード生成 およびジョブ監視、一般データカタログおよびサーバーのないアーキテクチャーを含む、AWS Glueを用いた共有インフラストラクチャーに力を加えます。AWS Glueは3種類の機能に焦点を当てていますが、Lake FormationはすべてのAWS Glue機能を包括して、データレイクの構築、保全および管理を助けるよう設計された追加能力を提供します。詳細は AWS Lake Formation ページ を参照してください。

AWS Glue データカタログ

Q: AWS Glue データカタログとは何ですか?

AWS Glue データカタログは、すべてのデータアセットの構造上および運用上のメタデータを保存する集中リポジトリです。あるデータセットについて、テーブルの定義や物理的な場所を保存し、ビジネスに関連する属性を追加することができ、このデータがこれまでどのように変更されたか追跡することもできます。

AWS Glue データカタログは Apache Hive メタストアと互換性があります。また、Amazon EMR で実行されているビッグデータアプリケーションの Apache Hive メタストアとは完全互換性があります。AWS Glue データカタログを Apache Hive メタストアとして使用するよう EMR クラスターを設定する方法の詳細については、こちらをクリックしてください。

また、AWS Glue データカタログは、特に設定を行わずに、Amazon AthenaAmazon EMRAmazon Redshift Spectrum と統合できます。Glue データカタログに追加されたテーブル定義は ETL に利用できます。また、Amazon Athena、Amazon EMR、Amazon Redshift Spectrum でのクエリにも簡単に利用できるため、このようなサービスの間で共通のデータビューを設定できます。

Q: メタデータを AWS Glue データカタログに登録するにはどうしたらよいですか?

メタデータを AWS Glue データカタログに登録する方法はいくつかあります。お客様が所有しているさまざまなデータストアは Glue クローラーによってスキャンされ、スキーマとパーティション構造が自動的に推測され、Glue データカタログに対応するテーブル定義と統計情報が登録されます。基盤になるデータとメタデータが同期された最新の状態を保てるよう、クローラーの定期実行をスケジュールすることもできます。別の方法として、AWS Glue コンソールを使用するか API を呼び出して、テーブルの詳細情報の追加や更新を手動で実行することもできます。また、Hive DDL ステートメントを Amazon Athena コンソールや Amazon EMR クラスターの Hive クライアントから実行することもできます。最後に、永続的な Apache Hive メタストアが既に存在する場合は、AWS のインポート用スクリプトを使用して、メタデータを AWS Glue データカタログに一括インポートできます。

Q: AWS Glue クローラーとは何ですか?

AWS Glue クローラーはデータストアに接続すると、分類子の順位リストに従ってデータからスキーマやその他の情報を抽出し、得られたメタデータを Glue データカタログに入力します。クローラーは定期的に実行され、新しいデータの追加、既存データの変更、テーブル定義の変更が検知されます。クローラーにより、新しいテーブル、既存テーブルの新しいパーティション、テーブル定義の新しいバージョンが自動的に追加されます。Glue クローラーは、独自のファイル形式を分類できるようにカスタマイズできます。

Q: 既存の Apache Hive メタストアのデータを AWS Glue データカタログにインポートするにはどうしたらよいですか?

Apache Hive メタストアからデータを読み取って中間フォーマットで Amazon S3 にエクスポートし、そのデータを AWS Glue データカタログにインポートする ETL ジョブを実行します。

Q: メタデータを AWS Glue データカタログに保存している場合、Apache Hive メタストアも実行し続ける必要がありますか?

いいえ。AWS Glue データカタログは Apacher Hive メタストアと互換性があります。Glue データカタログのエンドポイントを指定して、Apache Hive メタストアの代替として使用できます。AWS Glue データカタログを Apache Hive メタストアとして使用するようクラスターを設定する方法の詳細については、こちらのドキュメントをご覧ください。

Q: Amazon Athena または Amazon Redshift Spectrum を既に使用していて、Amazon Athena の内部データカタログにテーブルが存在します。AWS Glue データカタログを共通のメタデータリポジトリとして使用するにはどうしたらよいですか?

AWS Glue データカタログを Amazon AthenaAmazon Redshift Spectrum、AWS Glue のメタデータの共通リポジトリとして使用する前に、Amazon Athena データカタログを AWS Glue データカタログにアップグレードする必要があります。アップグレードに必要なステップの詳細については、こちらをご覧ください。

抽出、変換、ロード (ETL)

Q: AWS Glue の ETL コードを記述するのに、どのようなプログラミング言語を使用できますか?

Scala または Python のどちらかを使用できます。

Q: AWS Glue で生成された ETL コードをカスタマイズするにはどうしたらよいですか?

AWS Glue の ETL スクリプト推奨システムでは、Scala または Python のコードが生成されます。このコードでは、Glue のカスタム ETL ライブラリを活用することで、データソースへのアクセスとジョブ実行の管理が簡略化されます。このライブラリの詳細については、AWS のドキュメントをご覧ください。AWS Glue のカスタムライブラリを使用して ETL コードを作成する、または任意のコードを Scala または Python で記述するには、AWS Glue コンソールのスクリプトエディタでインライン編集する、自動生成コードをダウンロードする、お使いの IDE で編集する、といった方法があります。Github リポジトリで提供されている多数のサンプルのいずれかを出発点として、コードをカスタマイズすることもできます。

Q: カスタムライブラリを ETL スクリプトの一部としてインポートできますか?

はい。Python のカスタムライブラリと JAR ファイルを AWS Glue ETL ジョブにインポートできます。詳細については、こちらのドキュメントをご覧ください。

Q: 自作のコードを使用できますか?

はい。AWS Glue の ETL ライブラリを使用して自前のコードを生成するか、Scala または Python で自作のコードを記述して Glue ETL ジョブにアップロードできます。詳細については、こちらのドキュメントをご覧ください。

Q: 自分の IDE を使って ETL コードを開発するにはどうしたらよいですか?

お使いのメモ帳や IDE への接続方法となる開発エンドポイントを作成して、そこに接続できます。

Q: AWS Glue で複数のジョブを使用してエンドツーエンドの ETL ワークフローを構築するにはどうしたらよいですか?

AWS Glue には、ETL ライブラリとコード生成機能に加えて、堅牢なオーケストレーション機能のセットが用意されており、複数のジョブ間の依存関係を管理してエンドツーエンドの ETL ワークフローを構築できます。AWS Glue の ETL ジョブは、スケジュールとジョブ完了イベントのいずれかによってトリガーできます。ジョブ完了イベントによるトリガーを使用すれば、複数のジョブを並列または順列にトリガーできます。AWS Lambda 関数のような外部ソースから 1 つまたは複数の Glue ジョブをトリガーすることもできます。

Q: AWS Glue で依存関係はどのようにモニタリングされますか?

AWS Glue では、複数のジョブの管理や外部イベントの依存関係の管理にトリガーを使用します。トリガーにより、1 つまたは複数のジョブを監視することや、1 つまたは複数のジョブを呼び出すことができます。ジョブを定期的に呼び出すようスケジュールされたトリガー、オンデマンドのトリガー、ジョブ完了時のトリガーを使用できます。

Q: AWS Glue でエラーはどのように処理されますか?

AWS Glue ではジョブイベントのメトリクスとエラーがモニタリングされ、すべての通知が Amazon CloudWatch にプッシュされます。Amazon CloudWatch を使うと、AWS Glue からの特定の通知に基づいてトリガーできるアクションのホストを設定できます。例えば、Glue からエラーや成功の通知を受信した時に、AWS Lambda 関数をトリガーできます。また、Glue では、デフォルトで再試行するよう設定されているため、障害発生時にはエラー通知を送信する前に 3 回再試行されます。

Q: 既存の ETL ジョブを AWS Glue で実行できますか?

はい。Scala または Python で記述された既存のコードを AWS Glue で実行できます。コードを Amazon S3 にアップロードし、そのコードを使用するジョブを作成してください。Amazon S3 にあるコードを指定することで、複数のジョブから同じコードを再利用できます。

Q: ETL ストリーミングデータに AWS Glue を使用するにはどうしたらよいですか?

AWS Glue の ETL はバッチ指向であり、ETL ジョブを最短 5 分間隔でスケジュールできます。マイクロバッチは処理できますが、ストリーミングデータは処理されません。ストリーミング入力中の ETL データを処理する必要があるユースケースでは、ETL の最初の処理を Amazon Kinesis Data Firehose、または Amazon Kinesis Data Analytics を使用して実行してから、データを Amazon S3 または Amazon Redshift に保存し、そのデータセットを取得する Glue ETL ジョブをトリガーして、そのデータの変換作業を継続できます。

Q: このサービスを使用する場合、AWS Glue データカタログと Glue ETL の両方を使用する必要がありますか?

いいえ。AWS Glue データカタログと ETL の両方を使用することでエンドツーエンドの ETL 操作を実現できますが、いずれか一方のみを独立して使用することもできます。

データを消去して重複を排除する

Q: FindMatches ML 変換では、どのような問題が解決されますか?

一般に、FindMatches はレコード連携およびデータ重複排除の問題を解決します。重複排除は、概念的には「同一」であるが別々のレコードがあるデータベース内のレコードを識別するために必要です。重複したレコードを一意のキーで識別できる場合 (たとえば、製品を UPC コードで一意に識別できる場合) これはそこまで大きな問題ではありませんが、「あいまい一致」を行う必要がある場合は非常に大きな課題となります。

レコード連携は基本的にデータ重複排除と同じ問題ですが、この用語は通常、単一のデータベースを重複排除するのではなく、一意のキーを共有しない 2 つのデータベース間で「あいまい結合」を行っていることを意味します。例として、大規模な顧客データベースを既知の詐欺師の小規模データベースと照合する問題を考えてみましょう。FindMatches は、レコード連携と重複排除の両方に使用できます。

たとえば、AWS Glue の FindMatches ML 変換 は、以下のような問題を解決するのに役立ちます。

病院間で患者の記録をリンクさせることによって、医師が患者に対するより多くの背景情報を得ることができ、名前、誕生日、自宅住所、電話番号などの共通フィールドを持つ別々のデータベースで FindMatches を使用することで、患者に対するより良い治療を提供できる。

「タイトル」、「プロットの概要」、「リリースされた年」、「上映時間」、「出演者」などの列を含む映画のデータベースを重複排除する。たとえば、同じ映画でも「スターウォーズ」、「スターウォーズ: 新たなる希望」、「スターウォーズ: エピソード 4/新たなる希望 (スペシャルエディション)」といったさまざまな形で認識されることになります。

アパレル製品カタログでサイズや色の違いを無視して「同等」と定義することによって、店頭で同じようなアイテムをまとめた関連商品を自動グループ化する。この場合「Levi 501 ブルージーンズ、サイズ 34 x 34」は、「Levi 501 ジーンズ - 黒、サイズ 32 x 31」と同じであると定義されます。

Q: AWS Glue はどのようにしてデータを複製しますか?

AWS Glue の FindMatches ML 変換では、同じエンティティを参照していても信頼できる識別子を共有していないいくつかのレコードを簡単に見つけてリンクすることができます。FindMatches がリリースされる前は、開発者は通常、手作業で調整した規則を大量に作成することによって、データマッチングの問題を決定論的に解決していました。FindMatches は、バックグラウンドで機械学習アルゴリズムを使用して、それぞれの開発者のビジネス基準に従ってレコードを一致させる方法を学習します。まず、FindMatches はお客様がどのように一致を見極めてラベル付けしているかを記憶し、次に機械学習を使用して ML 変換を作成します。その後、お客様は自分のデータベースでこの変換を実行して一致するレコードを見つけるか、あるいは FindMatches にラベル付けするレコードを追加することによって ML 変換の精度を上げることができます。

Q: ML 変換とは何ですか?

ML 変換は、機械学習変換を作成および管理する目的地を提供します。作成およびトレーニングが完了すると、これらの ML 変換は標準の AWS Glue スクリプトで実行できます。お客様は特定のアルゴリズム (たとえば FindMatches ML 変換) を選択し、データセットとトレーニングの例、およびそのアルゴリズムに必要な調整パラメーターを入力します。AWS Glue はこれらの入力を使用して、通常の ETL ジョブワークフローに組み込み可能な ML 変換を構築します。

Q: ML 変換の仕組みを教えてください。

AWS Glue には特殊な ML ベースのデータセット変換アルゴリズムが含まれており、お客様はこれを独自の ML 変換を作成するために使用できます。これには、レコードの重複排除と一致の検出が含まれます。

お客様は、コンソールの [ML Transforms] タブに移動して (または ML 変換サービスエンドポイントを使用するか、CLI 経由で ML 変換トレーニングにアクセスして) 最初の ML 変換モデルを作成します。[ML Transforms] タブは、ユーザー変換を管理するための使いやすいビューを提供します。ML 変換には、個別のトレーニング、パラメータ調整、実行ワークフローの必要性、生成された変換の品質メトリクスを推定する必要性、トレーニングや積極的な学習のために追加の truth ラベルを管理し収集する必要性など、ほかの変換とは異なるワークフロー要件が必要です。

コンソールから ML 変換を作成するには、まず変換の種類 (レコード重複排除やレコードマッチングなど) を選択し、以前にデータカタログで検出された適切なデータソースを指定します。変換によっては、トレーニング用の Ground Truth ラベルデータや追加のパラメータの提供を求められる場合があります。お客様はトレーニングジョブのステータスをモニタリングし、各トランスフォームの品質メトリクスを確認できます。(品質メトリクスは、お客様が用意したラベルデータのホールドアウトセットを使用して報告されます)。

満足のいくパフォーマンスを得ることができたら、ML 変換モデルを昇格して本番環境で使用することができます。その他の AWS Glue ライブラリで提供されているビルド済みトランスフォームと同様に、ML 変換は、サービスによって自動生成されたコード、およびその他のジョブと共に送信されたユーザー定義スクリプトの両方で、ETL ワークフロー中に使用できます。

Q: AWS Glue (および AWS Lake Formation) を使用したレコードの照会、重複の排除に関するプレゼンテーションを視聴することはできますか?

A: はい。AWS オンライン Tech Talk「Fuzzy Matching and Deduplicating Data with ML Transforms for AWS Lake Formation」の録画 (全編) をご覧ください。

AWS 製品の統合

Q: AWS Glue とAWS Data Pipeline はどのように使い分けますか?

AWS Glue では、Apache Spark サーバーレス環境で運用されるマネージド型 ETL サービスが提供されています。お客様は ETL ジョブに集中でき、基盤となるコンピューティングリソースの設定や管理について心配する必要がありません。AWS Glue ではデータ優先のアプローチが採用されており、ビジネスインサイトを引き出すことができる形式にデータを変換するための、データのプロパティと操作に集中できます。データカタログが統合され、ETL に加えて Amazon AthenaAmazon Redshift Spectrum でのクエリにもメタデータを利用できるようになります。

AWS Data Pipeline はマネージド型のオーケストレーションサービスで、実行環境、コードを実行するコンピューティングリソースに対するアクセスと制御、およびデータ処理のコード自体について、より大きな柔軟性を備えています。AWS Data Pipeline ではお客様のアカウント内でコンピューティングリソースが起動され、Amazon EC2 インスタンスや Amazon EMR クラスターに直接アクセスできるようになります。

さらに、AWS Glue の ETL ジョブは、Scala または Python をベースとしています。Apache Spark 以外のエンジンの使用が必要なユースケースや、Hive や Pig などさまざまなエンジンで実行される複数の異種ジョブを実行する場合は、AWS Data Pipeline をお勧めします。

Q: AWS Glue とAmazon EMR はどのように使い分けますか?

AWS Glue は Apache Spark 環境で動作させることができ、データ変換ジョブのスケールアウト実行環境が提供されます。AWS Glue では ETL ジョブの推測、展開、モニタリングが行われ、ジョブの作成とメンテナンスのプロセスが大幅に簡略化されます。Amazon EMR では Hadoop 環境に直接アクセスでき、下位レベルへのアクセスや、Spark 以外のツールを使用できる柔軟性が向上します。

Q: AWS Glue と AWS Database Migration Service はどのように使い分けますか?

AWS Database Migration Service (DMS) によって、データベースを AWS に簡単かつ安全に移行できます。オンプレミスから AWS へのデータベース移行が必要なユースケースや、オンプレミスのソースと AWS のソースとの間でデータベースのレプリケーションが必要なユースケースでは、AWS DMS の使用をお勧めします。データを AWS 内に移動した後は、AWS Glue を使用して、データを変換して、データソースから Amazon Redshift のような別のデータベースやデータウェアハウスに移行できます。

Q: AWS Glue と AWS Batch はどのように使い分けますか?

AWS Batch では、ジョブの性質にかかわらず、AWS でバッチコンピューティングジョブを簡単かつ効率的に実行できます。AWS Batch では、AWS アカウント内でコンピューティングリソースの作成と管理が行われ、使用しているリソースを全面的に制御および把握できます。AWS Glue はフルマネージド型の ETL サービスで、ETL ジョブを実行するための Apache Spark サーバーレス環境が提供されます。ETL ユースケースでは、AWS Glue の使用を検討するようお勧めします。バッチ指向のその他のユースケースでは、一部の ETL ユースケースも含め、AWS Batch の方が適している場合があります。

Q: AWS Glue と Amazon Kinesis Data Analytics はどのように使い分けますか?

Amazon Kinesis Data Analytics では、入力データストリームで標準 SQL クエリを実行できます。Amazon S3 などをクエリ結果の書き込み先として指定できます。ターゲットデータソースでデータを利用できるようになれば、AWS Glue の ETL ジョブを起動してデータをさらに変換し、分析やレポート作成に向けて準備できます。

料金と請求

Q: AWS Glue の料金はどのように請求されますか?

AWS Glue データカタログの無料利用枠の超過分について、AWS Glue データカタログ内でのメタデータの保存とアクセスに対するシンプルな月額料金が発生します。また、ETL ジョブとクローラーの実行に対して、時間料金が秒単位で課金されます。10 分間の分の最低料金が発生します。ETL コードの双方向開発用として開発エンドポイントを使用することにした場合、開発エンドポイントがプロビジョニングされた時間に対して、時間料金が秒単位で課金されます。これについても、10 分間の分の最低料金が発生します。詳細については、料金ページをご覧ください。

Q: AWS Glue ジョブの課金はいつ開始され、いつ終了しますか?

ジョブの実行がスケジュールされるとすぐに課金が始まり、ジョブ全体が終了するまで続きます。AWS Glue では、ジョブが実行された時間に対してのみ支払いが発生し、環境のプロビジョニングやシャットダウンの時間に対しては課金されません。

セキュリティと可用性

Q: AWS Glue でデータはどのように保護されますか?

保存データではサーバー側暗号化、移動中のデータでは SSL を利用できます。

Q: AWS Glue に関連するサービスの上限はどのくらいですか?

サービス上限の詳細については、AWS のドキュメントをご覧ください。

Q: AWS Glue を利用できるのはどのリージョンですか?

AWS Glue サービスのリージョン別の可用性の詳細については、AWS リージョン一覧表を参照してください。

Q: 開発エンドポイントには何個の DPU (データ処理ユニット) が割り当てられますか?

開発エンドポイントのプロビジョニング時には、デフォルトでは 5 個の DPU が割り当てられます。開発エンドポイントに割り当てることができる DPU の数は 2~5 個です。

Q: AWS Glue の ETL ジョブのサイズとパフォーマンスをスケールするにはどうしたらよいですか?

ETL ジョブに割り当てる DPU (データ処理ユニット) の数を指定できます。Glue の ETL ジョブには最低で 2 個の DPU が必要です。AWS Glue のデフォルトでは、各 ETL ジョブに 10 個の DPU が割り当てられます。

Q: AWS Glue ジョブの実行をモニタリングするにはどうしたらよいですか?

AWS Glue では各ジョブのステータスが出力され、すべての通知が Amazon CloudWatch イベントにプッシュされます。CloudWatch アクションによって、ジョブの失敗や完了を通知するよう SNS 通知を設定できます。

サービスレベルアグリーメント (SLA)

Q: AWS Glue の SLA は何を保証していますか?

AWS Glue SLA は、AWS Glue について毎月最低 99.9% の稼働率を保証しています。

Q: SLA サービスクレジットの資格を有しているかどうかは、どうすればわかりますか?

同じリージョン内でタスクを実行している複数のアベイラビリティーゾーンで、毎月の課金期間中の稼働率が 99.9% 未満なら、AWS Glue SLA 対象の AWS Glue に対する SLA クレジットの資格があります。

SLA の利用規約に関するすべての詳細、およびクレジット請求方法の詳細については、AWS Glue SLA の詳細ページを参照してください。

Product-Page_Standard-Icons_01_Product-Features_SqInk
料金ページを見る

AWS Glue の料金オプションをご確認ください。

詳細 
Product-Page_Standard-Icons_02_Sign-Up_SqInk
無料のアカウントにサインアップ

AWS 無料利用枠にすぐにアクセスできます。 

サインアップ 
Product-Page_Standard-Icons_03_Start-Building_SqInk
コンソールで構築を開始する

AWS マネジメントコンソールで AWS Glue を使った構築を始めましょう。

サインイン