亚马逊VPC期权 - Amazon EMR

本文属于机器翻译版本。若本译文内容与英语原文存在差异,则一律以英文原文为准。

亚马逊VPC期权

当您在中启动 Amazon EMR 集群时VPC,可以在公有子网、私有子网或共享子网中启动该集群。配置上存在少量但明显的区别,具体取决于您为集群选择的子网类型。

公有子网

EMR公有子网中的集群需要连接的互联网网关。这是因为亚马逊EMR集群必须访问 AWS 服务和亚马逊EMR。如果某项服务(例如 Amazon S3)能够创建VPC终端节点,则您可以使用该终端节点访问这些服务,而不必通过互联网网关访问公有终端节点。此外,Amazon EMR 无法通过网络地址转换 (NAT) 设备与公有子网中的集群通信。为此,需要互联网网关,但在更复杂的场景中,您仍然可以将NAT实例或网关用于其他流量。

集群中的所有实例都通过VPC终端节点或互联网网关连接到 Amazon S3。其他目前不支持VPC端点的 AWS 服务仅使用互联网网关。

如果您不想将其他 AWS 资源连接到 Internet 网关,则可以在自己创建的私有子网中启动这些组件VPC。

在公有子网中运行的集群将使用两个安全组:一个用于主节点,另一个用于核心节点和任务节点。有关更多信息,请参阅 使用安全组控制网络流量

下图显示了VPC使用公有子网的 Amazon EMR 集群如何在中运行。集群能够通过互联网网关连接到其他 AWS 资源,例如 Amazon S3 存储桶。

在 a 上集群 VPC

下图显示了如何设置,VPC以便中的群集VPC可以访问您自己网络中的资源,例如 Oracle 数据库。

设置VPC和群集以访问本地VPN资源

私有子网

私有子网允许您启动 AWS 资源,而无需子网连接 Internet 网关。Amazon EMR 支持在 4.2.0 或更高版本的私有子网中启动集群。

注意

当您在私有子网中设置 Amazon EMR 集群时,我们建议您同时为 Amazon S3 设置VPC终端节点。如果您的EMR集群位于没有 Amazon S3 VPC 终端节点的私有子网中,则会产生与 S3 流量相关的额外NAT网关费用,因为您的EMR集群与 S3 之间的流量不会停留在您的VPC范围内。

私有子网与公有子网的区别在以下方面:

  • 要访问不提供VPC终端节点的 AWS 服务,您仍然必须使用NAT实例或 Internet 网关。

  • 您必须至少提供指向亚马逊 S3 中亚马逊EMR服务日志存储桶和 Amazon Linux 存储库的路径。有关更多信息,请参阅 私有子网的最低 Amazon S3 策略

  • 如果您使用EMRFS功能,则需要有一个 Amazon S3 VPC 终端节点和一条从您的私有子网到 DynamoDB 的路由。

  • 只有当您提供从私有子网到公有 Amazon SQS 终端节点的路径时,调试才有效。

  • 只有使用才支持使用公有子网中的NAT实例或网关创建私有子网配置 AWS Management Console。为亚马逊EMR集群添加和配置NAT实例和 Amazon S3 VPC 终端节点的最简单方法是使用亚马逊EMR控制台中的VPC子网列表页面。要配置NAT网关,请参阅 Amazon VPC 用户指南中的NAT网关

  • 您不能将现有 Amazon EMR 集群的子网从公有子网更改为私有子网,反之亦然。要在私有子网中找到 Amazon EMR 集群,必须在该私有子网中启动该集群。

Amazon EMR 为私有子网中的集群创建和使用不同的默认安全组: ElasticMapReduce-Master-Private、-ElasticMapReduce Slave-Private 和-。 ElasticMapReduce ServiceAccess有关更多信息,请参阅 使用安全组控制网络流量

要查看您的集群NACLs的完整列表,请在 Amazon EMR 控制台集详情页面上为主集群选择安全组,为核心和任务选择安全组。

下图显示了如何在私有子网中配置 Amazon EMR 集群。子网之外的唯一通信是与 Amazon 的通信EMR。

在私有子网中启动 Amazon EMR 集群

下图显示了私有子网内的 Amazon EMR 集群的示例配置,该集群连接到位于公有子网中的NAT实例。

私有子网 NAT

共享子网

VPC共享允许客户与同一 AWS 组织内的其他 AWS 账户共享子网。您可以在公有共享子网和私有共享子网中启动 Amazon EMR 集群,但需要注意以下几点。

子网所有者必须与您共享子网,然后才能在子网中启动 Amazon EMR 集群。但是,共享子网稍后可以取消共享。有关更多信息,请参阅使用共享VPCs。当集群启动到共享子网且该共享子网随后处于非共享状态时,您可以根据子网未共享时的 Amazon EMR 集群状态观察特定行为。

  • 在成功启动集群之前,子网处于非共享状态-如果所有者在参与者启动集群时停止共享 Amazon VPC 或子网,则在未配置所有请求的实例的情况下,集群可能无法启动或部分初始化。

  • 成功启动集群,子网处于取消共享状态-当所有者停止VPC与参与者共享子网或 Amazon 时,参与者的集群将无法调整大小以添加新实例或替换运行状况不佳的实例。

当您启动 Amazon EMR 集群时,会创建多个安全组。在共享子网中,子网参与者控制这些安全组。子网拥有者可以看到这些安全组,但不能对其执行任何操作。如果子网拥有者想要删除或修改安全组,则创建安全组的参与者必须执行该操作。

使用控制VPC权限 IAM

默认情况下,所有 用户都可以查看该账户的所有子网,且任何用户都可以在任何子网中启动集群。

当您将集群启动到中时VPC,可以使用 AWS Identity and Access Management (IAM) 来控制对集群的访问并使用策略限制操作,就像在 Amazon C EC2 lassic 中启动的集群一样。有关的更多信息IAM,请参阅《IAM用户指南》

您还可以使用IAM来控制谁可以创建和管理子网。例如,您可以创建一个IAM角色来管理子网,另一个角色可以启动集群但不能修改 Amazon VPC 设置。有关在亚马逊EC2和亚马逊管理政策和操作的更多信息VPC,请参阅亚马逊EC2用户指南EC2中的亚马逊IAM政策