Configurazioni di rete - AWS ParallelCluster

Le traduzioni sono generate tramite traduzione automatica. In caso di conflitto tra il contenuto di una traduzione e la versione originale in Inglese, quest'ultima prevarrà.

Configurazioni di rete

AWS ParallelCluster utilizza Amazon Virtual Private Cloud (VPC) per il networking. VPC offre una piattaforma di rete flessibile e configurabile in cui è possibile implementare i cluster.

Il VPC deve avere DNS Resolution = yes, DNS Hostnames = yes e le opzioni DHCP con il nome di dominio corretto per la regione. Il set di opzioni DHCP predefinito specifica già il DNS richiesto. AmazonProvided Se specifichi più di un server di nomi di dominio, consulta i set di opzioni DHCP nella Amazon VPC User Guide.

AWS ParallelCluster supporta le seguenti configurazioni di alto livello:

  • Una sottorete per i nodi principali e di calcolo.

  • Due sottoreti, con il nodo principale in una sottorete pubblica e nodi di calcolo in una sottorete privata. Le sottoreti possono essere nuove o esistenti.

Tutte queste configurazioni possono funzionare con o senza indirizzi IP pubblici. AWS ParallelCluster può anche essere distribuito per utilizzare un proxy HTTP per tutte le AWS richieste. Le combinazioni di queste configurazioni determinano molti scenari di distribuzione. Ad esempio, è possibile configurare una singola sottorete pubblica con tutti gli accessi su Internet. In alternativa, puoi configurare una rete completamente privata utilizzando AWS Direct Connect un proxy HTTP per tutto il traffico.

A partire dalla AWS ParallelCluster versione 3.0.0 è possibile configurare PlacementGroup impostazioni diverse SecurityGroups per ogni coda. AdditionalSecurityGroups Per ulteriori informazioni, vedere HeadNode/Networkinge/and SlurmQueues/Networking. AwsBatchQueuesNetworking

Per illustrazioni di alcuni scenari di rete, vedere i seguenti diagrammi di architettura.

AWS ParallelCluster in un'unica sottorete pubblica

La configurazione per questa architettura richiede le seguenti impostazioni:

# 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 questa configurazione, a tutte le istanze del cluster deve essere assegnato un IP pubblico per ottenere l'accesso a Internet. Per raggiungere questo obiettivo, effettuare le seguenti operazioni:

  • Assicurati che al nodo principale sia assegnato un indirizzo IP pubblico attivando l'impostazione «Abilita l'assegnazione automatica dell'indirizzo IPv4 pubblico» per la sottorete utilizzata in HeadNode//SubnetIdo assegnando un IP elastico in Networking//. HeadNodeNetworkingElasticIp

  • Assicurati che ai nodi di calcolo sia assegnato un indirizzo IP pubblico attivando l'impostazione «Abilita l'assegnazione automatica dell'indirizzo IPv4 pubblico» per la sottorete utilizzata in Scheduling///SubnetIdso AssignPublicIpimpostando: true in SlurmQueuesNetworking//. SchedulingSlurmQueuesNetworking

  • Se definisci un tipo di p4d istanza o un altro tipo di istanza con più interfacce di rete o una scheda di interfaccia di rete per il nodo principale, devi impostare HeadNode//Networkingper fornire l'accesso pubblico. ElasticIptrue AWS gli IP pubblici possono essere assegnati solo alle istanze avviate con una singola interfaccia di rete. In questo caso, si consiglia di utilizzare un gateway NAT per fornire l'accesso pubblico ai nodi di calcolo del cluster. Per ulteriori informazioni sugli indirizzi IP, consulta Assegnare un indirizzo IPv4 pubblico durante il lancio dell'istanza nella Amazon EC2 User Guide for Linux Instances.

  • Non puoi definire un tipo di hp6id istanza p4d or o un altro tipo di istanza con più interfacce di rete o una scheda di interfaccia di rete per calcolare i nodi perché gli IP AWS pubblici possono essere assegnati solo alle istanze avviate con una singola interfaccia di rete. Per ulteriori informazioni sugli indirizzi IP, consulta Assegnare un indirizzo IPv4 pubblico durante il lancio dell'istanza nella Amazon EC2 User Guide for Linux Instances.

Per ulteriori informazioni, consulta Enabling Internet access in Amazon VPC User Guide.

AWS ParallelCluster utilizzando due sottoreti

La configurazione per l'utilizzo di una sottorete privata esistente per le istanze di calcolo richiede le seguenti impostazioni:

# 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 questa configurazione, solo al nodo principale del cluster è richiesto l'assegnazione di un IP pubblico. È possibile ottenere ciò attivando l'impostazione «Abilita l'assegnazione automatica dell'indirizzo IPv4 pubblico» per la sottorete utilizzata in HeadNode//SubnetIdo assegnando un IP elastico in Networking//. HeadNodeNetworkingElasticIp

Se definisci un tipo di istanza p4d o un altro tipo di istanza con più interfacce di rete o una scheda di interfaccia di rete per il nodo principale, devi impostare//per fornire l'accesso pubblico. HeadNodeNetworkingElasticIptrue AWS gli IP pubblici possono essere assegnati solo alle istanze avviate con una singola interfaccia di rete. Per ulteriori informazioni sugli indirizzi IP, consulta Assegnare un indirizzo IPv4 pubblico durante il lancio dell'istanza nella Amazon EC2 User Guide for Linux Instances.

Questa configurazione richiede un gateway NAT o un proxy interno nella sottorete utilizzata per le code, per consentire l'accesso a Internet alle istanze di calcolo.

AWS ParallelCluster in un'unica sottorete privata connessa tramite AWS Direct Connect

La configurazione per questa architettura richiede le seguenti impostazioni:

# 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

Quando Scheduling/SlurmQueues/Networking/AssignPublicIpè impostato sufalse, le sottoreti devono essere configurate correttamente per utilizzare il proxy per tutto il traffico. L'accesso al Web è richiesto sia per i nodi principali che per quelli di calcolo.

AWS ParallelCluster con scheduler AWS Batch

Quando si utilizza awsbatch come tipo di scheduler, AWS ParallelCluster crea un ambiente di elaborazione AWS Batch gestito. L' AWS Batch ambiente gestisce le istanze di container Amazon Elastic Container Service (Amazon ECS). Queste istanze vengono avviate nella sottorete configurata nel parametro//. AwsBatchQueuesNetworkingSubnetIds AWS Batch Per funzionare correttamente, le istanze di container Amazon ECS necessitano dell'accesso alla rete esterna per comunicare con l'endpoint del servizio Amazon ECS. Questo si traduce negli scenari seguenti:

  • L'ID di sottorete specificato per la coda utilizza un gateway NAT per accedere a Internet. Abbiamo consigliato questo approccio.

  • Le istanze avviate nella sottorete della coda hanno indirizzi IP pubblici e possono raggiungere Internet tramite un Internet Gateway.

Inoltre, se sei interessato ai lavori paralleli multinodo (dai AWS Batch documenti):

AWS Batch i lavori paralleli a più nodi utilizzano la modalità di awsvpc rete Amazon ECS. Ciò conferisce ai contenitori di job paralleli multinodo le stesse proprietà di rete delle istanze Amazon EC2. Ogni container di processo parallelo a più nodi ottiene la propria interfaccia di rete elastica, un indirizzo IP primario privato e un nome host DNS interno. L'interfaccia di rete viene creata nella stessa sottorete Amazon VPC della risorsa di elaborazione host. A questa vengono applicati anche tutti i gruppi di sicurezza applicati alle risorse di calcolo.

Quando si utilizza Amazon ECS Task Networking, la modalità di awsvpc rete non fornisce interfacce di rete elastiche con indirizzi IP pubblici per attività che utilizzano il tipo di avvio Amazon EC2. Per accedere a Internet, le attività che utilizzano il tipo di avvio Amazon EC2 devono essere avviate in una sottorete privata configurata per utilizzare un gateway NAT.

È necessario configurare un gateway NAT per consentire al cluster di eseguire processi paralleli multinodo.

Tutte le configurazioni e le considerazioni precedenti sono valide anche per AWS Batch. Di seguito è riportato un esempio di configurazione di AWS Batch rete.

# 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

Nella Networkingsezione Scheduling/AwsBatchQueues/, SubnetIdsè un tipo di elenco ma, attualmente, è supportata solo una sottorete.

Per ulteriori informazioni, consulta i seguenti argomenti:

AWS ParallelCluster in un'unica sottorete senza accesso a Internet

AWS ParallelCluster utilizzando una sottorete e senza Internet

Una sottorete senza accesso a Internet non consente connessioni in entrata o in uscita a Internet. Questa AWS ParallelCluster configurazione può aiutare i clienti attenti alla sicurezza a migliorare ulteriormente la sicurezza delle proprie risorse. AWS ParallelCluster AWS ParallelCluster i nodi sono costituiti da AWS ParallelCluster AMI che includono tutto il software necessario per eseguire un cluster senza accesso a Internet. In questo modo, AWS ParallelCluster puoi creare e gestire cluster con nodi che non dispongono di accesso a Internet.

In questa sezione, imparerai come configurare il cluster. Scopri anche le limitazioni nell'esecuzione di cluster senza accesso a Internet.

Configurazione degli endpoint VPC

Per garantire il corretto funzionamento del cluster, i nodi del cluster devono essere in grado di interagire con una serie di servizi. AWS

Crea e configura i seguenti endpoint VPC in modo che i nodi del cluster possano interagire con i AWS Servizi, senza accesso a Internet:

Commercial and AWS GovCloud (US) partitions
Servizio Nome servizio Type

Amazon CloudWatch

com.amazonaws. identificativo della regione .logs

Interfaccia

AWS CloudFormation

com.amazonaws. region-id .cloudformation

Interfaccia

Amazon EC2

com.amazonaws. id-regione .ec2

Interfaccia

Amazon S3

com.amazonaws. identificativo regionale .s3

Gateway

Amazon DynamoDB

com.amazonaws. id della regione .dynamodb

Gateway

AWS Secrets Manager**

com.amazonaws. region-id .secretsmanager

Interfaccia

China partition
Servizio Nome servizio Type

Amazon CloudWatch

com.amazonaws. identificativo della regione .logs

Interfaccia

AWS CloudFormation

cn.com.amazonaws. region-id. cloudformation

Interfaccia

Amazon EC2

cn.com amazonaws. id-regione .ec2

Interfaccia

Amazon S3

com.amazonaws. identificativo regionale .s3

Gateway

Amazon DynamoDB

com.amazonaws. id della regione .dynamodb

Gateway

AWS Secrets Manager**

com.amazonaws. region-id .secretsmanager

Interfaccia

** Questo endpoint è richiesto solo quando è abilitato, altrimenti DirectoryServiceè facoltativo.

Tutte le istanze nel VPC devono disporre di gruppi di sicurezza adeguati per comunicare con gli endpoint. È possibile farlo aggiungendo gruppi di sicurezza nelle configurazioni HeadNodee AdditionalSecurityGroupsAdditionalSecurityGroupsnelle configurazioni. SlurmQueues Ad esempio, se gli endpoint VPC vengono creati senza specificare esplicitamente un gruppo di sicurezza, il gruppo di sicurezza predefinito viene associato agli endpoint. Aggiungendo il gruppo di sicurezza predefinito aAdditionalSecurityGroups, si abilita la comunicazione tra il cluster e gli endpoint.

Nota

Quando utilizzi le policy IAM per limitare l'accesso agli endpoint VPC, devi aggiungere quanto segue all'endpoint VPC Amazon S3:

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

Disattiva Route 53 e usa i nomi host di Amazon EC2

Quando si crea un Slurm cluster, AWS ParallelCluster crea una zona ospitata privata sulla Route 53 che viene utilizzata per risolvere i nomi host dei nodi di calcolo personalizzati, ad esempio. {queue_name}-{st|dy}-{compute_resource}-{N} Poiché Route 53 non supporta gli endpoint VPC, questa funzionalità deve essere disabilitata. Inoltre, AWS ParallelCluster deve essere configurato per utilizzare i nomi host predefiniti di Amazon EC2, ad esempio. ip-1-2-3-4 Applica le seguenti impostazioni alla configurazione del cluster:

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

Per i cluster creati con SlurmSettings/Dns/DisableManagedDnse UseEc2Hostnamesimpostati sutrue, Slurm NodeName non viene risolto dal DNS. Usa invece. Slurm NodeHostName

Nota

Questa nota non è rilevante a partire dalla AWS ParallelCluster versione 3.3.0.

Per le versioni AWS ParallelCluster supportate precedenti alla 3.3.0:

Quando UseEc2Hostnames è impostato sutrue, il file Slurm di configurazione viene impostato con gli epilog script AWS ParallelCluster prolog and:

  • prologviene eseguito per aggiungere informazioni /etc/hosts sui nodi ai nodi di calcolo quando ogni lavoro viene allocato.

  • epilogviene eseguito per pulire i contenuti scritti da. prolog

Per aggiungere epilog script prolog o personalizzati, aggiungili rispettivamente alle /opt/slurm/etc/pcluster/epilog.d/ cartelle /opt/slurm/etc/pcluster/prolog.d/ o.

Configurazione del cluster

Scopri come configurare il cluster per l'esecuzione in una sottorete senza connessione a Internet.

La configurazione per questa architettura richiede le seguenti impostazioni:

# 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): La sottorete senza accesso a Internet.

    Per abilitare la comunicazione tra AWS ParallelCluster e AWS Servizi, il VPC della sottorete deve avere gli endpoint VPC collegati. Prima di creare il cluster, verifica che l'assegnazione automatica dell'indirizzo IPv4 pubblico sia disabilitata nella sottorete per garantire che pcluster i comandi abbiano accesso al cluster.

  • AdditionalSecurityGroups: il gruppo di sicurezza che abilita la comunicazione tra il cluster e gli endpoint VPC.

    Facoltativo:

    • Se gli endpoint VPC vengono creati senza specificare esplicitamente un gruppo di sicurezza, viene associato il gruppo di sicurezza predefinito del VPC. Pertanto, fornisci il gruppo di sicurezza predefinito a. AdditionalSecurityGroups

    • Se vengono utilizzati gruppi di sicurezza personalizzati durante la creazione del cluster e/o degli endpoint VPC, non AdditionalSecurityGroups è necessario purché i gruppi di sicurezza personalizzati consentano la comunicazione tra il cluster e gli endpoint VPC.

  • Scheduler: Lo scheduler del cluster.

    slurmè l'unico valore valido. Solo lo Slurm scheduler supporta un cluster in una sottorete senza accesso a Internet.

  • SlurmSettings: Le impostazioni. Slurm

    Consulta la sezione precedente Disattiva Route53 e usa i nomi host di Amazon EC2.

Limitazioni

  • Connessione al nodo principale tramite SSH o NICE DCV: quando ti connetti a un cluster, assicurati che il client della connessione possa raggiungere il nodo principale del cluster tramite il suo indirizzo IP privato. Se il client non si trova nello stesso VPC del nodo principale, utilizza un'istanza proxy in una sottorete pubblica del VPC. Questo requisito si applica sia alle connessioni SSH che a quelle DCV. L'IP pubblico di un nodo principale non è accessibile se la sottorete non dispone di accesso a Internet. I dcv-connect comandi pcluster ssh and utilizzano l'IP pubblico, se esistente, o l'IP privato. Prima di creare il cluster, verifica che l'assegnazione automatica dell'indirizzo IPv4 pubblico sia disabilitata nella sottorete per garantire che pcluster i comandi abbiano accesso al cluster.

    L'esempio seguente mostra come è possibile connettersi a una sessione DCV in esecuzione nel nodo principale del cluster. Ti connetti tramite un'istanza proxy Amazon EC2. L'istanza funziona come server NICE DCV per il PC e come client per il nodo principale nella sottorete privata.

    Connect tramite DCV tramite un'istanza proxy in una sottorete pubblica:

    1. Crea un'istanza Amazon EC2 in una sottorete pubblica, che si trova nello stesso VPC della sottorete del cluster.

    2. Assicurati che il client e il server NICE DCV siano installati sulla tua istanza Amazon EC2.

    3. Allega una AWS ParallelCluster User Policy all'istanza proxy di Amazon EC2. Per ulteriori informazioni, consulta AWS ParallelCluster esempi di politiche pcluster utente.

    4. Installa AWS ParallelCluster sull'istanza proxy Amazon EC2.

    5. Connect tramite DCV all'istanza proxy Amazon EC2.

    6. Usa il pcluster dcv-connect comando sull'istanza proxy per connetterti al cluster all'interno della sottorete senza accesso a Internet.

  • Interazione con altri AWS servizi: solo i servizi strettamente richiesti da AWS ParallelCluster sono elencati sopra. Se il cluster deve interagire con altri servizi, crea gli endpoint VPC corrispondenti.