

# 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)」を参照してください。