

# データストアへのネットワークアクセスを設定する
<a name="start-connecting"></a>

抽出、変換、ロード (ETL) ジョブを実行するには，AWS Glue がデータストアにアクセスできる必要があります。ジョブをVirtual Private Cloud (VPC) サブネットで実行する必要がない場合 (例えば、Amazon S3 から Amazon S3 へのデータ変換など)、追加の設定は必要ありません。

ジョブを VPC サブネットで実行する必要がある場合 (プライベートサブネット内の JDBC データストアからのデータの変換など)、AWS Glue は、ジョブを VPC 内の他のリソースに安全に接続できるようにする [Elastic Network Interfaces](https://docs.aws.amazon.com/vpc/latest/userguide/VPC_ElasticNetworkInterfaces.html) をセットアップします。それぞれの Elastic Network Interface には、指定したサブネット内の IP アドレス範囲からプライベート IP アドレスが割り当てられます。パブリック IP アドレスは割り当てられません。AWS Glue 接続で指定されたセキュリティグループは、各 Elastic Network Interface に適用されます。詳しくは、「[AWS Glue から Amazon RDS データストアに JDBC 接続するための Amazon VPC の設定](setup-vpc-for-glue-access.md)」を参照してください。

ジョブによってアクセスされるすべての JDBC データストアは、VPC サブネットから使用できる必要があります。VPC 内から Amazon S3 にアクセスするには [VPC エンドポイント](vpc-endpoints-s3.md) が必須です。ジョブが VPC リソースとパブリックインターネットの両方にアクセスする必要がある場合は、 VPC 内にネットワークアドレス変換 (NAT) ゲートウェイが必要になります。

 ジョブまたは開発エンドポイントは、一度に 1 つの VPC (およびサブネット) にのみアクセスできます。異なる VPC のデータストアにアクセスする必要がある場合は、次のオプションがあります。
+ VPC ピア接続を使用してデータストアにアクセスします。VPC ピア接続の詳細については、「[VPC ピア接続の基本](https://docs.aws.amazon.com/vpc/latest/peering/vpc-peering-basics.html)」を参照してください。
+ 中間的なストレージとして Amazon S3 バケットを使用します。ジョブ 1 での Amazon S3 出力をジョブ 2 への入力としながら、作業を 2 つのジョブに分割します。

Amazon VPC を使用して Amazon Redshift データストアに接続する方法の詳細については、「[Redshift 接続の設定](aws-glue-programming-etl-connect-redshift-home.md#aws-glue-programming-etl-connect-redshift-configure)」を参照してください。

Amazon VPC を使用して Amazon RDS データストアに接続する方法の詳細については、「[AWS Glue から Amazon RDS データストアに JDBC 接続するための Amazon VPC の設定](setup-vpc-for-glue-access.md)」を参照してください。

Amazon VPC で必要なルールを設定したら、データストアに接続するために必要なプロパティを使用して、AWS Glue で接続を作成します。接続の詳細については、「[データへの接続](glue-connections.md)」を参照してください

**注記**  
AWS Glue の DNS 環境を必ず設定してください。詳細については、「[VPC での DNS のセットアップ](set-up-vpc-dns.md)」を参照してください。

**Topics**
+ [

# AWS Glue の PyPI に接続する VPC のセットアップ
](setup-vpc-for-pypi.md)
+ [

# VPC での DNS のセットアップ
](set-up-vpc-dns.md)

# AWS Glue の PyPI に接続する VPC のセットアップ
<a name="setup-vpc-for-pypi"></a>

Python Package Index (PyPI) は、Python プログラミング言語用のソフトウェアのリポジトリです。このトピックでは、(セッションの作成者が `--additional-python-modules` フラグを使用して指定した) pip インストールパッケージの使用をサポートするために必要な詳細について説明します。

コネクタで AWS Glue インタラクティブセッションを使用すると、コネクタに指定されたサブネット経由で VPC ネットワークが使用されます。そのため、特別な設定をセットアップしない限り、AWS サービスやその他のネットワーク送信先は使用できません。

この問題には、次のような解決策があります。
+ セッションからアクセス可能なインターネットゲートウェイの使用。
+ パッケージセットの依存関係の推移閉包を含む PyPI/simple リポジトリを使用した S3 バケットのセットアップと使用。
+ PyPI をミラーリングし、VPC にアタッチされている CodeArtifact リポジトリの使用。

## インターネットゲートウェイをセットアップする
<a name="setup-vpc-for-pypi-internet-gateway"></a>

技術面については、「[NAT ゲートウェイのユースケース](https://docs.aws.amazon.com/vpc/latest/userguide/nat-gateway-scenarios.html)」で詳しく説明していますが、`--additional-python-modules` を使用するには以下の要件に注意してください。具体的には、`--additional-python-modules` には、VPC の設定によって決まる pypi.org へのアクセス権が必要です。次の要件に注意してください。

1. ユーザーのセッションに追加の Python モジュールを pip インストール経由でインストールする要件。セッションがコネクタを使用する場合、設定が影響を受ける可能性があります。

1. `--additional-python-modules` でコネクタを使用している場合、セッションが開始されると、pypi.org に到達するためのネットワークパスがコネクタの `PhysicalConnectionRequirements` に関連付けられたサブネットで指定される必要があります。

1. 設定が正しいかどうかを判断する必要があります。

## ターゲット PyPI/simple リポジトリをホストする Amazon S3 バケットのセットアップ
<a name="setup-vpc-for-pypi-s3-bucket"></a>

この例では、Amazon S3 に一連のパッケージとその依存関係について PyPI のミラーリングをセットアップします。

一連のパッケージに PyPI のミラーリングを設定するには:

```
# pip download all the dependencies
pip download -d s3pypi --only-binary :all: plotly gglplot
pip download -d s3pypi --platform manylinux_2_17_x86_64 --only-binary :all: psycopg2-binary
# create and upload the pypi/simple index and wheel files to the s3 bucket
s3pypi -b test-domain-name --put-root-index -v s3pypi/*
```

既存のアーティファクトリポジトリがある場合は、pip 用のインデックス URL があります。これを、上記の Amazon S3 バケットのサンプル URL の代わりに指定できます。

カスタム index-url をいくつかのサンプルパッケージで使用するには:

```
%%configure
{
    "--additional-python-modules": "psycopg2_binary==2.9.5",
    "python-modules-installer-option": "--no-cache-dir --verbose --index-url https://test-domain-name.s3.amazonaws.com/ --trusted-host test-domain-name.s3.amazonaws.com"
}
```

## VPC にアタッチされた PyPI の CodeArtifact ミラーリングのセットアップ
<a name="setup-vpc-for-pypi-code-artifact"></a>

ミラーリングをセットアップするには:

1. コネクタが使用するサブネットと同じリージョンにリポジトリを作成します。

   [`Public upstream repositories`]、[`pypi-store`] の順に選択します。

1. サブネットの VPC からリポジトリにアクセスできるようにします。

1. `python-modules-installer-option` を使用して正しい `--index-url` を指定します。

   ```
   %%configure
   {
       "--additional-python-modules": "psycopg2_binary==2.9.5",
       "python-modules-installer-option": "--no-cache-dir --verbose --index-url https://test-domain-name.s3.amazonaws.com/ --trusted-host test-domain-name.s3.amazonaws.com"
   }
   ```

詳細については、「[VPC から CodeArtifact を使用する](https://docs.aws.amazon.com/codeartifact/latest/ug/use-codeartifact-from-vpc.html)」を参照してください。

# VPC での DNS のセットアップ
<a name="set-up-vpc-dns"></a>

ドメインネームシステム (DNS) は、インターネットで使用する名前を対応する IP アドレスに解決するための標準です。DNS ホスト名は、ホスト名とドメイン名で構成され、コンピュータに一意の名前を付けます。DNS サーバーは DNS ホスト名を対応する IP アドレスに解決します。

VPC で DNS をセットアップするには、DNS ホスト名と DNS 解決の両方が VPC で有効になっていることを確認します。VPC ネットワーク属性の `enableDnsHostnames` と `enableDnsSupport` を `true` に設定する必要があります。これらの属性を表示および変更するには、VPC コンソール ([https://console.aws.amazon.com/vpc/](https://console.aws.amazon.com/vpc/)) を開きます。

詳細については、「[Using DNS with Your VPC](https://docs.aws.amazon.com/vpc/latest/userguide/vpc-dns.html)」を参照してください。また、AWS CLI を使用して [modify-vpc-attribute](https://docs.aws.amazon.com/cli/latest/reference/ec2/modify-vpc-attribute.html) コマンドを実行し、VPC ネットワーク属性を設定することもできます。

**注記**  
Route 53 を使用している場合は、設定によって DNS ネットワーク属性が上書きされないようにする必要があります。