

# AWS Glue: 仕組み
<a name="how-it-works"></a>

AWS Glue は他の AWS のサービスを使用して ETL (抽出、変換、ロード) ジョブを調整し、データウェアハウスとデータレイクを構築して、出力ストリームを生成します。AWS Glue は API オペレーションを呼び出して、データの変換、ランタイムログの作成、ジョブロジックの保存を行い、ジョブ実行のモニタリングに役立つ通知を作成します。AWS Glue コンソールはこれらのサービスを管理アプリケーションに接続して、お客様が ETL ワークの作成とモニタリングに集中できるようにします。管理およびジョブ開発のオペレーションは、コンソールがお客様に代わって実行します。データソースへのアクセスとデータターゲットへの書き込みを行うために必要な、認証情報と他のプロパティは、お客様が AWS Glue に提供する必要があります。

AWS Glue は、ワークロードを実行するために必要なリソースのプロビジョニングおよび管理を行います。AWS Glue が代わって行うため、ETL ツールのインフラストラクチャを作成する必要はありません。リソースが必要な場合、起動時間を削減するために、AWS Glue はインスタンスのウォームプールからインスタンスを使用してワークロードを実行します。

AWS Glue では、データカタログにあるテーブル定義を使用してジョブを作成します。ジョブは、目的のデータ変換タスクを実行する手順を含むスクリプトで構成されます。トリガーを使用し、スケジュールに基づいて、または指定されたイベントの結果としてジョブを開始します。ターゲットデータが存在する場所、およびターゲットに入力するソースデータを指定します。入力に基づいて、AWS Glue はデータをソースからターゲット形式に変換します。または、AWS Glue コンソールまたは API でカスタムスクリプトを指定して、特定の要件に従ってデータを処理することもできます。

**データソースと送信先**  
AWS Glue for Spark は、次のような複数のシステムやデータベースとの間でデータを読み書きできます。
+ Amazon S3
+ Amazon DynamoDB
+ Amazon Redshift
+ Amazon Relational Database Service (Amazon RDS)
+ JDBC アクセスが可能なサードパーティのデータベース
+ MongoDB と Amazon DocumentDB (MongoDB 互換)
+ その他のマーケットプレイスコネクタと Apache Spark プラグイン

**データストリーム**  
AWS Glue for Spark は、次のシステムからデータをストリーミングできます。
+ Amazon Kinesis Data Streams
+ Apache Kafka

AWS Glue は複数の AWS リージョンで利用可能です。詳細については、[AWS](https://docs.aws.amazon.com/general/latest/gr/rande.html) の「Amazon Web Services 全般のリファレンス のリージョンとエンドポイント」を参照してください。

**Topics**
+ [独立で実行されるサーバーレス ETL ジョブ](#how-it-works-isolation)
+ [AWS Glue の概念](components-key-concepts.md)
+ [AWS Glue コンポーネント](components-overview.md)
+ [AWS Glue for Spark と AWS Glue for Ray](how-it-works-engines.md)
+ [AWS Glue を使用して半構造化されたスキーマをリレーショナルスキーマに変換する](schema-relationalize.md)
+ [AWS Glue 型システム](glue-types.md)

## 独立で実行されるサーバーレス ETL ジョブ
<a name="how-it-works-isolation"></a>

AWS Glue は、Spark または Ray から選択したエンジンを使用して、サーバーレス環境で ETL ジョブを実行します。AWS Glue は、独自のサービスアカウントでプロビジョニングして管理する仮想リソースでこれらのジョブを実行します。

AWS Glue は、以下を実行するよう設計されています。
+ お客様のデータを分離します。
+ 伝送中と保管時のお客様のデータを保護します。
+ 一時的な制限された認証情報を使用して、またはアカウント内の IAM ロールに対するお客様の同意を得て、お客様のリクエストに応え必要な時だけお客様のデータにアクセスします。

ETL ジョブのプロビジョニング時に、Virtual Private Cloud (VPC) にある入力データソースおよび出力データターゲットを提供します。また、データソースおよびターゲットにアクセスするために必要な、IAM ロール、VPC ID、サブネット ID、およびセキュリティグループを提供します。各タプル (顧客アカウント ID、IAM ロール、サブネット ID、およびセキュリティグループ) に、AWS Glue は、AWS Glue サービスアカウント内に存在する他のすべての環境からネットワークおよび管理レベルで分離された新しい環境を作成します。

 AWS アカウント内で、データカタログ、ジョブ、クローラーなどの AWS Glue リソースを作成して設定します。これらのリソースは、作成プロセス中に指定した IAM ロールとネットワーク設定 (サブネットとセキュリティグループ) に関連付けられます。

AWS Glue はプライベート IP アドレスを使用して、サブネットで Elastic Network Interface を作成します。ジョブはこれらの Elastic Network Interface を使用して、データソースおよびデータターゲットにアクセスします。ジョブ実行環境内外へのトラフィックと、ジョブ実行環境内でのトラフィックは、VPC およびネットワークポリシーにより管理されます。ただし、1 つ例外があり、AWS Glue ライブラリに対する呼び出しは、AWS Glue VPC 経由で AWS Glue API オペレーションにトラフィックをプロキシできます。すべての AWS Glue API 呼び出しはログに記録されます。そのため、データの所有者は、監査ログをアカウントに配信する [AWS CloudTrail](https://docs.aws.amazon.com/awscloudtrail/latest/userguide/) を有効にすることで API アクセスを監査できます。

ETL ジョブを実行する AWS Glue 管理の環境は、他の AWS のサービスと同じセキュリティ実施方法で保護されています。プラクティスと共有されたセキュリティ責任の概要については、「[Introduction to AWS Security Processes](https://docs.aws.amazon.com/whitepapers/latest/introduction-aws-security/welcome.html)」のホワイトペーパーを参照してください。