AWS Glue 接続プロパティ
このトピックでは、AWS Glue 接続のプロパティについて説明します。
トピック
必要な接続プロパティ
AWS Glue コンソールで設定を定義する場合は、次のプロパティに値を指定する必要があります。
- 接続名
-
接続用の一意の名前を入力します。
- 接続タイプ
-
JDBC またはいずれかの接続タイプを選択します。
JDBC 接続タイプの詳細については、「AWS Glue JDBC 接続プロパティ」を参照してください。
Amazon Virtual Private Cloud 環境 (Amazon VPC) 内のデータソースへ接続するには、Network を選択します。
選択したタイプに応じて、AWS Glue コンソールにその他の必須フィールドが表示されます。例えば、Amazon RDS を選択した場合は、データベースエンジンを選択する必要があります。
- 要求される SSL 接続
-
このオプションを選択すると、AWS Glue では、データストア接続が信頼できる Secure Sockets Layer (SSL) 経由であることの確認が必要です。
このオプションを選択したときに利用できる追加オプションなどの詳細については、「AWS Glue SSL 接続プロパティ」を参照してください。
- MSK クラスターを選択 (Amazon Managed Streaming for Apache Kafka (MSK) のみ)
-
別の AWS アカウントからの MSK クラスターを指定します。
- Kafka ブートストラップサーバーの URL (Kafka のみ)
-
ブートストラップサーバーの URL のカンマ区切りリストを指定します。ポート番号を含めます。例: b-1.vpc-test-2.o4q88o.c6.kafka.us-east-1.amazonaws.com:9094, b-2.vpc-test-2.o4q88o.c6.kafka.us-east-1.amazonaws.com:9094, b-3.vpc-test-2.o4q88o.c6.kafka.us-east-1.amazonaws.com:9094
AWS Glue JDBC 接続プロパティ
AWS Glue は、JDBC 接続を介して次のデータストアに接続できます。
-
Amazon Redshift
-
Amazon Aurora
-
Microsoft SQL Server
-
MySQL
-
Oracle
-
PostgreSQL
-
Snowflake (AWS Glue クローラーを使用する場合)
-
Aurora (ネイティブ JDBC ドライバーを使用している場合はサポートされます。すべてのドライバー機能を利用できるわけではありません)
-
Amazon RDS for MariaDB
重要
現在、ETL ジョブは 1 つのサブネット内でしか JDBC 接続を使用できません。1 つのジョブに複数のデータストアがある場合は、同じサブネットにあるか、サブネットからアクセス可能である必要があります。
AWS Glue クローラー用に独自の JDBC ドライバーバージョンを導入する場合、クローラーは AWS Glue ジョブと Amazon S3 のリソースを使用して、用意したドライバーが自分の環境で実行されるようにします。リソースの追加使用量はアカウントに反映されます。さらに、独自の JDBC ドライバーを用意しても、クローラーがドライバーの機能をすべて活用できるわけではありません。ドライバーは、「Data Catalog での接続の定義」に記載されているプロパティに限定されます。
JDBC 接続タイプの追加プロパティを次に示します。
- JDBC URL
-
JDBC データストアの URL を入力します。ほとんどのデータベースエンジンの場合、このフィールドは次の形式になります。この形式では、
protocol
、host
、port
、およびdb_name
を独自の情報に置き換えます。jdbc:
protocol
://host
:port
/db_name
データベースエンジンに応じて、別の JDBC URL の形式が必要な場合があります。この形式では、コロン (:) とスラッシュ (/) の使用方法が若干異なるか、データベースを指定するためのキーワードが異なる場合があります。
JDBC をデータストアに接続するためには、データストアの
db_name
が必要です。db_name
は、指定されたusername
とpassword
を使用してネットワーク接続を確立するために使用されます。接続すると、AWS Glue はデータストア内の他のデータベースにアクセスして、クローラーを実行したり ETL ジョブを実行したりできます。次の JDBC URL の例は、いくつかのデータベースエンジンの構文を示しています。
-
dev
データベースを使用して Amazon Redshift クラスターデータストアに接続するにはjdbc:redshift://xxx.us-east-1.redshift.amazonaws.com:8192/dev
-
employee
データベースを使用して Amazon RDS for MySQL データストアに接続するにはjdbc:mysql://xxx-cluster.cluster-xxx.us-east-1.rds.amazonaws.com:3306/employee
-
employee
データベースを使用して Amazon RDS for PostgreSQL データストアに接続するにはjdbc:postgresql://xxx-cluster.cluster-xxx.us-east-1.rds.amazonaws.com:5432/employee
-
employee
サービス名を使用して Amazon RDS for Oracle データストアに接続するにはjdbc:oracle:thin://@xxx-cluster.cluster-xxx.us-east-1.rds.amazonaws.com:1521/employee
Amazon RDS for Oracle の構文は次のパターンに従います。これらのパターンでは、
host
、port
、service_name
、SID
を独自の情報に置き換えます。-
jdbc:oracle:thin://@
host
:port
/service_name
-
jdbc:oracle:thin://@
host
:port
:SID
-
-
employee
データベースを使用して Amazon RDS for Microsoft SQL Server データストアに接続するにはjdbc:sqlserver://xxx-cluster.cluster-xxx.us-east-1.rds.amazonaws.com:1433;databaseName=employee
Amazon RDS for SQL Server の構文は次のパターンに従います。これらのパターンでは、
server_name
、port
、およびdb_name
を独自の情報に置き換えます。-
jdbc:sqlserver://
server_name
:port
;database=db_name
-
jdbc:sqlserver://
server_name
:port
;databaseName=db_name
-
-
employee
データベースの Amazon Aurora PostgreSQL インスタンスに接続するには、データベースインスタンスのエンドポイント、ポート、およびデータベース名を次のように指定します。jdbc:postgresql://employee_instance_1.
xxxxxxxxxxxx
.us-east-2.rds.amazonaws.com:5432/employee -
Amazon RDS for MariaDB データストアに接続する (
employee
データベースを持つ) には、データベースインスタンスのエンドポイント、ポート、およびデータベース名を指定します。jdbc:mysql://
xxx
-cluster.cluster-xxx
.aws-region
.rds.amazonaws.com:3306/employee -
警告
Snowflake JDBC 接続は、AWS Glue クローラーによってのみサポートされます。AWS Glue ジョブで Snowflake コネクタを使用する場合は、Snowflake 接続タイプを使用します。
sample
データベースのインスタンスに接続するには、Snowflake インスタンスのエンドポイント、ユーザー、データベース名、およびロール名を指定します。必要に応じてwarehouse
パラメータを追加できます。jdbc:snowflake://
account_name
.snowflakecomputing.com/?user=user_name
&db=sample&role=role_name
&warehouse=warehouse_name
重要
JDBC 経由の Snowflake 接続では、URL 内のパラメータは、
user
、db
、role_name
、warehouse
の順序にする必要があります。 -
AWS プライベートリンクで
sample
データベースのインスタンスに接続するには、Snowflake JDBC URL を次のように指定します。jdbc:snowflake://
account_name
.region
.privatelink.snowflakecomputing.com/?user=user_name
&db=sample&role=role_name
&warehouse=warehouse_name
-
- ユーザーネーム
-
注記
ユーザー名とパスワードを直接入力するのではなく、AWS シークレットを使用して接続認証情報を保存することをお勧めします。詳細については、「AWS Secrets Manager への接続認証情報の保存」を参照してください。
JDBC データストアにアクセスする権限を持つユーザー名を指定します。
- [パスワード]
-
JDBC データストアへのアクセス権限を持つユーザー名のパスワードを入力します。
- ポート
-
JDBC URL で使用するポートを入力し Amazon RDS Oracle インスタンスに接続します。このフィールドは、Amazon RDS Oracle インスタンスに対して [Require SSL connection] (SSL 接続が必要) を選択したときにしか表示されません。
- VPC
-
データストアを含むVirtual Private Cloud (VPC) の名前を選択します。AWS Glue コンソールには、現在のリージョンの VPC がすべて表示されます。
重要
Snowflake からのデータなど、AWS の外部でホストされている JDBC 接続を使用する場合、VPC にはトラフィックをパブリックサブネットとプライベートサブネットに分割する NAT ゲートウェイが必要です。パブリックサブネットは外部ソースへの接続に使用され、内部サブネットは AWS Glue による処理に使用されます。Amazon VPC を外部接続用に設定する方法については、「NAT デバイスを使用してインターネットまたは他のネットワークに接続する」と「AWS Glue 用 JDBC 経由で Amazon RDS データストアに接続するための VPC 設定」を参照してください。
- サブネット
-
データストアを含む VPC 内のサブネットを選択します。AWS Glue コンソールには VPC 内のデータストアのすべてのサブネットが一覧表示されます。
- セキュリティグループ
-
データストアに関連付けられているセキュリティグループを選択します。AWS Glue には、AWS Glue の接続を許可するインバウンドソースルールを持つ 1 つ以上のセキュリティグループが必要です。AWS Glue コンソールには、VPC へのインバウンドアクセスが許可されているすべてのセキュリティグループが一覧表示されます。AWS Glue は、VPC サブネットにアタッチされている Elastic Network Interface にこれらのセキュリティグループを関連付けます。
- JDBC ドライバークラス名 - オプション
-
次のカスタム JDBC ドライバークラス名を指定します。
-
Postgres – org.postgresql.Driver
-
MySQL – com.mysql.jdbc.Driver、com.mysql.cj.jdbc.Driver
-
Redshift – com.amazon.redshift.jdbc.Driver、com.amazon.redshift.jdbc42.Driver
-
Oracle – oracle.jdbc.driver.OracleDriver
-
SQL Server – com.microsoft.sqlserver.jdbc.SQLServerDriver
-
- JDBC ドライバー S3 パス - オプション
-
カスタム JDBC ドライバーに対して Amazon S3 の場所を指定します。これは.jar ファイルへの絶対パスです。クローラーがサポートするデータベースのデータソースに接続するための独自の JDBC ドライバーを用意したい場合は、
customJdbcDriverS3Path
パラメータとcustomJdbcDriverClassName
パラメータの値を指定できます。 お客様が用意した JDBC ドライバーの使用は、必要な 必要な接続プロパティ に限られます。
AWS Glue MongoDB と MongoDB Atlas の接続プロパティ
MongoDB または MongoDB Atlas 接続タイプの追加のプロパティを次に示します。
- MongoDB URL
-
お使いの MongoDB または MongoDB Atlas データストアの URL を入力します。
MongoDB の場合: mongodb://host:port/database ホストは、ホスト名、IP アドレス、UNIX ドメインソケットのいずれかにすることができます。接続文字列でポートが指定されていない場合は、デフォルトの MongoDB ポート、27017 が使用されます。
MongoDB Atlas: mongodb+srv://server.example.com/database ホストは、DNS SRV レコードに対応するホスト名にすることができます。SRV 形式ではポートは不要であり、デフォルトの MongoDB ポート、27017 が使用されます。
- ユーザーネーム
-
注記
ユーザー名とパスワードを直接入力するのではなく、AWS シークレットを使用して接続認証情報を保存することをお勧めします。詳細については、「AWS Secrets Manager への接続認証情報の保存」を参照してください。
JDBC データストアにアクセスする権限を持つユーザー名を指定します。
- [パスワード]
-
MongoDB または MongoDB Atlas へのアクセス権限を持つユーザー名のパスワードを入力します。
- VPC
-
データストアを含むVirtual Private Cloud (VPC) の名前を選択します。AWS Glue コンソールには、現在のリージョンの VPC がすべて表示されます。
- サブネット
-
データストアを含む VPC 内のサブネットを選択します。AWS Glue コンソールには VPC 内のデータストアのすべてのサブネットが一覧表示されます。
- セキュリティグループ
-
データストアに関連付けられているセキュリティグループを選択します。AWS Glue には、AWS Glue の接続を許可するインバウンドソースルールを持つ 1 つ以上のセキュリティグループが必要です。AWS Glue コンソールには、VPC へのインバウンドアクセスが許可されているすべてのセキュリティグループが一覧表示されます。AWS Glue は、VPC サブネットにアタッチされている Elastic Network Interface にこれらのセキュリティグループを関連付けます。
Snowflake 接続
次のプロパティは、AWS Glue ETL ジョブで用いる Snowflake 接続を設定するために使用します。Snowflake をクローリングする場合は、JDBC 接続を使用します。
- Snowflake URL
-
Snowflake エンドポイントの URL。Snowflake エンドポイントの URL の詳細については、Snowflake ドキュメントの「アカウントへの接続
」を参照してください。 - AWS シークレット
AWS Secrets Manager シークレットのシークレット名。AWS Glue は、シークレットの
sfUser
キーとsfPassword
キーを使用して Snowflake に接続します。- Snowflake ロール (オプション)
AWS Glue が接続時に使用する Snowflake セキュリティロール。
AWS PrivateLink を使用して、Amazon VPC でホストされている Snowflake エンドポイントへの接続を設定する場合は、次のプロパティを使用します。
- VPC
-
データストアを含むVirtual Private Cloud (VPC) の名前を選択します。AWS Glue コンソールには、現在のリージョンの VPC がすべて表示されます。
- サブネット
-
データストアを含む VPC 内のサブネットを選択します。AWS Glue コンソールには VPC 内のデータストアのすべてのサブネットが一覧表示されます。
- セキュリティグループ
-
データストアに関連付けられているセキュリティグループを選択します。AWS Glue には、AWS Glue の接続を許可するインバウンドソースルールを持つ 1 つ以上のセキュリティグループが必要です。AWS Glue コンソールには、VPC へのインバウンドアクセスが許可されているすべてのセキュリティグループが一覧表示されます。AWS Glue は、VPC サブネットにアタッチされている Elastic Network Interface にこれらのセキュリティグループを関連付けます。
AWS Glue SSL 接続プロパティ
[Require SSL connection] (SSL 接続が必要) プロパティの詳細は、次の通りです。
SSL 接続が必要でない場合、AWS Glue では SSL を使用してデータストアへの接続を暗号化できなくても無視されます。設定の手順については、データストアのドキュメントを参照してください。このオプションを選択すると、AWS Glue が接続できない場合、開発エンドポイントでのジョブ実行、クローラー、または ETL のステートメントは失敗します。
注記
Snowflake はデフォルトで SSL 接続をサポートしているため、このプロパティは Snowflake には適用されません。
このオプションは、AWS Glue クライアント側で検証されます。JDBC 接続の場合、AWS Glue は、証明書とホスト名の検証を使用する SSL 経由でのみ接続を行います。SSL 接続サポートは、次の場合に利用できます。
-
Oracle Database
-
Microsoft SQL Server
-
PostgreSQL
-
Amazon Redshift
-
MySQL (Amazon RDS インスタンスのみ)
-
Amazon Aurora MySQL (Amazon RDS インスタンスのみ)
-
Amazon Aurora PostgreSQL (Amazon RDS インスタンスのみ)
-
Kafka (Amazon Managed Streaming for Apache Kafka を含む)
-
MongoDB
注記
Amazon RDS Oracle データストアが [Require SSL connection] (SSL 接続が必要) を使用できるようにするためには、Oracle インスタンスへのオプショングループを作成してアタッチする必要があります。
AWS Management Console にサインインし、Amazon RDS コンソール (https://console.aws.amazon.com/rds/
) を開きます。 -
オプショングループを Amazon RDS Oracle インスタンスに追加します。Amazon RDS コンソールで、オプショングループを追加する方法についての詳細は、「オプショングループを作成する」を参照してください。
-
オプションを SSL のオプショングループに追加します。SSL に指定したポートは、後で Amazon RDS Oracle インスタンスの AWS Glue JDBC 接続 URL を作成するときに使用されます。Amazon RDS コンソールでオプションを追加する方法の詳細については、Amazon RDS ユーザーガイドの「オプショングループにオプションを追加する」を参照してください。の。Oracle SSL のオプションの詳細については、Amazon RDS ユーザーガイドの「Oracle SSL」を参照してください。
-
AWS Glue コンソールで、Amazon RDS Oracle インスタンスへの接続を作成します。接続定義で、[Require SSL connection] を選択します。Amazon RDS Oracle SSL オプションで使用しているポートを、求められれば入力します。
接続に [Require SSL connection] (SSL 接続が必要) が選択されている場合は、次の追加のオプションプロパティを使用できます。
- S3 のカスタム JDBC 証明書
-
オンプレミスまたはクラウドデータベースとの SSL 通信に現在使用している証明書がある場合は、この証明書を AWS Glue データソースまたはターゲットへの SSL 接続に使用できます。カスタムルート証明書が含まれている Amazon Simple Storage Service (Amazon S3) の場所を入力します。AWS Glue はこの証明書を使用してデータベースへの SSL 接続を確立します。AWS Glue は X.509 証明書のみを処理します。証明書は DER エンコードし、Base64 エンコード PEM 形式で指定する必要があります。
このフィールドを空白のままにすると、デフォルトの証明書が使用されます。
- カスタム JDBC 証明書文字列
-
JDBC データベース固有の証明書情報を入力します。これは、ドメインの一致または識別名 (DN) の一致に使用される文字列です。Oracle Database の場合、この文字列は
tnsnames.ora
ファイルの security セクションのSSL_SERVER_CERT_DN
パラメータにマッピングされます。Microsoft SQL Server の場合、この文字列はhostNameInCertificate
として使用されます。Oracle Database の
SSL_SERVER_CERT_DN
パラメータの例を次に示します。cn=sales,cn=OracleContext,dc=us,dc=example,dc=com
- Kafka のプライベート CA 証明書の場所
-
Kafka データストアとの SSL 通信に現在使用している証明書がある場合は、この証明書を AWS Glue接続に使用できます。このオプションは Kafka データストアには必須で、Amazon Managed Streaming for Apache Kafka データストアにはオプションです。カスタムルート証明書が含まれている Amazon Simple Storage Service (Amazon S3) の場所を入力します。AWS Glue はこの証明書を使用して Kafka データストアへの SSL 接続を確立します。AWS Glue は X.509 証明書のみを処理します。証明書は DER エンコードし、Base64 エンコード PEM 形式で指定する必要があります。
- 証明書の検証をスキップ
-
「証明書の検証をスキップ」 チェックボックスをオンにして、AWS Glue によるカスタム証明書の検証をスキップします。検証することを選択すると、AWS Glue は証明書の署名アルゴリズムとサブジェクトパブリックキーアルゴリズムを検証します。証明書の検証に失敗すると、この接続を使用する ETL ジョブまたはクローラーはすべて失敗します。
許可される署名アルゴリズムは、SHA256withRSA、SHA384withRSA、または SHA512withRSA のみです。サブジェクトパブリックキーアルゴリズムの場合、キーの長さは 2048 以上にする必要があります。
- Kafka クライアントのキーストアの場所
-
Kafka クライアント側認証用のクライアントキーストアファイルの Amazon S3 の場所。パスは s3://bucket/prefix/filename.jks の形式である必要があります。ファイル名と .jks 拡張子で終わる必要があります。
- Kafka クライアントキーストアのパスワード (オプション)
-
指定されたキーストアにアクセスするためのパスワード。
- Kafka クライアントキーのパスワード (オプション)
-
キーストアは、複数のキーで構成することができるので、これは、Kafkaサーバー側のキーで使用されるクライアントキーにアクセスするためのパスワードです。
クライアント認証用の Apache Kafka 接続プロパティ
AWS Glue は、Apache Kafka 接続を作成するときの認証用の Simple Authentication and Security Layer (SASL) フレームワークをサポートしています。SASL フレームワークは、さまざまな認証メカニズムをサポートしており、AWS Glue では、SCRAM プロトコル (ユーザー名とパスワード) と GSSAPI (Kerberos プロトコル) の両方が使用できます。
AWS Glue Studio を使用して、次のクライアント認証方法のいずれかを設定します。詳細については、「AWS Glue Studio ユーザーガイド」の「コネクタ用の接続を作成する」を参照してください。
-
None - 認証なし。これは、テスト目的で接続する場合に便利です。
-
SASL/SCRAM-SHA-512 - この認証方法を選択すると、認証情報を指定することができます。2 つのオプションがあります。
-
AWS Secrets Manager を使用 (推奨) - このオプションを選択すると、ユーザー名とパスワードを AWS Secrets Manager に保存して、必要なときに AWS Glue がアクセスできるようにできます。SSL または SASL 認証の認証情報を格納するシークレットを指定します。詳細については、「AWS Secrets Manager への接続認証情報の保存」を参照してください。
-
有効なユーザー名とパスワードを直接指定します。
-
-
SASL/GSSAPI (Kerberos) - このオプションを選択すると、キータブファイル、krb5.conf ファイルの場所を選択して、Kerberos プリンシパル名と Kerberos サービス名を入力することができます。キータブファイルと krb5.conf ファイルの場所は、Simple Storage Service (Amazon S3) がある場所の中にする必要があります。MSK は SALS/GSSAPI をまだサポートしていないため、このオプションは Customer Managed Apache Kafka クラスターでのみ使用できます。詳細については、MIT Kerberos ドキュメント: キータブ
を参照してください。 -
SSL クライアント認証 - このオプションを選択すると、Simple Storage Service (Amazon S3) を参照することで Kafka クライアントキーストアの場所を選択できます。オプションで、Kafka クライアントキーストアのパスワードと Kafka クライアントキーのパスワードを入力できます。
Google BigQuery 接続
次のプロパティは、AWS Glue ETL ジョブで用いる Google BigQuery 接続を設定するために使用します。詳細については、「BigQuery 接続」を参照してください。
- AWS シークレット
-
AWS Secrets Manager にあるシークレットの[シークレット名]。 AWS GlueETL ジョブは、ユーザーのシークレットの
credentials
キーを使用して Google BigQuery に接続します。