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 ParallelCluster verwendet 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 spezifiziert bereits das erforderliche DNS. AmazonProvided Wenn Sie mehr als einen Domain-Namenserver angeben, finden Sie weitere Informationen unter DHCP-Optionssätze im Amazon VPC-Benutzerhandbuch.

AWS ParallelCluster unterstützt die folgenden Konfigurationen auf hoher Ebene:

  • 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 ParallelCluster kann auch so eingesetzt werden, dass ein HTTP-Proxy für alle AWS Anfragen verwendet wird. 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 mithilfe AWS Direct Connect eines HTTP-Proxys für den gesamten Datenverkehr konfigurieren.

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

Abbildungen einiger Netzwerkszenarien finden Sie in den folgenden Architekturdiagrammen.

AWS ParallelCluster in einem einzigen ö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 Headnode eine öffentliche IP-Adresse zugewiesen ist, indem Sie entweder die Einstellung „Automatische Zuweisung öffentlicher IPv4-Adresse aktivieren“ für das in//verwendete Subnetz aktivieren SubnetIdoder indem Sie in HeadNodeNetworking//eine Elastic IP zuweisen. HeadNodeNetworkingElasticIp

  • 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/verwendete Subnetz aktivieren SubnetIdsoder indem Sie AssignPublicIp: true in NetworkingScheduling//einstellen. SlurmQueuesNetworking

  • Wenn Sie einen p4d Instanztyp oder einen anderen Instanztyp definieren, der über mehrere Netzwerkschnittstellen oder eine Netzwerkschnittstellenkarte für den Hauptknoten verfügt, müssen Sie HeadNode/Networking/festlegen, ElasticIpum öffentlichen Zugriff true zu gewähren. AWS Öffentliche IPs können nur Instances zugewiesen werden, die mit einer einzigen Netzwerkschnittstelle gestartet wurden. In diesem Fall empfehlen wir, ein NAT-Gateway zu verwenden, um öffentlichen Zugriff auf die Cluster-Rechenknoten zu gewähren. Weitere Informationen zu IP-Adressen finden Sie unter Zuweisen einer öffentlichen IPv4-Adresse beim Instance-Start im Amazon EC2 EC2-Benutzerhandbuch für Linux-Instances.

  • Sie können keinen Instance-Typ p4d oder einen anderen hp6id Instance-Typ definieren, der über mehrere Netzwerkschnittstellen oder eine Netzwerkschnittstellenkarte für Rechenknoten verfügt, da AWS öffentliche IPs nur Instances zugewiesen werden können, die mit einer einzigen Netzwerkschnittstelle gestartet wurden. Weitere Informationen zu IP-Adressen finden Sie unter Zuweisen einer öffentlichen IPv4-Adresse beim Instance-Start im Amazon EC2 EC2-Benutzerhandbuch für Linux-Instances.

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

AWS ParallelCluster unter Verwendung von 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//verwendete Subnetz aktivieren SubnetIdoder indem Sie in HeadNodeNetworking//eine Elastic IP zuweisen. HeadNodeNetworkingElasticIp

Wenn Sie einen p4d-Instance-Typ oder einen anderen Instance-Typ mit mehreren Netzwerkschnittstellen oder einer Netzwerkschnittstellenkarte für den Hauptknoten definieren, müssen Sie HeadNode/Networking/ElasticIpauf setzen, um öffentlichen Zugriff zu gewähren. true AWS Öffentliche IPs können nur Instances zugewiesen werden, die mit einer einzigen Netzwerkschnittstelle gestartet wurden. Weitere Informationen zu IP-Adressen finden Sie unter Zuweisen einer öffentlichen IPv4-Adresse beim Instance-Start im Amazon EC2 EC2-Benutzerhandbuch für Linux-Instances.

Diese Konfiguration erfordert ein NAT-Gateway oder einen internen Proxy im Subnetz, das für die Warteschlangen verwendet wird, um den Compute-Instances Internetzugang zu ermöglichen.

AWS ParallelCluster in einem einzigen privaten Subnetz, verbunden mit 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, um den Proxy für den gesamten Datenverkehr zu verwenden. Webzugriff ist sowohl für Haupt- als auch für Rechenknoten erforderlich.

AWS ParallelCluster mit AWS Batch Scheduler

Wenn Sie awsbatch als Scheduler-Typ verwenden, AWS ParallelCluster wird eine AWS Batch verwaltete Rechenumgebung erstellt. Die AWS Batch Umgebung verwaltet Amazon Elastic Container Service (Amazon ECS) Container-Instances. Diese Instances werden in dem im SubnetIdsParameter AwsBatchQueues/Networking/konfigurierten Subnetz gestartet. AWS Batch Damit Amazon ECS-Container-Instances ordnungsgemäß funktionieren, benötigen sie externen Netzwerkzugriff, um mit dem Amazon ECS-Serviceendpunkt zu kommunizieren. 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 über ein Internet Gateway auf das Internet zugreifen.

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

AWS Batch parallel Jobs mit mehreren Knoten verwenden den Amazon awsvpc ECS-Netzwerkmodus. Dadurch erhalten Ihre parallel Jobcontainer mit mehreren Knoten dieselben Netzwerkeigenschaften wie Amazon EC2 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 ihre Host-Rechenressource erstellt. Alle Sicherheitsgruppen, die auf Ihre Datenverarbeitungsressourcen angewendet werden, werden auch darauf angewendet.

Bei Verwendung von Amazon ECS Task Networking bietet der awsvpc 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ür AWS Batch. Im Folgenden finden Sie ein Beispiel für eine AWS 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/SubnetIdshandelt es sich um einen Listentyp, aber derzeit wird nur ein Subnetz unterstützt.

Weitere Informationen finden Sie unter den folgenden Themen:

AWS ParallelCluster in einem einzigen Subnetz ohne Internetzugang

AWS ParallelCluster mit einem Subnetz und ohne Internet

Ein Subnetz ohne Internetzugang erlaubt keine eingehenden oder ausgehenden Verbindungen zum Internet. Diese AWS ParallelCluster Konfiguration kann sicherheitsrelevanten Kunden dabei helfen, die Sicherheit ihrer Ressourcen weiter zu verbessern. AWS ParallelCluster AWS ParallelCluster Knoten werden aus AWS ParallelCluster AMIs aufgebaut, die die gesamte Software enthalten, die für den Betrieb eines Clusters ohne Internetzugang erforderlich ist. Auf diese Weise AWS ParallelCluster können Cluster mit Knoten erstellt und verwaltet werden, die keinen Internetzugang haben.

In diesem Abschnitt erfahren Sie, wie Sie den Cluster konfigurieren. Außerdem erfahren Sie mehr über Einschränkungen bei der Ausführung von Clustern ohne Internetzugang.

Konfiguration von VPC-Endpunkten

Um das ordnungsgemäße Funktionieren des Clusters sicherzustellen, müssen die Clusterknoten in der Lage sein, mit einer Reihe von AWS Diensten zu interagieren.

Erstellen und konfigurieren Sie die folgenden VPC-Endpunkte, sodass Clusterknoten ohne Internetzugang mit den AWS 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. Region-ID .cloudformation

Schnittstelle

Amazon EC2

com.amazonaws. Region-ID .ec2

Schnittstelle

Amazon S3

com.amazonaws. Region-ID. S3

Gateway

Amazon-DynamoDB

com.amazonaws. Region-ID .dynamodb

Gateway

AWS Secrets Manager**

com.amazonaws. Region-ID .secretsmanager

Schnittstelle

China partition
Service Service-Name Typ

Amazon CloudWatch

com.amazonaws. Region-ID .logs

Schnittstelle

AWS CloudFormation

cn.com.amazonaws. Region-ID .cloudformation

Schnittstelle

Amazon EC2

cn.com.amazonaws. Region-ID .ec2

Schnittstelle

Amazon S3

com.amazonaws. Region-ID. S3

Gateway

Amazon-DynamoDB

com.amazonaws. Region-ID .dynamodb

Gateway

AWS Secrets Manager**

com.amazonaws. Region-ID .secretsmanager

Schnittstelle

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

Alle Instances 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 unter HeadNodeund AdditionalSecurityGroupsAdditionalSecurityGroupsunter den SlurmQueuesKonfigurationen hinzufügen. Wenn die VPC-Endpunkte beispielsweise ohne ausdrückliche Angabe einer Sicherheitsgruppe erstellt werden, wird die Standardsicherheitsgruppe den Endpunkten 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-Endpunkte zu beschrä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}/*"

Route 53 deaktivieren und Amazon EC2 EC2-Hostnamen verwenden

AWS ParallelCluster Erstellt beim Erstellen eines Slurm Clusters eine private Route 53-Hosting-Zone, die zur Auflösung der Hostnamen der benutzerdefinierten Rechenknoten verwendet wird, z. B. {queue_name}-{st|dy}-{compute_resource}-{N} Da Route 53 keine VPC-Endpunkte unterstützt, muss diese Funktion deaktiviert werden. AWS ParallelCluster Muss außerdem so konfiguriert sein, dass die standardmäßigen Amazon EC2 EC2-Hostnamen verwendet werden, z. B. ip-1-2-3-4 Wenden Sie die folgenden Einstellungen auf Ihre Cluster-Konfiguration an:

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

Bei Clustern, die mit SlurmSettingsDns/erstellt DisableManagedDnsund auf UseEc2Hostnamesgesetzt wurdentrue, wird das Slurm NodeName nicht vom DNS aufgelöst. Verwenden Sie Slurm NodeHostName stattdessen die.

Anmerkung

Dieser Hinweis ist ab AWS ParallelCluster Version 3.3.0 nicht relevant.

Für AWS ParallelCluster unterstützte Versionen vor 3.3.0:

Wenn auf gesetzt UseEc2Hostnames isttrue, wird die Slurm Konfigurationsdatei mit den epilog Skripten AWS ParallelCluster prolog und gesetzt:

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

  • epilogwird ausgeführt, um Inhalte zu bereinigen, die von geschrieben wurdenprolog.

Um benutzerdefinierte epilog Skripts prolog oder Skripts hinzuzufügen, fügen Sie sie den jeweiligen /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 zwischen den AWS Diensten AWS ParallelCluster 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 einer öffentlichen IPv4-Adresse im Subnetz deaktiviert ist, um sicherzustellen, dass die pcluster Befehle Zugriff auf den Cluster haben.

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

    Optional:

    • Wenn die VPC-Endpoints ohne ausdrückliche Angabe einer Sicherheitsgruppe erstellt werden, wird die Standardsicherheitsgruppe der VPC zugeordnet. Geben Sie daher die Standardsicherheitsgruppe an. AdditionalSecurityGroups

    • Wenn beim Erstellen des Clusters und/oder der VPC-Endpunkte benutzerdefinierte Sicherheitsgruppen 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 einzig 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 Route53 deaktivieren und Amazon EC2 EC2-Hostnamen verwenden.

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 Hauptknoten befindet, verwenden Sie eine Proxyinstanz in einem öffentlichen Subnetz der VPC. Diese Anforderung gilt sowohl für SSH- als auch für DCV-Verbindungen. Auf die öffentliche IP eines Hauptknotens kann nicht zugegriffen werden, wenn das Subnetz keinen Internetzugang hat. Die dcv-connect Befehle pcluster ssh und verwenden die öffentliche IP, falls vorhanden, oder die private IP. Bevor Sie Ihren Cluster erstellen, stellen Sie sicher, dass die automatische Zuweisung einer öffentlichen IPv4-Adresse im Subnetz deaktiviert ist, um sicherzustellen, dass die pcluster 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 Amazon EC2 EC2-Proxyinstanz 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 Amazon EC2 EC2-Instance in einem öffentlichen Subnetz, das sich in derselben VPC wie das Subnetz des Clusters befindet.

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

    3. Hängen Sie eine AWS ParallelCluster Benutzerrichtlinie an die Amazon EC2 EC2-Proxyinstanz an. Weitere Informationen finden Sie unter AWS ParallelCluster Beispiele pcluster für Benutzerrichtlinien.

    4. Installieren Sie AWS ParallelCluster auf der Amazon EC2 EC2-Proxyinstanz.

    5. Stellen Sie über DCV eine Verbindung zur Amazon EC2 EC2-Proxyinstanz her.

    6. Verwenden Sie den pcluster dcv-connect Befehl auf der Proxy-Instance, um ohne Internetzugang eine Verbindung zum Cluster innerhalb des Subnetzes herzustellen.

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