Création d'une personnalisation AWS ParallelCluster AMI - 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'une personnalisation AWS ParallelCluster AMI

Lorsque vous utilisez l'interface de ligne de AWS ParallelCluster commande (CLI) ouAPI, 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 de plus amples informations, veuillez consulter AWS services utilisés par AWS ParallelCluster.

PCUIIl repose sur une architecture sans serveur et vous pouvez l'utiliser dans la catégorie AWS Free Tier dans la plupart des cas. Pour de plus amples informations, veuillez consulter PCUIcoûts.

Important

Si vous créez une personnalisationAMI, vous devez répéter les étapes que vous avez utilisées pour créer votre personnalisation AMI à chaque nouvelle AWS ParallelCluster version.

Avant de poursuivre votre lecture, nous vous recommandons de consulter d'abord Actions de bootstrap personnalisées cette section. Déterminez si les modifications que vous souhaitez apporter peuvent être scriptées et prises en charge dans les AWS ParallelCluster versions futures.

Même si la création d'un formulaire personnalisé n'est généralement pas idéale, il existe des scénarios spécifiques AMI dans lesquels il AWS ParallelCluster est nécessaire AMI de créer un formulaire personnalisé. Ce didacticiel explique comment créer une version personnalisée AMI pour ces scénarios.

Prérequis

Comment personnaliser le AWS ParallelCluster AMI

Il existe deux manières de créer une personnalisation AWS ParallelCluster AMI. L'une de ces deux méthodes consiste à en créer un nouveau à AMI l'aide du AWS ParallelCluster CLI. Une autre méthode nécessite que vous apportiez des modifications manuelles pour créer une nouvelle AMI version disponible sous votre Compte AWS.

Créez une personnalisation AWS ParallelCluster AMI

Si vous avez un logiciel personnaliséAMI, vous pouvez appliquer les modifications nécessaires AWS ParallelCluster en plus de celui-ci. AWS ParallelCluster s'appuie sur le service EC2 Image Builder pour créer des produits personnalisésAMIs. Pour plus d'informations, consultez le guide de l'utilisateur d'Image Builder.

Points clés :

  • Le processus dure environ 1 heure. Cette durée peut varier s'il y a un Build/supplémentaire Componentsà installer au moment de la construction.

  • Le AMI est étiqueté avec les versions des principaux composants. Il s'agit notamment du noyau, du planificateur et EFAdu pilote. Un sous-ensemble des versions des composants est également indiqué dans la AMI description.

  • À partir de la AWS ParallelCluster version 3.0.0, un nouvel ensemble de CLI commandes peut être utilisé pour gérer le cycle de vie des images. Cela inclut build-image, list-images, describe-image et delete-image.

  • Cette méthode est reproductible. Vous pouvez le réexécuter pour rester à AMIs jour (par exemple, les mises à jour du système d'exploitation), puis les utiliser lorsque vous mettez à jour un cluster existant.

Note

Si vous utilisez cette méthode dans la partition AWS Chine, vous risquez de rencontrer des erreurs réseau. Par exemple, ces erreurs peuvent apparaître dans la pcluster build-image commande lorsqu'elle télécharge des packages depuis GitHub ou depuis un référentiel du système d'exploitation. Dans ce cas, nous vous recommandons d'utiliser l'une des méthodes alternatives suivantes :

  1. Suivez l'Modifier un AWS ParallelCluster AMIapproche qui contourne cette commande.

  2. Créez l'image dans une autre partition ou région, par exemple, puis stockez-la et restaurez-la pour la déplacer vers la région de Chine. us-east-1 Pour plus d'informations, consultez la section Stockage et restauration à AMI l'aide de S3 dans le guide de EC2 l'utilisateur Amazon.

Étapes :

  1. Configurez vos Compte AWS informations d'identification afin que le AWS ParallelCluster client puisse appeler AWS API les opérations en votre nom. Pour obtenir la liste des autorisations requises, consultez AWS Identity and Access Management autorisations dans AWS ParallelCluster.

  2. Créez un fichier de configuration d'image de construction de base. Pour ce faire, spécifiez le InstanceTypeà utiliser pour créer l'image et le ParentImage. Ils sont utilisés comme point de départ pour créer leAMI. Pour plus d'informations sur les paramètres de construction facultatifs, consultez la section Configuration de l'image.

    Build: InstanceType: <BUILD_INSTANCE_TYPE> ParentImage: <BASE_AMI_ID>
  3. Utilisez la CLI commande pcluster build-imagepour créer un AWS ParallelCluster AMI point de départ à partir de AMI celui que vous avez fourni comme base.

    $ pcluster build-image --image-id IMAGE_ID --image-configuration IMAGE_CONFIG.yaml --region REGION { "image": { "imageId": "IMAGE_ID", "imageBuildStatus": "BUILD_IN_PROGRESS", "cloudformationStackStatus": "CREATE_IN_PROGRESS", "cloudformationStackArn": "arn:aws:cloudformation:us-east-1:123456789012:stack/IMAGE_ID/abcd1234-ef56-gh78-ij90-1234abcd5678", "region": "us-east-1", "version": "3.7.0" } }
    Avertissement

    pcluster build-imageutilise la valeur par défautVPC. Si vous supprimez la zone VPC d'utilisation AWS Control Tower ou de AWS destination par défaut, l'ID de sous-réseau doit être spécifié dans le fichier de configuration de l'image. Pour de plus amples informations, veuillez consulter SubnetId.

    Pour obtenir la liste des autres paramètres, consultez la page de référence des pcluster build-imagecommandes. Les résultats de la commande précédente sont les suivants :

    • Une CloudFormation pile est créée en fonction de la configuration de l'image. La pile inclut toutes les ressources EC2 Image Builder requises pour le build.

    • Les ressources créées incluent les AWS ParallelCluster composants officiels d'Image Builder auxquels des composants Image Builder personnalisés peuvent être ajoutés. Pour savoir comment créer des composants personnalisés, consultez les AMIsexemples personnalisés présentés dans l'HPCatelier destiné aux clients du secteur public.

    • EC2Image Builder lance une instance de build, applique le AWS ParallelCluster livre de recettes, installe la pile AWS ParallelCluster logicielle et effectue les tâches de configuration nécessaires. Le AWS ParallelCluster livre de recettes est utilisé pour construire et démarrer. AWS ParallelCluster

    • L'instance est arrêtée et une nouvelle instance AMI est créée à partir de celle-ci.

    • Une autre instance est lancée à partir de la nouvelle instance crééeAMI. Pendant la phase de test, EC2 Image Builder exécute des tests définis dans les composants Image Builder.

    • Si la construction est réussie, la pile est supprimée. Si la construction échoue, la pile est conservée et disponible pour inspection.

  4. Vous pouvez surveiller l'état du processus de génération en exécutant la commande suivante. Une fois la compilation terminée, vous pouvez l'exécuter pour récupérer l'AMIidentifiant indiqué dans la réponse.

    $ pcluster describe-image --image-id IMAGE_ID --region REGION # BEFORE COMPLETE { "imageConfiguration": { "url": "https://parallelcluster-1234abcd5678efgh-v1-do-not-delete.s3.amazonaws.com/parallelcluster/3.7.0/images/IMAGE_ID-abcd1234efgh5678/configs/image-config.yaml?...", }, "imageId": "IMAGE_ID", "imagebuilderImageStatus": "BUILDING", "imageBuildStatus": "BUILD_IN_PROGRESS", "cloudformationStackStatus": "CREATE_IN_PROGRESS", "cloudformationStackArn": "arn:aws:cloudformation:us-east-1:123456789012:stack/IMAGE_ID/abcd1234-ef56-gh78-ij90-1234abcd5678", "region": "us-east-1", "version": "3.7.0", "cloudformationStackTags": [ { "value": "3.7.0", "key": "parallelcluster:version" }, { "value": "IMAGE_ID", "key": "parallelcluster:image_name" }, ... ], "imageBuildLogsArn": "arn:aws:logs:us-east-1:123456789012:log-group:/aws/imagebuilder/ParallelClusterImage-IMAGE_ID", "cloudformationStackCreationTime": "2022-04-05T21:36:26.176Z" } # AFTER COMPLETE { "imageConfiguration": { "url": "https://parallelcluster-1234abcd5678efgh-v1-do-not-delete.s3.us-east-1.amazonaws.com/parallelcluster/3.7.0/images/IMAGE_ID-abcd1234efgh5678/configs/image-config.yaml?Signature=..." }, "imageId": "IMAGE_ID", "imageBuildStatus": "BUILD_COMPLETE", "region": "us-east-1", "ec2AmiInfo": { "amiName": "IMAGE_ID 2022-04-05T21-39-24.020Z", "amiId": "ami-1234stuv5678wxyz", "description": "AWS ParallelCluster AMI for alinux2, kernel-4.14.238-182.422.amzn2.x86_64, lustre-2.10.8-5.amzn2.x86_64, efa-1.13.0-1.amzn2.x86_64, dcv-2021.1.10598-1.el7.x86_64, slurm-20-11-8-1", "state": "AVAILABLE", "tags": [ { "value": "2021.3.11591-1.el7.x86_64", "key": "parallelcluster:dcv_version" }, ... ], "architecture": "x86_64" }, "version": "3.7.0" }
  5. Pour créer votre cluster, entrez l'AMIID dans le CustomAmichamp de configuration de votre cluster.

Processus de AMI création de résolution des problèmes et de surveillance

La création de l'image se termine en une heure environ. Vous pouvez surveiller le processus en exécutant la pcluster describe-imagecommande ou les commandes de récupération du journal.

$ pcluster describe-image --image-id IMAGE_ID --region REGION

La build-imagecommande crée une CloudFormation pile contenant toutes les EC2 ressources Amazon nécessaires à la création de l'image et lance le processus EC2 Image Builder.

Après avoir exécuté la build-imagecommande, il est possible de récupérer les événements de la CloudFormation pile en utilisant pcluster get-image-stack-events. Vous pouvez filtrer les résultats à l'aide du --query paramètre pour voir les derniers événements. Pour plus d'informations, consultez la section Filtrage AWS CLI de la sortie dans le guide de AWS Command Line Interface l'utilisateur.

$ pcluster get-image-stack-events --image-id IMAGE_ID --region REGION --query "events[0]" { "eventId": "ParallelClusterImage-CREATE_IN_PROGRESS-2022-04-05T21:39:24.725Z", "physicalResourceId": "arn:aws:imagebuilder:us-east-1:123456789012:image/parallelclusterimage-IMAGE_ID/3.7.0/1", "resourceStatus": "CREATE_IN_PROGRESS", "resourceStatusReason": "Resource creation Initiated", "resourceProperties": "{\"InfrastructureConfigurationArn\":\"arn:aws:imagebuilder:us-east-1:123456789012:infrastructure-configuration/parallelclusterimage-abcd1234-ef56-gh78-ij90-1234abcd5678\",\"ImageRecipeArn\":\"arn:aws:imagebuilder:us-east-1:123456789012:image-recipe/parallelclusterimage-IMAGE_ID/3.7.0\",\"DistributionConfigurationArn\":\"arn:aws:imagebuilder:us-east-1:123456789012:distribution-configuration/parallelclusterimage-abcd1234-ef56-gh78-ij90-1234abcd5678\",\"Tags\":{\"parallelcluster:image_name\":\"IMAGE_ID\",\"parallelcluster:image_id\":\"IMAGE_ID\"}}", "stackId": "arn:aws:cloudformation:us-east-1:123456789012:stack/IMAGE_ID/abcd1234-ef56-gh78-ij90-1234abcd5678", "stackName": "IMAGE_ID", "logicalResourceId": "ParallelClusterImage", "resourceType": "AWS::ImageBuilder::Image", "timestamp": "2022-04-05T21:39:24.725Z" }

Après environ 15 minutes, les événements de la pile apparaissent dans l'entrée du journal des événements liés à la création d'Image Builder. Vous pouvez désormais répertorier les flux de journaux d'images et suivre les étapes de l'Image Builder à l'aide pcluster list-image-log-streamsdes pcluster get-image-log-eventscommandes and.

$ pcluster list-image-log-streams --image-id IMAGE_ID --region REGION \ --query 'logStreams[*].logStreamName' "3.7.0/1" ] $ pcluster get-image-log-events --image-id IMAGE_ID --region REGION \ --log-stream-name 3.7.0/1 --limit 3 { "nextToken": "f/36295977202298886557255241372854078762600452615936671762", "prevToken": "b/36295977196879805474012299949460899222346900769983430672", "events": [ { "message": "ExecuteBash: FINISHED EXECUTION", "timestamp": "2022-04-05T22:13:26.633Z" }, { "message": "Document arn:aws:imagebuilder:us-east-1:123456789012:component/parallelclusterimage-test-abcd1234-ef56-gh78-ij90-1234abcd5678/3.7.0/1", "timestamp": "2022-04-05T22:13:26.741Z" }, { "message": "TOE has completed execution successfully", "timestamp": "2022-04-05T22:13:26.819Z" } ] }

Continuez à vérifier la describe-imagecommande jusqu'à ce que vous voyiez le BUILD_COMPLETE statut.

$ pcluster describe-image --image-id IMAGE_ID --region REGION { "imageConfiguration": { "url": "https://parallelcluster-1234abcd5678efgh-v1-do-not-delete.s3.us-east-1.amazonaws.com/parallelcluster/3.7.0/images/IMAGE_ID-abcd1234efgh5678/configs/image-config.yaml?Signature=..." }, "imageId": "IMAGE_ID", "imageBuildStatus": "BUILD_COMPLETE", "region": "us-east-1", "ec2AmiInfo": { "amiName": "IMAGE_ID 2022-04-05T21-39-24.020Z", "amiId": "ami-1234stuv5678wxyz", "description": "AWS ParallelCluster AMI for alinux2, kernel-4.14.238-182.422.amzn2.x86_64, lustre-2.10.8-5.amzn2.x86_64, efa-1.13.0-1.amzn2.x86_64, dcv-2021.1.10598-1.el7.x86_64, slurm-20-11-8-1", "state": "AVAILABLE", "tags": [ { "value": "2021.3.11591-1.el7.x86_64", "key": "parallelcluster:dcv_version" }, ... ], "architecture": "x86_64" }, "version": "3.7.0" }

Si vous devez résoudre un problème de AMI création personnalisée, créez une archive des journaux d'images comme décrit dans les étapes suivantes.

Il est possible d'archiver les journaux dans un compartiment Amazon S3 ou dans un fichier local, selon le --output paramètre.

$ pcluster export-image-logs --image-id IMAGE_ID --region REGION \ --bucket BUCKET_NAME --bucket-prefix BUCKET_FOLDER { "url": "https://BUCKET_NAME.s3.us-east-1.amazonaws.com/BUCKET-FOLDER/IMAGE_ID-logs-202209071136.tar.gz?AWSAccessKeyId=..." } $ pcluster export-image-logs --image-id IMAGE_ID \ --region REGION --bucket BUCKET_NAME --bucket-prefix BUCKET_FOLDER --output-file /tmp/archive.tar.gz { "path": "/tmp/archive.tar.gz" }

L'archive contient les flux de CloudWatch journaux liés au processus Image Builder et aux événements de la AWS CloudFormation pile. L'exécution de la commande peut prendre plusieurs minutes.

Gestion personnalisée AMIs

À partir de la AWS ParallelCluster version 3.0.0, un nouvel ensemble de commandes a été ajouté CLI pour créer, surveiller et gérer le cycle de vie des images. Pour plus d'informations sur les commandes, consultez la section commandes pcluster.

Modifier un AWS ParallelCluster AMI

Cette méthode consiste à modifier un officiel en AWS ParallelCluster AMI ajoutant une personnalisation par-dessus celui-ci. La base AWS ParallelCluster AMIs est mise à jour avec les nouvelles versions. Ils AMIs contiennent tous les composants nécessaires AWS ParallelCluster au fonctionnement lors de leur installation et de leur configuration. Vous pouvez commencer par l'un d'entre eux comme base.

Points clés :

  • Cette méthode est plus rapide que la build-imagecommande. Cependant, il s'agit d'un processus manuel qui ne se répète pas automatiquement.

  • Avec cette méthode, vous n'avez pas accès aux commandes de récupération des journaux et de gestion du cycle de vie des images disponibles via leCLI.

Étapes :

New Amazon EC2 console
  1. Trouvez celui AMI qui correspond à la spécificité Région AWS que vous utilisez. Pour le trouver, utilisez la pcluster list-official-imagescommande avec le --region paramètre pour sélectionner les --architecture paramètres spécifiques Région AWS --os et à filtrer en fonction du système AMI d'exploitation et de l'architecture que vous souhaitez utiliser. À partir de la sortie, récupérez l'Amazon EC2 Image ID.

  2. Connectez-vous à la EC2 console Amazon AWS Management Console et ouvrez-la à l'adresse https://console.aws.amazon.com/ec2/.

  3. Dans le volet de navigation, choisissez Images, puis AMIs. Recherchez l'ID EC2 d'image récupéré, sélectionnez-leAMI, puis choisissez Launch instance from AMI.

  4. Faites défiler la page vers le bas et choisissez votre type d'instance.

  5. Choisissez votre paire de clés et lancez votre instance.

  6. Connectez-vous à votre instance à l'aide de l'utilisateur du système d'exploitation et de votre SSH clé.

  7. Personnalisez manuellement votre instance pour répondre à vos besoins.

  8. Exécutez la commande suivante pour préparer votre instance en vue de AMI sa création.

    sudo /usr/local/sbin/ami_cleanup.sh
  9. Dans la console, choisissez Instance state et Stop instance.

    Accédez à Instances, choisissez la nouvelle instance, sélectionnez État de l'instance et Arrêtez l'instance.

  10. Créez une nouvelle image AMI à partir de l'instance à l'aide de la EC2 console Amazon ou AWS CLI créez une image.

    Depuis la EC2 console Amazon
    1. Choisissez Instances dans le volet de navigation.

    2. Choisissez l'instance que vous avez créée et modifiée.

    3. Dans Actions, choisissez Image, puis Créer une image.

    4. Choisissez Créer une image.

  11. Entrez le nouvel AMI ID dans le CustomAmichamp de configuration de votre cluster et créez un cluster.

Old Amazon EC2 console
  1. Trouvez celui AWS ParallelCluster AMI qui correspond à la spécificité Région AWS que vous utilisez. Pour le trouver, vous pouvez utiliser la pcluster list-official-imagescommande avec le --region paramètre pour sélectionner les --architecture paramètres spécifiques Région AWS --os et à filtrer selon le système AMI d'exploitation et l'architecture que vous souhaitez utiliser. À partir de la sortie, vous pouvez récupérer l'Amazon EC2 Image ID.

  2. Connectez-vous à la EC2 console Amazon AWS Management Console et ouvrez-la à l'adresse https://console.aws.amazon.com/ec2/.

  3. Dans le volet de navigation, choisissez Images, puis AMIs. Définissez le filtre pour les images publiques et recherchez l'ID EC2 d'image récupéré, sélectionnez leAMI, puis choisissez Launch.

  4. Choisissez votre type d'instance et sélectionnez Suivant : Configurer les détails de l'instance ou Vérifier et lancer pour lancer votre instance.

  5. Choisissez Launch, sélectionnez votre paire de clés et lancez les instances.

  6. Connectez-vous à votre instance à l'aide de l'utilisateur du système d'exploitation et de votre SSH clé. Pour plus d'informations, accédez à Instances, sélectionnez la nouvelle instance et Connect.

  7. Personnalisez manuellement votre instance pour répondre à vos besoins.

  8. Exécutez la commande suivante pour préparer votre instance à AMI la création :

    sudo /usr/local/sbin/ami_cleanup.sh
  9. Depuis la EC2 console Amazon, choisissez Instances dans le volet de navigation, sélectionnez votre nouvelle instance et choisissez Actions, État de l'instance et Stop.

  10. Créez une nouvelle image AMI à partir de l'instance à l'aide de la EC2 console Amazon ou AWS CLI créez une image.

    Depuis la EC2 console Amazon
    1. Choisissez Instances dans le volet de navigation.

    2. Choisissez l'instance que vous avez créée et modifiée.

    3. Dans Actions, choisissez Image, puis Créer une image.

    4. Choisissez Créer une image.

  11. Entrez le nouvel AMI ID dans le CustomAmichamp de configuration de votre cluster et créez un cluster.