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

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

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

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

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

先頭に戻る »


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

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

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

また、AWS Glue データカタログは、特に設定を行わずに、Amazon Athena、Amazon EMR、Amazon 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 Athena、Amazon Redshift Spectrum、AWS Glue のメタデータの共通リポジトリとして使用する前に、Amazon Athena データカタログを AWS Glue データカタログにアップグレードする必要があります。アップグレードに必要なステップの詳細については、こちらをご覧ください。

先頭に戻る »


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

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

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

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

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

はい。AWS Glue の ETL ライブラリを使用して自作のコードを作成するか、自作の PySpark コードを作成して 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 で実行できますか?

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

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

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

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

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

先頭に戻る »


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

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

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

さらに、AWS Glue の ETL ジョブは PySpark ベースです。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 Analytics はどのように使い分けますか?

Amazon Kinesis 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 は、現在のところ米国東部 (バージニア北部) および、米国東部 (オハイオ)、米国西部 (オレゴン) の各リージョンで利用でき、今後数か月のうちにその他のリージョンにも拡大される予定です。詳細については、料金ページをご覧ください。

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 通知を設定できます。

先頭に戻る »