AWS ParallelCluster 在單一子網路中,沒有網際網路存取 - AWS ParallelCluster

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

AWS ParallelCluster 在單一子網路中,沒有網際網路存取

沒有網際網路存取權的子網路不允許網際網路的傳入或傳出連線。此 AWS ParallelCluster 組態可協助安全考量的客戶進一步增強其 AWS ParallelCluster resources. AWS ParallelCluster nodes AWS ParallelCluster AMIs 的安全性,其中包含在無網際網路存取的情況下執行叢集所需的所有軟體。如此一來, AWS ParallelCluster 可以使用沒有網際網路存取權的節點建立和管理叢集。

在本節中,您將了解如何設定叢集。您也會了解在沒有網際網路存取的情況下執行叢集的限制。

AWS ParallelCluster 使用一個子網路且無網際網路

設定VPC端點

為了確保叢集正常運作,叢集節點必須能夠與許多 AWS 服務互動。

建立並設定下列VPC端點,讓叢集節點可以與 AWS 服務互動,無需網際網路存取:

Commercial and AWS GovCloud (US) partitions
服務 服務名稱 Type

Amazon CloudWatch

com.amazonaws。region-id.logs

介面

AWS CloudFormation

com.amazonaws。region-idcloudformation.

介面

Amazon EC2

com.amazonaws。region-id.ec2

介面

Amazon S3

com.amazonaws。region-id.s3

閘道

Amazon DynamoDB

com.amazonaws。region-iddynamodb.

閘道

AWS Secrets Manager**

com.amazonaws。region-id.secretsmanager

介面

China partition
服務 服務名稱 Type

Amazon CloudWatch

com.amazonaws。region-id.logs

介面

AWS CloudFormation

cn.com.amazonaws。region-idcloudformation.

介面

Amazon EC2

cn.com.amazonaws。region-id.ec2

介面

Amazon S3

com.amazonaws。region-id.s3

閘道

Amazon DynamoDB

com.amazonaws。region-iddynamodb.

閘道

AWS Secrets Manager**

com.amazonaws。region-id.secretsmanager

介面

** 只有在啟用DirectoryService時才需要此端點,否則為選用。

中的所有執行個體VPC都必須具有適當的安全群組,才能與端點通訊。您可以將安全群組新增至 AdditionalSecurityGroupsSlurmQueues組態HeadNodeAdditionalSecurityGroups下的 。例如,如果建立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

若要新增自訂prologepilog指令碼,請分別將它們新增至 /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端點時使用自訂安全群組,只要自訂安全群組啟用叢集和VPC端點之間的通訊,AdditionalSecurityGroups就不需要 。

  • Scheduler:叢集排程器。

    slurm 是唯一的有效值。只有 Slurm 排程器支援子網中的叢集,無需網際網路存取。

  • SlurmSettings:Slurm 設定。

    請參閱上一節停用 Route53 並使用 Amazon EC2主機名稱

限制

  • 透過 SSH或 Amazon 連線到主機節點DCV:連線至叢集時,請確定連線的用戶端可以透過其私有 IP 地址到達叢集的主機節點。如果用戶端與VPC主機節點不同,請在 的公有子網路中使用代理執行個體VPC。此要求同時適用於 SSH和 DCV連線。如果子網路沒有網際網路存取權,則無法存取主機節點的公有 IP。如果 pcluster sshdcv-connect命令存在或私有 IP,則會使用公有 IP。建立叢集之前,請確認子網路中已停用自動指派公有IPv4地址,以確保pcluster命令可存取叢集。

    下列範例示範如何連線到叢集的主機節點中執行的DCV工作階段。您可以透過代理 Amazon EC2執行個體連線。執行個體可做為 PC 的 Amazon DCV 伺服器,以及私有子網路中主機節點的用戶端。

    透過公有子網路中的DCV代理執行個體進行連線:

    1. 在公有子網路中建立 Amazon EC2執行個體,該子網路與叢集的子網路VPC相同。

    2. 確保 Amazon DCV用戶端和伺服器已安裝在您的 Amazon EC2執行個體上。

    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端點。