AWS Glue ETL - AWS 規範ガイダンス

AWS Glue ETL

AWS Glue ETL は、さまざまなソースからデータを抽出し、ビジネスニーズに合わせてデータを変換し、選択した宛先にロードすることをサポートしています。このサービスは Apache Spark エンジンを使用してビッグデータのワークロードをワーカーノード全体に分散し、インメモリ処理によるより高速な変換を可能にします。

AWS Glue は、Amazon Simple Storage Service (Amazon S3)、Amazon DynamoDB、Amazon Relational Database Service (Amazon RDS) などさまざまなデータソースをサポートしています。サポートされているデータソースの詳細については、AWS Glue の「ETL の接続タイプとオプション」を参照してください。

AWS Glue でのオーサリング

AWS Glue には経験やユースケースに応じて、ETL ジョブをオーサリングする方法が複数用意されています。

  • Python シェルジョブは、Python で記述された基本的な ETL スクリプトを実行するために設計されています。これらのジョブは 1 台のマシンで実行されるため、小規模または中規模のデータセットに適しています。

  • Apache Spark ジョブは、 Python または Scala のいずれかで作成できます。これらのジョブは Spark を使用し多数のワーカーノードにわたってワークロードを水平方向にスケールするため、大規模なデータセットや複雑な変換を処理できます。

  • AWS Glue ストリーミング ETL は、Apache Spark の構造化ストリーミングエンジンを使用して、Exactly-once を使用してマイクロバッチジョブ内のストリーミングデータを変換します。AWS Glue ストリーミングジョブは Python または Scala で作成できます。

  • AWS Glue Studio は、Apache Spark プログラミングに不慣れな開発者が Spark ベースの ETL にアクセスできるようにするための視覚的なボックスと矢印スタイルのインターフェースです。

データ処理単位

AWS Glue はデータ処理ユニット (DPU) を使用して ETL ジョブに割り当てられたコンピュートリソースを測定し、コストを計算します。1 つの DPU は 4 基の vCPUs と 16 GB のメモリに相当します。DPU は、その複雑さとデータ量に応じて AWS Glue ジョブに割り当てる必要があります。DPU を適切な量割り当てることで、パフォーマンス要件とコスト制約とのバランスを取ることができます。

AWS Glue には、さまざまなワークロードに最適化されたいくつものワーカータイプが用意されています。

  • G.1X または G.2X (ほとんどのデータ変換、結合、クエリ用)

  • G.4X または G.8X (より要求の厳しいデータ変換、集約、結合、クエリ用)

  • G.025X (少量で散発的なデータストリーム用)

  • Standard (AWS Glue バージョン 1.0 以前用、それ以降のバージョンの AWS Glue では非推奨)

Python シェルを使用する

Python シェルジョブでは、1 DPU を使用して 16 GB のメモリを使用するか、0.0625 DPU を使用して 1 GB のメモリを使用できます。Python シェルは、小規模または中規模のデータセット (約 10 GB まで) を使用する基本的な ETL ジョブを対象としています。

ワーカータイプの比較

次の表は、Apache Spark 環境を使用するバッチ、ストリーミング、および AWS Glue Studio ETL ワークロードのさまざまな AWS Glue ワーカータイプを示しています。

G.1X

G.2X

G.4X

G.8X

G.025X

規格

vCPU

4

8

16

32

2

4

メモリ

16 GB

32 GB

64 GB

128 GB

4 GB

16 GB

ディスク容量

64 GB

128 GB

256 GB

512 GB

64 GB

50 GB

1 ワーカーあたりのエグゼキューター

1

1

1

1

2

DPU

1

2

4

8

0.25

1

AWS Glue バージョン 2.0 以降では、Standard ワーカータイプは推奨されていません。G.025X ワーカータイプは、AWS Glue バージョン 3.0 以降を使用したストリーミングジョブでのみ利用可能です。