本文為英文版的機器翻譯版本,如內容有任何歧義或不一致之處,概以英文版為準。
AWS ParallelCluster 在單一子網路中,沒有網際網路存取
沒有網際網路存取權的子網路不允許網際網路的傳入或傳出連線。此 AWS ParallelCluster 組態可協助安全考量的客戶進一步增強其 AWS ParallelCluster resources. AWS ParallelCluster nodes AWS ParallelCluster AMIs 的安全性,其中包含在無網際網路存取的情況下執行叢集所需的所有軟體。如此一來, AWS ParallelCluster 可以使用沒有網際網路存取權的節點建立和管理叢集。
在本節中,您將了解如何設定叢集。您也會了解在沒有網際網路存取的情況下執行叢集的限制。
設定VPC端點
為了確保叢集正常運作,叢集節點必須能夠與許多 AWS 服務互動。
建立並設定下列VPC端點,讓叢集節點可以與 AWS 服務互動,無需網際網路存取:
** 只有在啟用DirectoryService時才需要此端點,否則為選用。
中的所有執行個體VPC都必須具有適當的安全群組,才能與端點通訊。您可以將安全群組新增至 AdditionalSecurityGroups 和 SlurmQueues組態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 建立DisableManagedDns並UseEc2Hostnames設為 的叢集true
,Slurm NodeName
未由 解析DNS。使用 Slurm NodeHostName
改為 。
注意
從 3.3.0 AWS ParallelCluster 版開始,此備註不相關。
對於 3.3.0 之前的 AWS ParallelCluster 支援版本:
當 UseEc2Hostnames
設定為 時true
,Slurm 組態檔案是使用 AWS ParallelCluster prolog
和 epilog
指令碼設定:
-
prolog
會在分配每個任務時,在運算節點/etc/hosts
上將節點資訊新增至 。 -
epilog
會執行 以清除 寫入的內容prolog
。
若要新增自訂prolog
或epilog
指令碼,請分別將它們新增至 /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 ssh
和dcv-connect
命令存在或私有 IP,則會使用公有 IP。建立叢集之前,請確認子網路中已停用自動指派公有IPv4地址,以確保pcluster
命令可存取叢集。下列範例示範如何連線到叢集的主機節點中執行的DCV工作階段。您可以透過代理 Amazon EC2執行個體連線。執行個體可做為 PC 的 Amazon DCV 伺服器,以及私有子網路中主機節點的用戶端。
透過公有子網路中的DCV代理執行個體進行連線:
-
在公有子網路中建立 Amazon EC2執行個體,該子網路與叢集的子網路VPC相同。
-
確保 Amazon DCV用戶端和伺服器已安裝在您的 Amazon EC2執行個體上。
-
將 AWS ParallelCluster 使用者政策連接至代理 Amazon EC2執行個體。如需詳細資訊,請參閱AWS ParallelCluster pcluster使用者策略範例。
-
在代理 Amazon EC2執行個體 AWS ParallelCluster 上安裝 。
-
DCV 連線至代理 Amazon EC2執行個體。
-
使用代理執行個體上的
pcluster dcv-connect
命令,在沒有網際網路存取的情況下連線到子網路內的叢集。
-
-
與其他 AWS 服務互動:上述僅 AWS ParallelCluster 列出 嚴格要求的服務。如果您的叢集必須與其他服務互動,請建立對應的VPC端點。