AWS ParallelCluster 在无法访问互联网的单个子网中 - AWS ParallelCluster

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

AWS ParallelCluster 在无法访问互联网的单个子网中

没有互联网访问权限的子网不允许使用入站或出站互联网连接。此 AWS ParallelCluster 配置可以帮助关注安全的客户进一步增强其 AWS ParallelCluster 资源的安全性。 AWS ParallelCluster 节点 AWS ParallelCluster AMIs的构建基础包括运行无法访问互联网的集群所需的所有软件。通过这种方式, AWS ParallelCluster 可以创建和管理带有无法访问互联网的节点的集群。

在本节中,您将了解如何配置集群。您还将了解运行无互联网访问权限的集群时的限制。

AWS ParallelCluster 使用一个子网但没有互联网

配置VPC终端节点

为确保群集正常运行,群集节点必须能够与多个 AWS 服务进行交互。

创建并配置以下VPC终端节点,以便集群节点无需访问互联网即可与 AWS 服务进行交互:

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

Amazon CloudWatch

com.amazonaws。region-id.logs

接口

AWS CloudFormation

com.amazonaws。region-idcloudformation.

接口

Amazon EC2

com.amazonaws。region-idec2。

接口

Amazon S3

com.amazonaws。region-idS3。

Gateway

Amazon DynamoDB

com.amazonaws。region-iddynamodb.

Gateway

AWS Secrets Manager**

com.amazonaws。region-idsecretsmanager。

接口

China partition
服务 服务名称 类型

Amazon CloudWatch

com.amazonaws。region-id.logs

接口

AWS CloudFormation

cn.com.amazonaws。region-idcloudformation.

接口

Amazon EC2

cn.com.amazonaws。region-idec2。

接口

Amazon S3

com.amazonaws。region-idS3。

Gateway

Amazon DynamoDB

com.amazonaws。region-iddynamodb.

Gateway

AWS Secrets Manager**

com.amazonaws。region-idsecretsmanager。

接口

** 只有在启用了 DirectoryService 时才需要此端点,否则它是可选的。

中的所有实例都VPC必须具有适当的安全组才能与终端节点通信。您可以通过将安全组添加到 HeadNode 配置下面的 AdditionalSecurityGroupsSlurmQueues 配置下面的 AdditionalSecurityGroups 来实现这一目的。例如,如果在创建VPC终端节点时没有明确指定安全组,则默认安全组将与终端节点相关联。通过将默认安全组添加到 AdditionalSecurityGroups,即可启用集群与端点之间的通信。

注意

当您使用IAM策略限制对VPC终端节点的访问时,必须向 Amazon S3 VPC 终端节点添加以下内容:

PolicyDocument: Version: 2012-10-17 Statement: - Effect: Allow Principal: "*" Action: - "s3:PutObject" Resource: - !Sub "arn:${AWS::Partition}:s3:::cloudformation-waitcondition-${AWS::Region}/*"

禁用 Route 53 并使用 Amazon EC2 主机名

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

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

对于使用 SlurmSettings/Dns/创建DisableManagedDnsUseEc2Hostnames设置为的集群true,Slurm NodeName未由DNS. 解决 使用 Slurm NodeHostName相反。

注意

从 3.3.0 AWS ParallelCluster 版本开始,本说明不相关。

对于 3.3.0 之前的 AWS ParallelCluster 支持版本:

当设置UseEc2Hostnames为时true,Slurm 配置文件是使用 AWS ParallelCluster prologepilog脚本设置的:

  • 分配了每个作业后,prolog 用于向计算节点上的 /etc/hosts 中添加节点信息。

  • epilog 用于清理 prolog 写入的内容。

要添加自定义 epilogprolog 脚本,请分别将其添加到 /opt/slurm/etc/pcluster/prolog.d//opt/slurm/etc/pcluster/epilog.d/ 文件夹。

集群配置

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

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

# 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):无互联网访问权限的子网。

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

  • AdditionalSecurityGroups:支持集群和VPC终端节点之间通信的安全组。

    可选:

    • 如果在创建VPC终端节点时没有明确指定安全组,则会关联的VPC默认安全组。因此,请将默认安全组提供给 AdditionalSecurityGroups

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

  • Scheduler:集群调度器。

    slurm 是唯一的有效值。只有 Slurm 调度器支持子网中没有互联网访问权限的集群。

  • SlurmSettings: 那个 Slurm 设置。

    请参阅上一节禁用 Route53 并使用 Ama EC2 zon 主机名

限制

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

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

    DCV通过公有子网中的代理实例连接 Connect:

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

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

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

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

    5. 连接DCV到 Amazon 代理EC2实例。

    6. 在代理实例上使用 pcluster dcv-connect 命令即可连接到没有互联网访问权限的子网中的集群。

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