Netzwerkkonfigurationen - AWS ParallelCluster

Die vorliegende Übersetzung wurde maschinell erstellt. Im Falle eines Konflikts oder eines Widerspruchs zwischen dieser übersetzten Fassung und der englischen Fassung (einschließlich infolge von Verzögerungen bei der Übersetzung) ist die englische Fassung maßgeblich.

Netzwerkkonfigurationen

AWS ParallelClusterverwendet Amazon Virtual Private Cloud (VPC) für Netzwerke. VPC bietet eine flexible und konfigurierbare Netzwerkplattform, auf der Sie Cluster bereitstellen können.

Die VPC muss über DNS Resolution = yes-, DNS Hostnames = yes- und DHCP-Optionen mit dem richtigen Domänennamen für die Region verfügen. Der standardmäßige DHCP-Optionssatz gibt bereits den erforderlichen AmazonProvidedDNS an. Wenn Sie mehr als einen Domainnamenserver angeben, lesen Sie die DHCP-Optionssätze im Amazon VPC-Benutzerhandbuch.

AWS ParallelCluster unterstützt die folgenden allgemeinen Konfigurationen:

  • Ein Subnetz für Kopf- und Rechenknoten.

  • Zwei Subnetze, mit dem Hauptknoten in einem öffentlichen Subnetz und Rechenknoten in einem privaten Subnetz. Bei den Subnetzen kann es sich entweder um neue oder um bestehende Subnetze handeln.

Alle diese Konfigurationen können mit oder ohne öffentliche IP-Adressierung betrieben werden. AWS ParallelClusterkann auch eingesetzt werden, um einen HTTP-Proxy für alleAWS Anfragen zu verwenden. Die Kombinationen dieser Konfigurationen bedeuten, dass viele Bereitstellungsszenarien möglich sind. Sie können beispielsweise ein einzelnes öffentliches Subnetz mit vollständigem Zugriff über das Internet konfigurieren. Oder Sie können ein vollständig privates Netzwerk mitAWS Direct Connect einem HTTP-Proxy für den gesamten Datenverkehr konfigurieren.

AbAWS ParallelCluster 3.0.0 ist es möglichSecurityGroups,AdditionalSecurityGroups für jede Warteschlange unterschiedlichePlacementGroup Einstellungen zu konfigurieren. Weitere Informationen finden Sie unter HeadNode/Networkingund SlurmQueues/Networkingund AwsBatchQueues/Networking.

Illustrationen einiger Netzwerkszenarien finden Sie in den folgenden Architekturdiagrammen.

AWS ParallelCluster in einem einzelnen öffentlichen Subnetz

Die Konfiguration für diese Architektur erfordert die folgenden Einstellungen:

# 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

In dieser Konfiguration muss allen Instanzen des Clusters eine öffentliche IP zugewiesen werden, um Internetzugang zu erhalten. Um dies zu erreichen, gehen Sie wie folgt vor:

  • Stellen Sie sicher, dass dem Hauptknoten eine öffentliche IP-Adresse zugewiesen wird, indem Sie entweder die Einstellung „Automatische Zuweisung öffentlicher IPv4-Adresse aktivieren“ für das in HeadNode/Networking/verwendete Subnetz aktivieren SubnetIdoder indem Sie in/HeadNodeNetworking/eine Elastic IP zuweisen ElasticIp.

  • Stellen Sie sicher, dass den Rechenknoten eine öffentliche IP-Adresse zugewiesen wird, indem Sie entweder die Einstellung „Automatische Zuweisung öffentlicher IPv4-Adresse aktivieren“ für das in Scheduling//SlurmQueues/Networkingverwendete Subnetz aktivieren SubnetIdsoder indem Sie in Scheduling/SlurmQueues/den Wert true setzen AssignPublicIpNetworking.

  • Wenn Sie einenp4d Instanztyp oder einen anderen Instanztyp definieren, der mehrere Netzwerkschnittstellen oder eine Netzwerkschnittstellenkarte für den Hauptknoten hat, müssen Sie HeadNode/Networking/auf setzen, ElasticIptrueum den öffentlichen Zugriff zu ermöglichen. AWSÖffentliche IPs können nur Instanzen zugewiesen werden, die mit einer einzigen Netzwerkschnittstelle gestartet wurden. In diesem Fall empfehlen wir die Verwendung eines NAT-Gateways, um den öffentlichen Zugriff auf die Cluster-Rechenknoten bereitzustellen. Weitere Informationen über IP-Adressen finden Sie unter Zuweisen einer öffentlichen IPv4Adresse beim Start einer Instance im Amazon EC2 EC2-Benutzerhandbuch für Linux-Instances.

  • Sie können keinen Instanztypp4d oder einen anderenhp6id Instanztyp mit mehreren Netzwerkschnittstellen oder eine Netzwerkschnittstellenkarte zur Berechnung von Knoten definieren, daAWS öffentliche IPs nur Instances zugewiesen werden können, die mit einer einzigen Netzwerkschnittstelle gestartet wurden. Weitere Informationen über IP-Adressen finden Sie unter Zuweisen einer öffentlichen IPv4Adresse beim Start einer Instance im Amazon EC2 EC2-Benutzerhandbuch für Linux-Instances.

Weitere Informationen finden Sie unter Aktivieren des Internetzugangs im Amazon VPC Benutzerhandbuch.

AWS ParallelCluster mit zwei Subnetzen

Die Konfiguration zur Verwendung eines vorhandenen privaten Subnetzes für Compute-Instances erfordert die folgenden Einstellungen:

# 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

In dieser Konfiguration muss nur dem Hauptknoten des Clusters eine öffentliche IP zugewiesen werden. Sie können dies erreichen, indem Sie entweder die Einstellung „Automatische Zuweisung öffentlicher IPv4-Adresse aktivieren“ für das in HeadNode//verwendete Subnetz aktivieren SubnetIdoder indem Sie in Networking/HeadNodeNetworking/eine Elastic IP zuweisen ElasticIp.

Wenn Sie einen p4d-Instanztyp oder einen anderen Instanztyp definieren, der mehrere Netzwerkschnittstellen oder eine Netzwerkschnittstellenkarte zum Hauptknoten hat, müssen Sie HeadNode/Networking/auf setzen, ElasticIptrueum den öffentlichen Zugriff zu ermöglichen. AWSÖffentliche IPs können nur Instanzen zugewiesen werden, die mit einer einzigen Netzwerkschnittstelle gestartet wurden. Weitere Informationen über IP-Adressen finden Sie unter Zuweisen einer öffentlichen IPv4Adresse beim Start einer Instance im Amazon EC2 EC2-Benutzerhandbuch für Linux-Instances.

Für diese Konfiguration ist ein NAT-Gateway oder ein interner Proxy in dem für die Warteschlangen verwendeten Subnetz erforderlich, um den Recheninstanzen den Internetzugang zu ermöglichen.

AWS ParallelCluster in einem einzigen privaten Subnetz mit Verbindung über AWS Direct Connect

Die Konfiguration für diese Architektur erfordert die folgenden Einstellungen:

# 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

Wenn Scheduling//SlurmQueuesNetworking/auf gesetzt AssignPublicIpistfalse, müssen die Subnetze korrekt eingerichtet sein, damit der Proxy für den gesamten Datenverkehr verwendet werden kann. Webzugriff ist sowohl für Head- als auch für Compute Nodes erforderlich.

AWS ParallelClustermitAWS Batch Scheduler

Wenn Sie awsbatch als Scheduler-Typ nutzen, erstellt AWS ParallelCluster eine AWS Batch-verwaltete Datenverarbeitungsumgebung. DieAWS Batch Umgebung verwaltet Amazon Elastic Container Service (Amazon ECS) Container-Instances. Diese Instanzen werden in dem Subnetz gestartet, das im SubnetIdsParameter AwsBatchQueues/Networking/konfiguriert ist. Um korrektAWS Batch zu funktionieren, benötigen Amazon ECS-Service-Instances externen Netzwerkzugriff, um mit dem Amazon ECS-Service-Endpunkt zugreifen zu können. Daraus ergeben sich die folgenden Szenarien:

  • Die für die Warteschlange angegebene Subnetz-ID verwendet ein NAT-Gateway für den Zugriff auf das Internet. Wir haben diesen Ansatz empfohlen.

  • Instances, die im Queue-Subnetz gestartet werden, haben öffentliche IP-Adressen und können das Internet über ein Internet Gateway erreichen.

Wenn Sie außerdem an parallel Jobs mit mehreren Knoten interessiert sind (aus den AWS BatchDokumenten):

AWS Batchparallel Jobs mit mehreren Knoten verwenden den Amazonawsvpc ECS-Netzwerkmodus. Dadurch erhalten Ihre parallel Auftragscontainer mit mehreren Knoten dieselben Netzwerkeigenschaften wie Amazon-EC2-Instances. Jeder Container eines parallelen Auftrags mit mehreren Knoten erhält seine eigene Elastic Network-Schnittstelle, eine primäre private IP-Adresse und einen internen DNS-Hostnamen. Die Netzwerkschnittstelle wird im selben Amazon VPC-Subnetz wie die Host-Rechenressource erstellt. Alle Sicherheitsgruppen, die auf Ihre Datenverarbeitungsressourcen angewendet werden, werden auch darauf angewendet.

Wenn Sie Amazon ECS Task Networking verwenden, bietet derawsvpc Netzwerkmodus keine elastischen Netzwerkschnittstellen mit öffentlichen IP-Adressen für Aufgaben, die den Amazon EC2 EC2-Starttyp verwenden. Um auf das Internet zuzugreifen, müssen Aufgaben, die den Amazon EC2 EC2-Starttyp verwenden, in einem privaten Subnetz gestartet werden, das für die Verwendung eines NAT-Gateways konfiguriert ist.

Sie müssen ein NAT-Gateway konfigurieren, damit der Cluster parallel Jobs mit mehreren Knoten ausführen kann.

Alle vorherigen Konfigurationen und Überlegungen gelten auch fürAWS Batch. Es folgt ein Beispiel für eineAWS Batch Netzwerkkonfiguration.

# 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

Im NetworkingAbschnitt Scheduling/AwsBatchQueues/SubnetIdsist das ein Listentyp, aber derzeit wird nur ein Subnetz unterstützt.

Weitere Informationen finden Sie unter den folgenden Themen:

AWS ParallelClusterin einem einzelnen Subnetz ohne Internetzugang ohne Internetzugang ohne Internetzugang ohne Internetzugang.

AWS ParallelClustermit einem Subnetz und ohne Internet

Ein Subnetz ohne Internetzugang erlaubt keine eingehenden oder ausgehenden Verbindungen zum Internet. DieseAWS ParallelCluster Konfiguration kann sicherheitsbewussten Kunden helfen, die Sicherheit ihrerAWS ParallelCluster Ressourcen weiter zu verbessern. AWS ParallelClusterKnoten bestehen ausAWS ParallelCluster AMIs, die die gesamte Software enthalten, die für den Betrieb eines Clusters ohne Internetzugang erforderlich ist. Auf diese WeiseAWS ParallelCluster können Cluster mit Knoten erstellt und verwaltet werden, die keinen Internetzugang haben.

In diesem Abschnitt erfahren Sie, wie Sie den Cluster konfigurieren. Sie erfahren auch, welche Einschränkungen beim Betrieb von Clustern ohne Internetzugang bestehen.

Konfiguration von VPC-Endpunkten

Um das reibungslose Funktionieren des Clusters zu gewährleisten, müssen die Clusterknoten in der Lage sein, mit einer Reihe vonAWS Diensten zu interagieren.

Erstellen und konfigurieren Sie die folgenden VPC-Endpunkte, damit Clusterknoten ohne Internetzugang mit denAWS Diensten interagieren können:

Commercial and AWS GovCloud (US) partitions
Service Service-Name Typ

Amazon CloudWatch

com.amazonaws. Region-ID .logs

Schnittstelle

AWS CloudFormation

com.amazonaws. regions-id .cloudformation

Schnittstelle

Amazon EC2

com.amazonaws. region-id .ec2

Schnittstelle

Amazon S3

com.amazonaws. Region-ID s.3

Gateway

Amazon DynamoDB

com.amazonaws. Region-ID .dynamodb

Gateway

AWS Secrets Manager**

com.amazonaws. regions-id .secretsmanager

Schnittstelle

China partition
Service Service-Name Typ

Amazon CloudWatch

com.amazonaws. Region-ID .logs

Schnittstelle

AWS CloudFormation

cn.com.amazonaws. regions-id .cloudformation

Schnittstelle

Amazon EC2

cn.com.amazonaws. region-id .ec2

Schnittstelle

Amazon S3

com.amazonaws. Region-ID s.3

Gateway

Amazon DynamoDB

com.amazonaws. Region-ID .dynamodb

Gateway

AWS Secrets Manager**

com.amazonaws. regions-id .secretsmanager

Schnittstelle

** Dieser Endpunkt ist nur erforderlich, wenn er aktiviert DirectoryServiceist, andernfalls ist er optional.

Alle Instanzen in der VPC müssen über die richtigen Sicherheitsgruppen verfügen, um mit den Endpunkten kommunizieren zu können. Sie können dies tun, indem Sie Sicherheitsgruppen AdditionalSecurityGroupsunter HeadNodeund AdditionalSecurityGroupsunter den SlurmQueuesKonfigurationen hinzufügen. Wenn die VPC-Endpunkte erstellt werden, ohne eine Sicherheitsgruppe explizit anzugeben, wird den Endpunkten die Standardsicherheitsgruppe zugeordnet. Indem Sie die Standardsicherheitsgruppe hinzufügenAdditionalSecurityGroups, aktivieren Sie die Kommunikation zwischen dem Cluster und den Endpunkten.

Anmerkung

Wenn Sie IAM-Richtlinien verwenden, um den Zugriff auf VPC-Endpoints einzuschränken, müssen Sie dem Amazon S3 S3-VPC-Endpunkt Folgendes hinzufügen:

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

Deaktivieren Sie Route 53 und verwenden Sie EC2-Hostnamen

Beim Erstellen eines Slurm-Clusters wird eine private Route 53-HostzoneAWS ParallelCluster erstellt, die zum Auflösen der benutzerdefinierten Compute-Node-Hostnamen verwendet wird, z.{queue_name}-{st|dy}-{compute_resource}-{N} B. Da Route 53 keine VPC-Endpunkte unterstützt, muss diese Funktion deaktiviert werden. Darüber hinausAWS ParallelCluster muss es so konfiguriert werden, dass es die standardmäßigen EC2-Hostnamen verwendet,ip-1-2-3-4 z. Wenden Sie die folgenden Einstellungen auf Ihre Clusterkonfiguration an:

... Scheduling: ... SlurmSettings: Dns: DisableManagedDns: true UseEc2Hostnames: true
Warnung

Bei Clustern, die mit SlurmSettingsDns//erstellt DisableManagedDnsund auf UseEc2Hostnamesgesetzt sindtrue, wird der SlurmNodeName nicht vom DNS aufgelöst. BenutzeNodeHostName stattdessen den Slurm.

Anmerkung

Dieser Hinweis ist abAWS ParallelCluster Version 3.3.0 nicht relevant.

FürAWS ParallelCluster unterstützte Version 3.3.3.3.3.Version 3.3.3.Version 3.3.3.3.

Wenn auf gesetztUseEc2Hostnames isttrue, wird die Slurm-Konfigurationsdatei mit denepilog SkriptenAWS ParallelClusterprolog und gesetzt:

  • prologwird ausgeführt, um Knoteninformationen/etc/hosts zu den Rechenknoten hinzuzufügen, wenn jeder Job zugewiesen wird.

  • epilogläuft, um Inhalte zu reinigen, die von geschrieben wurdenprolog.

Um benutzerdefinierteepilog Skriptsprolog oder Skripts hinzuzufügen, fügen Sie sie jeweils zu den/opt/slurm/etc/pcluster/epilog.d/ Ordnern/opt/slurm/etc/pcluster/prolog.d/ oder hinzu.

Cluster-Konfiguration

Erfahren Sie, wie Sie Ihren Cluster so konfigurieren, dass er in einem Subnetz ohne Verbindung zum Internet ausgeführt wird.

Die Konfiguration für diese Architektur erfordert die folgenden Einstellungen:

# 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): Das Subnetz ohne Internetzugang.

    Um die Kommunikation zwischenAWS ParallelCluster undAWS Services zu ermöglichen, müssen die VPC-Endpunkte an die VPC des Subnetzes angeschlossen sein. Bevor Sie Ihren Cluster erstellen, stellen Sie sicher, dass die automatische Zuweisung der öffentlichen IPv4-Adresse im Subnetz deaktiviert ist, um sicherzustellen, dass diepcluster Befehle Zugriff auf den Cluster haben.

  • AdditionalSecurityGroups: Die Sicherheitsgruppe, die die Kommunikation zwischen dem Cluster und den VPC-Endpunkten ermöglicht.

    Fakultativ:

    • Wenn die VPC-Endpunkte erstellt werden, ohne eine Sicherheitsgruppe explizit anzugeben, wird der VPC die Standardsicherheitsgruppe der VPC zugeordnet. Geben Sie daher die Standardsicherheitsgruppe für anAdditionalSecurityGroups.

    • Wenn benutzerdefinierte Sicherheitsgruppen bei der Erstellung des Clusters und/oder der VPC-Endpoints verwendet werden,AdditionalSecurityGroups ist dies nicht erforderlich, solange die benutzerdefinierten Sicherheitsgruppen die Kommunikation zwischen dem Cluster und den VPC-Endpunkten ermöglichen.

  • Scheduler: Der Cluster-Scheduler.

    slurmist der einzige gültige Wert. Nur der Slurm-Scheduler unterstützt einen Cluster in einem Subnetz ohne Internetzugang.

  • SlurmSettings: Die Slurm-Einstellungen.

    Weitere Informationen finden Sie im vorherigen Abschnitt. Deaktivieren Sie Route53 und verwenden Sie EC2-Hostnamen.

Einschränkungen

  • Verbindung zum Hauptknoten über SSH oder NICE DCV herstellen: Wenn Sie eine Verbindung zu einem Cluster herstellen, stellen Sie sicher, dass der Client der Verbindung den Hauptknoten des Clusters über seine private IP-Adresse erreichen kann. Wenn sich der Client nicht in derselben VPC wie der Head-Knoten befindet, verwenden Sie eine Proxy-Instance in einem öffentlichen Subnetz der VPC. Diese Anforderung gilt sowohl für SSH- als auch für DCV-Verbindungen. Auf die öffentliche IP eines Headknotens kann nicht zugegriffen werden, wenn das Subnetz keinen Internetzugang hat. Diedcv-connect Befehlepcluster ssh und verwenden die öffentliche IP, falls sie existiert, oder die private IP. Bevor Sie Ihren Cluster erstellen, stellen Sie sicher, dass die automatische Zuweisung der öffentlichen IPv4-Adresse im Subnetz deaktiviert ist, um sicherzustellen, dass diepcluster Befehle Zugriff auf den Cluster haben.

    Das folgende Beispiel zeigt, wie Sie eine Verbindung zu einer DCV-Sitzung herstellen können, die im Hauptknoten Ihres Clusters ausgeführt wird. Sie stellen eine Verbindung über eine EC2-Proxy-Instance her. Die Instanz fungiert als NICE-DCV-Server für Ihren PC und als Client für den Hauptknoten im privaten Subnetz.

    Stellen Sie eine Connect über DCV über eine Proxyinstanz in einem öffentlichen Subnetz her:

    1. Erstellen Sie eine EC2-Instance in einem öffentlichen Subnetz, das sich in derselben VPC wie das Subnetz des Clusters befindet.

    2. Stellen Sie sicher, dass der NIde.on-DCV-Client und -Server auf Ihrer EC2-Instance installiert sind.

    3. Hängen Sie eineAWS ParallelCluster Benutzerrichtlinie an die EC2-Proxy-Instance an. Weitere Informationen finden Sie unter AWS ParallelCluster Beispiele pcluster für Benutzerrichtlinien.

    4. Installieren SieAWS ParallelCluster auf der Proxy-EC2-Instance.

    5. Stellen Sie über DCV eine Verbindung zur Proxy-EC2-Instance her.

    6. Verwenden Sie denpcluster dcv-connect Befehl auf der Proxyinstanz, um eine Verbindung zum Cluster innerhalb des Subnetzes ohne Internetzugang herzustellen.

  • Interaktion mit anderenAWS Diensten: Nur Dienste, die von unbedingt erforderlich sind,AWS ParallelCluster sind oben aufgeführt. Wenn Ihr Cluster mit anderen Diensten interagieren muss, erstellen Sie die entsprechenden VPC-Endpunkte.