

# 使用 VPC 终端节点网络爬取 Amazon S3 数据存储
<a name="connection-S3-VPC"></a>

出于安全、审计或控制目的，您可能希望您的 Amazon S3 数据存储或 Amazon S3 支持的数据目录表只能通过 Amazon Virtual Private Cloud 环境（Amazon VPC）访问。本主题介绍如何使用 `Network` 连接类型在 VPC 终端节点中创建和测试与 Amazon S3 数据存储或 Amazon S3 支持的数据目录表的连接。

执行以下任务以在数据存储中运行爬网程序：
+ [先决条件](#connection-S3-VPC-prerequisites)
+ [创建到 Amazon S3 的连接](#connection-S3-VPC-create-connection)
+ [测试 Amazon S3 的连接](#connection-S3-VPC-test-connection)
+ [为 Amazon S3 数据存储创建爬网程序](#connection-S3-VPC-create-crawler)
+ [运行爬网程序](#connection-S3-VPC-run-crawler)

## 先决条件
<a name="connection-S3-VPC-prerequisites"></a>

检查您是否满足设置 Amazon S3 数据存储或 Amazon S3 支持的数据目录表以通过 Amazon Virtual Private Cloud 环境（Amazon VPC）访问的先决条件。
+ 已配置的 VPC。例如：vpc-01685961063b0d84b。有关更多信息，请参阅《Amazon VPC 用户指南》**中的 [Amazon VPC 入门](https://docs.aws.amazon.com/vpc/latest/userguide/vpc-getting-started.html)。
+ 附加到 VPC 的 Amazon S3 端点。例如：vpc-01685961063b0d84b。有关更多信息，请参阅《Amazon VPC 用户指南》**中的 [Amazon S3 端点](https://docs.aws.amazon.com/vpc/latest/userguide/vpc-endpoints-s3.html)。  
![附加到 VPC 的 Amazon S3 端点示例。](http://docs.aws.amazon.com/zh_cn/glue/latest/dg/images/network_s3_vpc_s3_endpoint_attached.png)
+ 指向 VPC 终端节点的路由条目。例如，VPC endpoint(vpce-0ec5da4d265227786) 使用的路由表中的 vpce-0ec5da4d265227786。  
![指向 VPC 终端节点的路由条目示例。](http://docs.aws.amazon.com/zh_cn/glue/latest/dg/images/network_s3_vpc_route_entry.png)
+ 附加到 VPC 的网络 ACL 允许流量。
+ 附加到 VPC 的安全组允许流量。

## 创建到 Amazon S3 的连接
<a name="connection-S3-VPC-create-connection"></a>

通常，您在 Amazon Virtual Private Cloud（Amazon VPC）内部创建资源，以便这些资源不能通过公共 Internet 访问。默认情况下，AWS Glue 无法访问 VPC 中的资源。要让 AWS Glue 能够访问 VPC 中的资源，您必须提供包括 VPC 子网 ID 和安全组 ID 在内的其他 VPC 特定的配置信息。要创建 `Network` 连接，您需要指定以下信息：
+ VPC ID
+ VPC 内的子网
+ 安全组

设置 `Network` 连接

1. 选择 AWS Glue 控制台导航窗格中的 **Add connection (添加连接)**。

1. 输入连接名称，选择 **Network (网络)** 作为连接类型。选择**下一步**。  
![选择连接类型。](http://docs.aws.amazon.com/zh_cn/glue/latest/dg/images/network_s3_vpc_add_network_1.png)

1. 配置 VPC、子网和安全组信息。
   + VPC：选择包含您的数据存储的 VPC 名称。
   + 子网：选择 VPC 内的子网。
   + 安全组：选择允许访问 VPC 中数据存储的一个或多个安全组。  
![选择连接类型。](http://docs.aws.amazon.com/zh_cn/glue/latest/dg/images/network_s3_vpc_add_network_2.png)

1. 选择**下一步**。

1. 验证连接信息并选择 **Finish (完成)**。  
![选择连接类型。](http://docs.aws.amazon.com/zh_cn/glue/latest/dg/images/network_s3_vpc_add_network_3.png)

## 测试 Amazon S3 的连接
<a name="connection-S3-VPC-test-connection"></a>

创建 `Network` 连接后，您可以在 VPC 终端节点中测试 Amazon S3 数据存储的连接。

测试连接时可能会发生以下错误：
+ INTERNET CONNECTION ERROR：表示互联网连接问题
+ INVALID BUCKET ERROR：表示 Amazon S3 存储桶存在问题
+ S3 CONNECTION ERROR：表示未能连接到 Amazon S3
+ INVALID CONNECTION TYPE：表示连接类型不具有预期值 `NETWORK`
+ INVALID CONNECTION TEST TYPE：表示网络连接测试类型存在问题
+ INVALID TARGET：表示未正确指定 Amazon S3 存储桶

测试 `Network` 连接：

1. 选择 AWS Glue 控制台中的 **Network (网络)** 连接。

1. 选择 **Test connection (测试连接)**。

1. 选择您在上一步中创建的 IAM 角色并指定 Amazon S3 存储桶。

1. 选择 **Test connection (测试连接)**，开始测试。显示结果可能需要一些时间。

![测试连接。](http://docs.aws.amazon.com/zh_cn/glue/latest/dg/images/network_s3_vpc_test_network.png)


 如果收到错误，请检查以下几点：
+ 为所选角色提供正确的权限。
+ 提供了正确的 Amazon S3 存储桶。
+ 安全组和网络 ACL 允许所需的传入和传出流量。
+ 您指定的 VPC 已连接到 Amazon S3 VPC 终端节点。

成功测试连接后，您便可创建爬网程序。

## 为 Amazon S3 数据存储创建爬网程序
<a name="connection-S3-VPC-create-crawler"></a>

现在，您可以创建一个爬网程序来指定您已创建的 `Network` 连接。有关创建爬网程序的更多详细信息，请参阅[配置爬网程序](define-crawler.md)。

1. 首先在 AWS Glue 控制台上的导航窗格中选择 **Crawlers (爬网程序)**。

1. 选择 **添加爬网程序**。

1. 指定爬网程序名称，选择 **Next (下一步)**。

1. 当询问数据源时，选择 **S3**，并指定 Amazon S3 存储桶前缀和您先前创建的连接。  
![测试连接。](http://docs.aws.amazon.com/zh_cn/glue/latest/dg/images/network_s3_vpc_add_crawler_1.png)

1. 如果需要，请在同一网络连接上添加另一个数据存储。

1. 选择 IAM 角色。IAM 角色必须允许访问 AWS Glue 服务和 Amazon S3 存储桶。有关更多信息，请参阅 [配置爬网程序](define-crawler.md)。  
![测试连接。](http://docs.aws.amazon.com/zh_cn/glue/latest/dg/images/network_s3_vpc_add_crawler_2.png)

1. 定义爬网程序的计划。

1. 在数据目录中选择一个现有数据库或创建一个新的数据库条目。  
![测试连接。](http://docs.aws.amazon.com/zh_cn/glue/latest/dg/images/network_s3_vpc_add_crawler_3.png)

1. 完成剩余的设置。

## 为 Amazon S3 支持的数据目录表创建网络爬取程序
<a name="connection-S3-VPC-create-crawler-catalog-vpc"></a>

现在，您可以创建指定您已创建 `Network` 连接的爬取程序和目录源类型。有关创建爬网程序的更多详细信息，请参阅[配置爬网程序](define-crawler.md)。

1. 首先在 AWS Glue 控制台上的导航窗格中选择 **Crawlers (爬网程序)**。

1. 选择 **添加爬网程序**。

1. 指定爬网程序名称，选择 **Next (下一步)**。

1. 当询问网络爬取程序源类型时，选择**现有目录表**，然后指定要从可用表列表中网络爬取的现有目录表。  
![选择网络爬取源类型。](http://docs.aws.amazon.com/zh_cn/glue/latest/dg/images/catalog-vpc-1.png)

1. 选择 IAM 角色。IAM 角色必须允许访问 AWS Glue 服务和 Amazon S3 存储桶。有关更多信息，请参阅 [配置爬网程序](define-crawler.md)。

1. 定义爬网程序的计划。

1. 在数据目录中选择一个现有数据库或创建一个新的数据库条目。

1. 完成剩余的设置并查看步骤。  
![选择网络爬取程序源类型。](http://docs.aws.amazon.com/zh_cn/glue/latest/dg/images/catalog-vpc-2.png)

## 运行爬网程序
<a name="connection-S3-VPC-run-crawler"></a>

运行您的爬网程序。

![按需运行您的爬网程序。](http://docs.aws.amazon.com/zh_cn/glue/latest/dg/images/network_s3_vpc_s3_endpoint_run_crawler.png)


## 问题排查
<a name="connection-S3-VPC-troubleshooting"></a>

对于与使用 VPC 网关的 Amazon S3 存储桶相关的故障排除，请参阅[为什么我无法使用网关 VPC 终端节点连接到 S3 存储桶？](https://aws.amazon.com/premiumsupport/knowledge-center/connect-s3-vpc-endpoint/)