Création d'un cluster avec AWS CloudFormation - AWS ParallelCluster

Les traductions sont fournies par des outils de traduction automatique. En cas de conflit entre le contenu d'une traduction et celui de la version originale en anglais, la version anglaise prévaudra.

Création d'un cluster avec AWS CloudFormation

Découvrez comment créer un cluster avec une ressource AWS ParallelCluster CloudFormation personnalisée. Pour plus d’informations, consultez AWS CloudFormation ressource personnalisée.

Lors de l'utilisation AWS ParallelCluster, vous ne payez que pour les AWS ressources créées lorsque vous créez ou mettez à jour AWS ParallelCluster des images et des clusters. Pour plus d’informations, consultez AWS services utilisés par AWS ParallelCluster.

Prérequis :

Création de clusters à l'aide d'une pile CloudFormation à création rapide

Dans ce didacticiel, vous allez utiliser une pile de création rapide pour déployer un CloudFormation modèle qui crée un cluster et les ressources suivantes : AWS

  • Une CloudFormation pile racine créée à l'aide d'une pile de CloudFormation création rapide.

  • CloudFormation Des piles imbriquées qui incluent des politiques par défaut, une configuration VPC par défaut et un fournisseur de ressources personnalisé.

  • Exemple de pile de AWS ParallelCluster clusters et de cluster auxquels vous pouvez vous connecter et exécuter des tâches.

Créez un cluster avec AWS CloudFormation

  1. Connectez-vous au AWS Management Console.

  2. Ouvrez le lien de CloudFormation création rapide pour créer les ressources suivantes dans la CloudFormation console :

    • Une CloudFormation pile imbriquée avec un VPC doté d'un sous-réseau public et privé pour exécuter le nœud principal du cluster et les nœuds de calcul, respectivement.

    • Une CloudFormation pile imbriquée avec une ressource AWS ParallelCluster personnalisée pour gérer le cluster.

    • Une CloudFormation pile imbriquée avec les politiques par défaut pour gérer le cluster.

    • Une CloudFormation pile racine pour les piles imbriquées.

    • Un AWS ParallelCluster cluster avec le Slurm planificateur et un nombre défini de nœuds de calcul.

    L'interface utilisateur de CloudFormation création rapide de la console.
  3. Dans la section Paramètres de création rapide de la pile, entrez les valeurs des paramètres suivants :

    1. Pour KeyName, entrez le nom de votre paire de clés Amazon EC2.

    2. Pour AvailabilityZone, choisissez un AZ pour les nœuds de votre cluster, par exemple,us-east-1a.

  4. Cochez les cases correspondant à chacune des fonctionnalités d'accès au bas de la page.

  5. Sélectionnez Créer la pile.

  6. Attendez que la CloudFormation pile atteigne son CREATE_COMPLETE état.

Création de clusters avec l'interface de ligne de AWS CloudFormation commande (CLI)

Dans ce didacticiel, vous allez utiliser l'interface de ligne de AWS commande (CLI) CloudFormation pour déployer un CloudFormation modèle qui crée un cluster.

Créez les AWS ressources suivantes :
  • Une CloudFormation pile racine créée à l'aide d'une pile de CloudFormation création rapide.

  • CloudFormation Des piles imbriquées qui incluent des politiques par défaut, une configuration VPC par défaut et un fournisseur de ressources personnalisé.

  • Exemple de pile de AWS ParallelCluster clusters et de cluster auxquels vous pouvez vous connecter et exécuter des tâches.

Remplacez les entrées surlignées en rouge, telles que keypair, par vos propres valeurs.

Créez un cluster avec AWS CloudFormation

  1. Créez un CloudFormation modèle nommé cluster_template.yaml avec le contenu suivant :

    AWSTemplateFormatVersion: '2010-09-09' Description: > AWS ParallelCluster CloudFormation Template Parameters: KeyName: Description: KeyPair to login to the head node Type: AWS::EC2::KeyPair::KeyName AvailabilityZone: Description: Availability zone where instances will be launched Type: AWS::EC2::AvailabilityZone::Name Default: us-east-2a Mappings: ParallelCluster: Constants: Version: 3.7.0 Resources: PclusterClusterProvider: Type: AWS::CloudFormation::Stack Properties: TemplateURL: !Sub - https://${AWS::Region}-aws-parallelcluster.s3.${AWS::Region}.${AWS::URLSuffix}/parallelcluster/${Version}/templates/custom_resource/cluster.yaml - { Version: !FindInMap [ParallelCluster, Constants, Version] } PclusterVpc: Type: AWS::CloudFormation::Stack Properties: Parameters: PublicCIDR: 10.0.0.0/24 PrivateCIDR: 10.0.16.0/20 AvailabilityZone: !Ref AvailabilityZone TemplateURL: !Sub - https://${AWS::Region}-aws-parallelcluster.s3.${AWS::Region}.${AWS::URLSuffix}/parallelcluster/${Version}/templates/networking/public-private-${Version}.cfn.json - { Version: !FindInMap [ParallelCluster, Constants, Version ] } PclusterCluster: Type: Custom::PclusterCluster Properties: ServiceToken: !GetAtt [ PclusterClusterProvider , Outputs.ServiceToken ] ClusterName: !Sub 'c-${AWS::StackName}' ClusterConfiguration: Image: Os: alinux2 HeadNode: InstanceType: t2.medium Networking: SubnetId: !GetAtt [ PclusterVpc , Outputs.PublicSubnetId ] Ssh: KeyName: !Ref KeyName Scheduling: Scheduler: slurm SlurmQueues: - Name: queue0 ComputeResources: - Name: queue0-cr0 InstanceType: t2.micro Networking: SubnetIds: - !GetAtt [ PclusterVpc , Outputs.PrivateSubnetId ] Outputs: HeadNodeIp: Description: The Public IP address of the HeadNode Value: !GetAtt [ PclusterCluster, headNode.publicIpAddress ]
  2. Exécutez la commande AWS CLI suivante pour déployer la CloudFormation pile à des fins de création et de gestion de clusters.

    $ aws cloudformation deploy --template-file ./cluster_template.yaml \ --stack-name mycluster \ --parameter-overrides KeyName=keypair \ AvailabilityZone=us-east-2b \ --capabilities CAPABILITY_NAMED_IAM CAPABILITY_AUTO_EXPAND

Afficher la sortie CloudFormation du cluster

Consultez la sortie du CloudFormation cluster pour obtenir des informations utiles sur le cluster. La ValidationMessages propriété ajoutée permet d'accéder aux messages de validation issus des opérations de création et de mise à jour du cluster.

  1. Accédez à la CloudFormation console et sélectionnez la pile qui inclut votre ressource AWS ParallelCluster personnalisée.

  2. Choisissez Stack details, puis sélectionnez l'onglet Outputs.

    La console CloudFormation affiche un tableau indiquant les valeurs pour HeadNodeIp et ValidationMessages.

    Les messages de validation peuvent être tronqués. Pour plus d'informations sur la façon de récupérer les journaux, consultezAWS ParallelCluster résolution des problèmes.

Accédez à votre cluster

Accédez au cluster.

sshdans le nœud principal du cluster
  1. Une fois le déploiement de la CloudFormation pile terminé, obtenez l'adresse IP du nœud principal à l'aide de la commande suivante :

    $ HEAD_NODE_IP=$(aws cloudformation describe-stacks --stack-name=mycluster --query "Stacks|[0].Outputs[?OutputKey=='HeadNodeIp']|[0].OutputValue" --output=text)

    Vous pouvez également récupérer l'adresse IP du nœud principal à partir du HeadNodeIpparamètre de l'onglet Cluster Stack Outputs de la CloudFormation console.

    Vous pouvez trouver l'adresse IP du nœud principal ici car elle a été ajoutée dans la Outputs section du CloudFormation modèle de cluster, spécifiquement pour cet exemple de cluster.

  2. Connectez-vous au nœud principal du cluster en exécutant la commande suivante :

    $ ssh -i keyname.pem ec2-user@$HEAD_NODE_IP

Nettoyage

Supprimez le cluster.

  1. Exécutez la commande AWS CLI suivante pour supprimer la CloudFormation pile et le cluster.

    $ aws cloudformation delete-stack --stack-name=mycluster
  2. Vérifiez l'état de suppression de la pile en exécutant la commande suivante.

    $ aws cloudformation describe-stacks --stack-name=mycluster