

本文為英文版的機器翻譯版本，如內容有任何歧義或不一致之處，概以英文版為準。

# 設定對資料存放區的網路存取
<a name="start-connecting"></a>

若要執行擷取、轉換和載入 (ETL) 任務，AWS Glue 必須能夠存取您的資料存放區。如果工作不需要在虛擬私有雲端 (VPC) 子網路中執行，例如，從 Amazon S3 到 Amazon S3 轉換資料，無需額外組態。

如果任務需要在 VPC 子網路內執行—例如，在私有子網路中轉換 JDBC 資料存放區內的資料—AWS Glue ​會設定[彈性網路界面](https://docs.aws.amazon.com/vpc/latest/userguide/VPC_ElasticNetworkInterfaces.html)，讓您的任務能安全地連接到 VPC 內的其他資源。每個彈性網路界面都會指派一個私有 IP 地址，而此地址來自您在子網路中指定的 IP 地址範圍。未指派公有 IP 地址。AWS Glue 連線中指定的安全群組將套用至每個彈性網路界面。如需詳細資訊，請參閱[針對從 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 需要在 VPC 中有一個網路位址轉譯 (NAT) 閘道。

 任務或開發端點一次只能存取一個 VPC (和子網路)。如果您需要存取其他 VPC 內的資料存放區，您有下列選項：
+ 使用 VPC 對等存取資料存放區。如需有關 VPC 對等的詳細資訊，請參閱 [VPC 對等基本概念](https://docs.aws.amazon.com/vpc/latest/peering/vpc-peering-basics.html) 
+ 使用 Amazon S3 儲存貯體做為媒介儲存位置。將任務分割成兩個任務，以任務 1 的 Amazon S3 輸出做為任務 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**
+ [設定 VPC 以連線至 的 PyPI AWS Glue](setup-vpc-for-pypi.md)
+ [設定 VPC 中的 DNS](set-up-vpc-dns.md)

# 設定 VPC 以連線至 的 PyPI AWS Glue
<a name="setup-vpc-for-pypi"></a>

Python Package Index (PyPI) 是 Python 程式設計語言的軟體儲存庫。本主題介紹支援使用 pip 安裝的套件 (由工作階段建立者使用 `--additional-python-modules` 旗標指定) 所需的詳細資訊。

搭配連接器使用 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` 需要存取 pypi.org，這由您的 VPC 組態決定。請注意以下要求：

1. 需要透過 pip 安裝為使用者工作階段安裝額外的 python 模組。如果工作階段使用連接器，您的組態可能會受到影響。

1. 當連接器與 `--additional-python-modules` 一起使用，在工作階段啟動時，與連接器的 `PhysicalConnectionRequirements` 關聯的子網路必須提供用於連接 pypi.org 的網路路徑。

1. 您必須確定您的組態是否正確。

## 設定 Amazon S3 儲存貯體以託管目標 PyPI/Simple 儲存庫
<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，您可以提供該索引 URL 來取代上述 Amazon S3 儲存貯體的範例 URL。

若要透過一些範例套件使用自訂索引 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"
   }
   ```

如需詳細資訊，請參閱 [Use CodeArtifact from a VPC](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，請確保在您 VPC 中的 DNS 主機名稱和 DNS 解析均已啟用。VPC 網路屬性 `enableDnsHostnames` 和 `enableDnsSupport` 必須設定為 `true`. 要查看和修改這些屬性，請移至位於 [https://console.aws.amazon.com/vpc/](https://console.aws.amazon.com/vpc/) 的 VPC 主控台。

如需詳細資訊，請參閱[以 VPC 使用 DNS](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 網路屬性。