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
-
AWS ParallelCluster est installé.
-
Le AWS CLI est installé et configuré.
-
Vous possédez une paire de EC2 clés Amazon.
-
Vous avez un IAM rôle doté des autorisations requises pour exécuter pcluster CLI et créer des images.
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 :
-
Suivez l'Modifier un AWS ParallelCluster AMIapproche qui contourne cette commande.
-
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 :
-
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.
-
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>
-
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-configurationIMAGE_CONFIG.yaml
--regionREGION
{ "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-image
utilise 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.
-
-
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
--regionREGION
# 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" }
-
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
--regionREGION
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
--regionREGION
--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
"3.7.0/1" ]IMAGE_ID
--regionREGION
\ --query 'logStreams[*].logStreamName'$
pcluster get-image-log-events --image-id
IMAGE_ID
--regionREGION
\ --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
--regionREGION
{ "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
--regionREGION
\ --bucketBUCKET_NAME
--bucket-prefixBUCKET_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
\ --regionREGION
--bucketBUCKET_NAME
--bucket-prefixBUCKET_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 :