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 ParallelClusterutilizza Amazon Virtual Private Cloud (VPC) per il networking. VPC fornisce una piattaforma di rete flessibile e configurabile in cui è possibile distribuire 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 AmazonProvidedDNS richiesto. 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 di testa e di elaborazione.

  • Due sottoreti, con il nodo principale in una sottorete pubblica e i 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 ParallelClusterpuò anche essere distribuito per utilizzare un proxy HTTP per tutte leAWS richieste. Le combinazioni di queste configurazioni determinano molti scenari di distribuzione. Ad esempio, è possibile configurare una singola sottorete pubblica con tutti gli accessi tramite Internet. In alternativa, puoi configurare una rete completamente privata utilizzandoAWS Direct Connect un proxy HTTP per tutto il traffico.

A partire dallaAWS ParallelCluster 3.0.0 è possibile configurare diverseSecurityGroupsPlacementGroup impostazioniAdditionalSecurityGroups e impostazioni per ogni coda. Per ulteriori informazioni, vedere HeadNodeSlurmQueues/NetworkingNetworkinge AwsBatchQueues/Networking.

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

AWS ParallelCluster in una sottorete pubblica singola

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 poter accedere 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 assegnazione automatica dell'indirizzo IPv4 pubblico» per la sottorete utilizzata in HeadNodeNetworking//SubnetIdo assegnando un IP elastico in HeadNode/Networking/ElasticIp.

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

  • Se si definisce un tipo dip4d istanza o un altro tipo di istanza con più interfacce di rete o una scheda di interfaccia di rete sul nodo principale, è necessario impostare HeadNodeNetworking//ElasticIptrueper fornire l'accesso pubblico. AWSgli 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 elaborazione del cluster. Per ulteriori informazioni sugli indirizzi IP, consulta Assegnazione di un indirizzo IPv4 pubblico durante il suo avvio nella Guida dell'utente di Amazon EC2 per l'istanza Linux.

  • Non è possibile definire un tipo dihp6id istanzap4d o un altro tipo di istanza con più interfacce di rete o una scheda di interfaccia di rete per calcolare i nodi perché gli IPAWS pubblici possono essere assegnati solo alle istanze avviate con una singola interfaccia di rete. Per ulteriori informazioni sugli indirizzi IP, consulta Assegnazione di un indirizzo IPv4 pubblico durante il suo avvio nella Guida dell'utente di Amazon EC2 per l'istanza Linux.

Per ulteriori informazioni, consulta Abilitazione dell'accesso a Internet nella Guida dell'utente di Amazon VPC.

AWS ParallelCluster che utilizza due sottoreti

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

Se si definisce un tipo di istanza p4d o un altro tipo di istanza con più interfacce di rete o una scheda di interfaccia di rete sul nodo principale, è necessario impostare HeadNodeNetworking//ElasticIptrueper fornire l'accesso pubblico. AWSgli IP pubblici possono essere assegnati solo alle istanze avviate con una singola interfaccia di rete. Per ulteriori informazioni sugli indirizzi IP, consulta Assegnazione di un indirizzo IPv4 pubblico durante il suo avvio nella Guida dell'utente di Amazon EC2 per l'istanza Linux.

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 elaborazione.

AWS ParallelCluster in un'unica sottorete privata connessa utilizzando 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 Web è richiesto sia per i nodi principali che per i nodi di elaborazione.

AWS ParallelClusterconAWS Batch scheduler

Quando utilizzi awsbatch come tipo di pianificatore, AWS ParallelCluster crea un ambiente di calcolo gestito AWS Batch. L'AWS Batchambiente gestisce le istanze di container Amazon Elastic Container Service (Amazon ECS). Queste istanze vengono avviate nella sottorete configurata nel SubnetIdsparametro AwsBatchQueuesNetworking//. AWS BatchPer funzionare correttamente, le istanze di container Amazon ECS richiedono l'accesso a una 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. Consigliamo 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 parallel a più nodi (dai AWS Batchdocumenti):

AWS Batchi job parallel a più nodi utilizzano la modalità diawsvpc rete Amazon ECS. Ciò conferisce ai container di processi parallel a più nodi 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à diawsvpc rete non fornisce interfacce di rete elastiche con indirizzi IP pubblici per le attività che utilizzano il tipo di avvio di Amazon EC2. Per accedere a Internet, le attività che utilizzano il tipo di avvio di Amazon EC2 devono essere avviate in una sottorete privata configurata per l'utilizzo di un gateway NAT.

È necessario configurare un gateway NAT per consentire al cluster di eseguire processi parallel a più nodi.

Tutte le configurazioni e le considerazioni precedenti sono valide anche perAWS Batch. Di seguito è riportato un esempio di configurazioneAWS Batch di 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 ParallelClusterin un'unica sottorete senza accesso a Internet


        AWS ParallelClusterutilizzando una sottorete e nessuna connessione internet

Una sottorete senza accesso a Internet non consente connessioni a Internet in entrata o in uscita. QuestaAWS ParallelCluster configurazione può aiutare i clienti attenti alla sicurezza a migliorare ulteriormente la sicurezza delle proprieAWS ParallelCluster risorse. AWS ParallelClusteri nodi sono creati daAWS 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 viene descritto come configurare il cluster. Vengono inoltre fornite informazioni sulle limitazioni relative all'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 diAWS Servizi.

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

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

Amazon CloudWatch

com.amazonaws. identificativo della regione .logs

Interfaccia

AWS CloudFormation

com.amazonaws. region-id .cloudformation

Interfaccia

Amazon EC2

com.amazonaws. id della regione .ec2

Interfaccia

Simple Storage Service (Amazon S3)

com.amazonaws. region-id .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 (Tipo)

Amazon CloudWatch

com.amazonaws. identificativo della regione .logs

Interfaccia

AWS CloudFormation

cn.com.amazonaws. region-id .cloudformation

Interfaccia

Amazon EC2

cn.com.amazonaws. id della regione .ec2

Interfaccia

Simple Storage Service (Amazon S3)

com.amazonaws. region-id .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 DirectoryServiceè abilitato, altrimenti è facoltativo.

Tutte le istanze nel cloud VPC devono disporre di gruppi di sicurezza adeguati per comunicare con gli endpoint. È possibile farlo aggiungendo gruppi di sicurezza AdditionalSecurityGroupssotto HeadNodee AdditionalSecurityGroupssotto le SlurmQueuesconfigurazioni. 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 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}/*"

Disabilita Route 53 e usa i nomi host EC2

Quando si crea un cluster Slurm,AWS ParallelCluster crea una zona ospitata privata di 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 EC2 predefiniti, ad esempioip-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, lo SlurmNodeName non viene risolto dal DNS. UsaNodeHostName invece lo Slurm.

Nota

Questa nota non è rilevante a partire dallaAWS ParallelCluster versione 3.3.0.

Per le versioniAWS ParallelCluster supportate precedenti alla 3.3.0:

QuandoUseEc2Hostnames è impostato sutrue, il file di configurazione Slurm viene impostato con gliepilog scriptAWS ParallelClusterprolog and:

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

  • epilogviene eseguito per pulire i contenuti scritti daprolog.

Per aggiungereepilog scriptprolog 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 traAWS ParallelCluster eAWS i Servizi, al VPC della sottorete devono essere collegati gli endpoint VPC. Prima di creare il cluster, verifica che l'assegnazione automatica dell'indirizzo IPv4 pubblico sia disattivata nella sottorete per assicurarti che ipcluster comandi abbiano accesso al cluster.

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

    Opzionale:

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

    • Se vengono utilizzati gruppi di sicurezza personalizzati durante la creazione del cluster e/o degli endpoint VPC, nonAdditionalSecurityGroups è 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 scheduler Slurm supporta un cluster in una sottorete senza accesso a Internet.

  • SlurmSettings: le impostazioni Slurm.

    Vedi la sezione precedente Disabilitare Route53 e utilizzare i nomi host 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 alle connessioni SSH e DCV. L'IP pubblico di un nodo principale non è accessibile se la sottorete non dispone di accesso a Internet. Idcv-connect comandipcluster ssh and utilizzano l'IP pubblico, se esiste, o l'IP privato. Prima di creare il cluster, verifica che l'assegnazione automatica dell'indirizzo IPv4 pubblico sia disattivata nella sottorete per assicurarti che ipcluster comandi abbiano accesso al cluster.

    L'esempio seguente mostra come connettersi a una sessione DCV in esecuzione nel nodo principale del cluster. Ti connetti tramite un'istanza proxy 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 EC2 in una sottorete pubblica, che si trova nello stesso ambiente VPC della sottorete del cluster.

    2. Verificare che il client e il server NICE DCV siano installati sull'istanza EC2.

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

    4. InstallazioneAWS ParallelCluster sull'istanza proxy EC2.

    5. Connect tramite DCV all'istanza proxy EC2.

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

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