网络配置 - Amazon ParallelCluster
Amazon Web Services 文档中描述的 Amazon Web Services 服务或功能可能因区域而异。要查看适用于中国区域的差异,请参阅中国的 Amazon Web Services 服务入门

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

网络配置

Amazon ParallelCluster使用 Amazon Virtual Private Cloud (VPC) 进行联网。VPC 提供了可在其中部署集群的灵活且可配置的联网平台。

VPC 必须具有DNS Resolution = yesDNS Hostnames = yes以及具有适用于区域的正确域名的 DHCP 选项。默认的 DHCP 选项集已经指定了必需的AmazonProvidedDNS. 如果指定的域名服务器不止一台,请参阅DHCP 选项集中的Amazon VPC User Guide.

Amazon ParallelCluster支持以下高级配置:

  • 头节点和计算节点都有一个子网。

  • 两个子网,头节点位于一个公有子网中,而计算节点位于私有子网中。子网可以是新的,也可以是现有的子网。

所有这些配置都可以在使用或不使用公有 IP 寻址的情况下进行操作。Amazon ParallelCluster也可以部署为使用 HTTP 代理Amazon请求。这些配置的组合会产生许多部署方案。例如,您可以配置单个公有子网,以便通过互联网进行所有访问。或者,您可以使用以下方法配置完全专用网络Amazon Direct Connect以及所有流量的 HTTP 代理。

从Amazon ParallelCluster3.0.0 可以配置不同SecurityGroupsAdditionalSecurityGroupsPlacementGroup每个队列的设置。有关更多信息,请参阅 。HeadNode/NetworkingSlurmQueues/NetworkingAwsBatchQueues/Networking.

有关某些网络场景的插图,请参阅下面的架构图。

Amazon ParallelCluster 位于单个公有子网中

此架构的配置需要以下设置:

# Note that all values are only provided as examples HeadNode: ... Networking: SubnetId: subnet-12345678 # subnet with internet gateway #ElasticIp: true | false | eip-12345678 Scheduling: Scheduler: slurm SlurmQueues: - ... Networking: SubnetIds: - subnet-12345678 # subnet with internet gateway #AssignPublicIp: true

在此配置中,必须为群集的所有实例分配一个公有 IP 才能访问互联网。为此,请执行以下操作:

有关更多信息,请参阅 。启用 Internet 访问Amazon VPC User Guide.

使用两个子网的 Amazon ParallelCluster

为计算实例使用现有私有子网的配置要求使用以下设置:

# Note that all values are only provided as examples HeadNode: ... Networking: SubnetId: subnet-12345678 # subnet with internet gateway #ElasticIp: true | false | eip-12345678 Scheduling: Scheduler: slurm SlurmQueues: - ... Networking: SubnetIds: - subnet-23456789 # subnet with NAT gateway #AssignPublicIp: false

在此配置中,只有群集的头节点才能分配公有 IP。您可以通过为中使用的子网启用 “启用自动分配公有 IPv4 地址” 设置来实现此目标HeadNode/Networking/SubnetId或者通过在中分配弹性 IPHeadNode/Networking/ElasticIp.

如果您定义了 p4d 实例类型或其他具有多个网络接口或网络接口卡的实例类型,则必须设置HeadNode/Networking/ElasticIptrue以提供公有访问。Amazon只能将公有 IP 分配给使用单个网络接口启动的实例。有关 IP 地址的更多信息,请参阅分配辅助私有 IPv4 地址.

此配置需要NAT 网关或用于队列的子网中的内部代理,以便为计算实例提供互联网访问权限。

使用 Amazon Direct Connect 连接的单个私有子网中的 Amazon ParallelCluster

此架构的配置需要以下设置:

# Note that all values are only provided as examples HeadNode: ... Networking: SubnetId: subnet-34567890 # subnet with proxy Proxy: HttpProxyAddress: http://proxy-address:port Ssh: KeyName: ec2-key-name Scheduling: Scheduler: slurm SlurmQueues: - ... Networking: SubnetIds: - subnet-34567890 # subnet with proxy AssignPublicIp: false Proxy: HttpProxyAddress: http://proxy-address:port

何时Scheduling/SlurmQueues/Networking/AssignPublicIp设置为false,必须正确地将子网设置为使用代理处理所有流量。头节点和计算节点都需要 Web 访问。

Amazon ParallelCluster和Amazon Batch计划程序

当您使用awsbatch作为调度程序类型,Amazon ParallelCluster创建Amazon Batch托管计算环境。这些区域有:Amazon Batch环境管理 Amazon Elastic Container Service (Amazon ECS) 容器实例。这些实例在中配置的子网中启动AwsBatchQueues/Networking/SubnetIds参数。适用于Amazon Batch要正常运行,Amazon ECS 容器实例需要外部网络访问以便与 Amazon ECS 服务终端节点进行通信。这会转换为以下情形:

  • 为队列指定的子网 ID 使用NAT 网关以访问互联网。我们建议采用此方法。

  • 在队列子网中启动的实例具有公有 IP 地址,并可通过 Internet 网关到达 Internet Gateway。

此外,如果您对多节点并行作业感兴趣(从Amazon Batchdoc):

Amazon Batch多节点并行作业使用 Amazon ECSawsvpc网络模式。这为多节点并行作业容器提供了与 Amazon EC2 实例相同的联网属性。每个多节点并行作业容器都可获得自己的弹性网络接口、主要私有 IP 地址以及内部 DNS 主机名。在同一 Amazon VPC 子网中创建网络接口,作为其主机计算资源。适用于计算资源的任何安全组,也适用于该主机计算资源。

使用 Amazon ECS 任务网络时,awsvpc对于使用 Amazon EC2 启动类型的任务,网络模式不提供具有公有 IP 地址的弹性网络接口。要访问 Internet,必须在配置为使用 NAT 网关的私有子网中启动使用 Amazon EC2 启动类型的任务。

你必须配置NAT 网关以便使集群能够运行多节点并行作业。

以前的所有配置和注意事项都适用于Amazon Batch也是。以下是的示例:Amazon Batch联网配置。

# Note that all values are only provided as examples HeadNode: ... Networking: SubnetId: subnet-12345678 # subnet with internet gateway, NAT gateway or proxy #ElasticIp: true | false | eip-12345678 #Proxy: #HttpProxyAddress: http://proxy-address:port Ssh: KeyName: ec2-key-name Scheduling: Scheduler: awsbatch AwsBatchQueues: - ... Networking: SubnetIds: - subnet-23456789 # subnet with internet gateway, NAT gateway or proxy #AssignPublicIp: true | false

Scheduling/AwsBatchQueues/Networking部分中,SubnetIds是列表类型,但目前只支持一个子网。

有关更多信息,请参阅以下主题:

Amazon ParallelCluster在单个子网中,无法访问 Internet


        Amazon ParallelCluster使用一个子网而不是互联网

没有互联网访问的子网不允许与互联网建立入站或出站连接。该Amazon ParallelCluster配置可以帮助关注安全的客户进一步增强他们的安全性Amazon ParallelCluster资源的费用。Amazon ParallelCluster节点是从Amazon ParallelClusterAMI,其中包括运行无法访问互联网的群集所需的所有软件。这样,Amazon ParallelCluster可以创建和管理具有无法访问 Internet 访问的节点的集群。

在本节中,您将了解如何配置集群。您还了解在没有互联网访问的情况下运行集群的限制。

配置 VPC 终端节点

为了确保群集的正常运行,群集节点必须能够与多个Amazon服务。

创建和配置以下VPC 终端节点以便群集节点可以与Amazon没有互联网接入的服务:

Commercial and Amazon GovCloud (US) partitions
服务 服务名称 类型

Amazon CloudWatch

com.amazonaws.区域 ID.log

接口

Amazon CloudFormation

com.amazonaws.区域 ID.cloud

接口

Amazon EC2

com.amazonaws.区域 ID.ec2

接口

Amazon S3

com.amazonaws.区域 ID.s3

网关

Amazon DynamoDB

com.amazonaws.区域 ID.dynamodb

网关

Amazon Secrets Manager**

com.amazonaws.区域 ID.secretsmanager

接口

China partition
服务 服务名称 类型

Amazon CloudWatch

com.amazonaws.区域 ID.log

接口

Amazon CloudFormation

cn.com.amazonaws。区域 ID.cloud

接口

Amazon EC2

cn.com.amazonaws。区域 ID.ec2

接口

Amazon S3

com.amazonaws.区域 ID.s3

网关

Amazon DynamoDB

com.amazonaws.区域 ID.dynamodb

网关

Amazon Secrets Manager**

com.amazonaws.区域 ID.secretsmanager

接口

** 仅在以下情况下才需要此端点DirectoryService已启用,否则是可选的。

VPC 中的所有实例都必须具有适当的安全组才能与终端节点进行通信。您可以通过将安全组添加到AdditionalSecurityGroupsHeadNodeAdditionalSecurityGroupsSlurmQueues配置。例如,如果创建 VPC 终端节点而未明确指定安全组,将为与终端节点关联的默认安全组。将默认安全组添加到AdditionalSecurityGroups,您可以启用群集和终端节点之间的通信。

禁用 Route 53 并使用 EC2 主机名

创建 Surm 集群时,Amazon ParallelCluster创建一个用于解析自定义计算节点主机名的专用 Route 53 托管区域,例如{queue_name}-{st|dy}-{compute_resource}-{N}. 由于 Route 53 不支持 VPC 终端节点,因此必须禁用此功能。此外,Amazon ParallelCluster必须配置为使用默认的 EC2 主机名,例如ip-1-2-3-4. 将以下设置应用于群集配置:

... Scheduling: ... SlurmSettings: Dns: DisableManagedDns: true UseEc2Hostnames: true
警告

对于使用创建的集群SlurmSettings/Dns/DisableManagedDnsUseEc2Hostnames设置为true,SurmNodeNameDNS 没有解决。使用 SlurmNodeHostName相反。

集群配置

了解如何将集群配置为在没有连接到互联网的子网中运行。

此架构的配置需要以下设置:

# Note that all values are only provided as examples ... HeadNode: ... Networking: SubnetId: subnet-1234567890abcdef0 # the VPC of the subnet needs to have VPC endpoints AdditionalSecurityGroups: - sg-abcdef01234567890 # optional, the security group that enables the communication between the cluster and the VPC endpoints Scheduling: Scheduler: slurm # Cluster in a subnet without internet access is supported only when the scheduler is Slurm. SlurmSettings: Dns: DisableManagedDns: true UseEc2Hostnames: true SlurmQueues: - ... Networking: SubnetIds: - subnet-1234567890abcdef0 # the VPC of the subnet needs to have VPC endpoints attached AdditionalSecurityGroups: - sg-1abcdef01234567890 # optional, the security group that enables the communication between the cluster and the VPC endpoints
  • SubnetId(s):无法访问互联网的子网。

    启用之间的通信Amazon ParallelCluster和Amazon服务,子网的 VPC 必须附加 VPC 终端节点。在创建集群之前,请确认已禁用自动分配公有 IPv4 地址在子网中,以确保pcluster命令可以访问群集。

  • AdditionalSecurityGroups:启用群集与 VPC 终端节点之间通信的安全组。

    可选:

    • 如果在未明确指定安全组的情况下创建 VPC 终端节点,将关联 VPC 的默认安全组。因此,提供默认安全组AdditionalSecurityGroups.

    • 如果在创建群集和/或 VPC 终端节点时使用自定义安全组,AdditionalSecurityGroups只要自定义安全组启用群集和 VPC 终端节点之间的通信,就不必要了。

  • Scheduler:集群计划程序。

    slurm是唯一有效值。只有 Surm 调度程序支持子网中没有互联网访问的群集。

  • SlurmSettings: Surm 设置。

    请参阅上一部分禁用 Route53 并使用 EC2 主机名.

限制

  • 通过 SSH 或 NICE DCV 连接到头节点:连接到群集时,请确保连接的客户端可以通过其私有 IP 地址到达群集的头节点。如果客户端与头节点不在同一 VPC 中,请在 VPC 的公有子网中使用代理实例。此要求适用于 SSH 和 DCV 连接。如果子网没有互联网访问权限,则无法访问头节点的公有 IP。这些区域有:pcluster sshdcv-connect命令使用公有 IP(如果存在)或私有 IP。在创建集群之前,请确认已禁用自动分配公有 IPv4 地址在子网中,以确保pcluster命令可以访问群集。

    下列示例显示如何连接到在集群头节点中运行的 DCV 会话。您可以通过代理 EC2 实例进行连接。该实例充当 PC 的 NICE DCV 服务器和私有子网中头节点的客户端。

    通过公有子网中的代理实例通过 DCV 进行 Connect:

    1. 在公有子网中创建 EC2 实例,该子网与群集的子网位于同一 VPC 中。

    2. 确保您的 EC2 实例上安装了 NICE DCV 客户端和服务器。

    3. 附加Amazon ParallelCluster代理 EC2 实例的用户策略。有关更多信息,请参阅 Amazon ParallelCluster示例用户策略

    4. 安装Amazon ParallelCluster在代理 EC2 实例上。

    5. 通过 DCV Connect 到代理 EC2 实例。

    6. 使用pcluster dcv-connect代理实例上的命令以连接到子网内的群集,而无需访问互联网。

  • 与其他人交互Amazon服务:只有严格要求的服务Amazon ParallelCluster上面列出。如果您的集群必须与其他服务交互,请创建相应的 VPC 终端节点。