Las traducciones son generadas a través de traducción automática. En caso de conflicto entre la traducción y la version original de inglés, prevalecerá la version en inglés.
Creación de una AMI de AWS ParallelCluster personalizada
Si crea una AMI personalizada, debe repetir los pasos que utilizó para crear su AMI personalizada con cada nuevaAWS ParallelCluster versión.
Antes de seguir leyendo le recomendamos revisar laAcciones de arranque personalizadas sección. Determine si las modificaciones que desea realizar se pueden programar y admitir enAWS ParallelCluster versiones future.
Si bien crear una AMI personalizada en general no es lo ideal, hay situaciones específicas en las queAWS ParallelCluster es necesario crear una AMI personalizada. En este tutorial encontrará cómo crear una AMI personalizada para estos escenarios.
Requisitos previos
-
AWS ParallelClusterestá instalado.
-
ElAWS CLI está instalado y configurado.
-
Tiene un key pair EC2.
-
Tiene un rol de IAM con los permisos necesarios para ejecutar lapcluster CLI y crear imágenes.
Cómo personalizar la AMI de AWS ParallelCluster
Hay dos formas de crear unaAWS ParallelCluster AMI personalizada. Uno de estos dos métodos consiste en crear una nueva AMI mediante laAWS ParallelCluster CLI. Otro método requiere que realice modificaciones manuales para crear una nueva AMI que esté disponible en suCuenta de AWS.
Cree unaAWS ParallelCluster AMI personalizada
Si tiene una AMI y un software personalizados, puede aplicar los cambios necesarios ademásAWS ParallelCluster de ellos. AWS ParallelClusterse basa en el servicio EC2 Image Builder para crear AMI. Para obtener más información, consulte la Guía del usuario de Image Builder.
Puntos clave:
-
El proceso dura aproximadamente 1 hora. Este tiempo puede variar si hay más Build/Componentsque instalar en el momento de la compilación.
-
La AMI está etiquetada con las versiones de los componentes principales. Estos incluyen el núcleo, el programador y el controlador EFA. En la descripción de la AMI también se indica un subconjunto de las versiones de los componentes.
-
A partir de laAWS ParallelCluster versión 3.0.0, se puede usar un nuevo conjunto de comandos de CLI para administrar el ciclo de vida de las imágenes. Esto incluye build-imagelist-images, describe-image, y delete-image.
-
Este método es repetible. Puede volver a ejecutarlo para mantener las AMI actualizadas (por ejemplo, las actualizaciones del sistema operativo) y, a continuación, utilizarlas cuando actualice un clúster existente.
Si utilizas este método en la partición deAWS China, es posible que aparezcan errores de red. Por ejemplo, es posible que vea estos errores en elpcluster build-image
comando cuando descarga paquetes desde GitHub o desde un repositorio del sistema operativo. Si esto ocurre, le recomendamos que utilice uno de los siguientes métodos alternativos:
-
Siga elModificar una AMI de AWS ParallelCluster método que omita este comando.
-
Cree la imagen en otra partición y región, por ejemplo
us-east-1
, y luego almacénela y restaure para moverla a la región de China. Para obtener más información, consulte Guardar y restaurar una AMI mediante S3 en la Guía del usuario de Amazon EC2 para instancias de Linux.
Pasos:
-
Configure susCuenta de AWS credenciales para que elAWS ParallelCluster cliente pueda realizar llamadas a las operacionesAWS de la API en su nombre. Para obtener una lista de los permisos necesarios, consulte AWS Identity and Access Managementpermisos enAWS ParallelCluster 3.x.
-
Cree un archivo básico de configuración de imágenes de compilación. Para ello, especifique el InstanceTypeque se utilizará para crear la imagen y el ParentImage. Se utilizan como punto de partida para crear la AMI. Para obtener más información sobre los parámetros de compilación opcionales, consulte Configuración de imagen.
Build: InstanceType:
<BUILD_INSTANCE_TYPE>
ParentImage:<BASE_AMI_ID>
-
Utilice el comando CLI pcluster build-imagepara crear unaAWS ParallelCluster AMI a partir de la AMI que usted proporciona como 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.5.0" } }
aviso pcluster build-image
usa la VPC predeterminada. Si eliminas la VPC predeterminada medianteAWS Control Tower oAWS Landing Zone, el ID de subred debe especificarse en el archivo de configuración de la imagen. Para obtener más información, consulte SubnetId.Para obtener una lista de otros parámetros, consulte la página de referencia de pcluster build-imagecomandos. Los resultados del comando anterior son los siguientes:
-
Se crea una CloudFormation pila en función de la configuración de la imagen. La pila incluye todos los recursos de EC2 Image Builder necesarios para la compilación.
-
Los recursos creados incluyen losAWS ParallelCluster componentes oficiales de Image Builder a los que se pueden añadir componentes personalizados de Image Builder. Para aprender a crear componentes personalizados, consulte los ejemplos de AMI personalizadas
del taller de HPC para clientes del sector público. -
EC2 Image Builder lanza una instancia de compilación, aplica elAWS ParallelCluster libro de recetas, instala la pila deAWS ParallelCluster software y realiza las tareas de configuración necesarias. ElAWS ParallelCluster libro de cocina se usa para construir y arrancarAWS ParallelCluster.
-
La instancia se detiene y se crea una nueva AMI a partir de ella.
-
Se lanza otra instancia desde la AMI recién creada. Durante la fase de prueba, EC2 Image Builder ejecuta las pruebas que se definen en los componentes de Image Builder.
-
Si la compilación se realiza correctamente, la pila se elimina. Si la compilación falla, la pila se conserva y está disponible para su inspección.
-
-
Puede supervisar el estado del proceso de compilación ejecutando el siguiente comando. Una vez finalizada la compilación, puede ejecutarla para recuperar el ID de AMI que figura en la respuesta.
$
pcluster describe-image --image-id
IMAGE_ID
--regionREGION
# BEFORE COMPLETE { "imageConfiguration": { "url": "https://parallelcluster-1234abcd5678efgh-v1-do-not-delete.s3.amazonaws.com/parallelcluster/3.5.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.5.0", "cloudformationStackTags": [ { "value": "3.5.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.5.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.5.0" }
-
Para crear el clúster, introduzca el ID de AMI en el CustomAmicampo de la configuración del clúster.
Solución de problemas y supervisión del proceso de creación de AMI
La creación de imágenes se completa en aproximadamente una hora. Puede supervisar el proceso ejecutando el pcluster describe-imagecomando o los comandos de recuperación de registros.
$
pcluster describe-image --image-id
IMAGE_ID
--regionREGION
El build-imagecomando crea una CloudFormation pila con todos los recursos de EC2 necesarios para crear la imagen e inicia el proceso de EC2 Image Builder.
Después de ejecutar el build-imagecomando, es posible recuperar los eventos de la CloudFormation pila mediante pcluster get-image-stack-events. Puede filtrar los resultados con el--query
parámetro para ver los eventos más recientes. Para obtener más información, consulte Filtrar laAWS CLI salida en la Guía delAWS Command Line Interface usuario.
$
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.5.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.5.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" }
Transcurridos unos 15 minutos, los eventos de la pila aparecen en la entrada de eventos del registro relacionada con la creación de Image Builder. Ahora puede enumerar las secuencias de registro de imágenes y supervisar los pasos del Image Builder mediante pcluster get-image-log-eventslos comandos pcluster list-image-log-streamsy.
$
pcluster list-image-log-streams --image-id
"3.5.0/1" ]IMAGE_ID
--regionREGION
\ --query 'logStreams[*].logStreamName'$
pcluster get-image-log-events --image-id
IMAGE_ID
--regionREGION
\ --log-stream-name 3.5.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.5.0/1", "timestamp": "2022-04-05T22:13:26.741Z" }, { "message": "TOE has completed execution successfully", "timestamp": "2022-04-05T22:13:26.819Z" } ] }
Siga comprobando el describe-imagecomando hasta que vea elBUILD_COMPLETE
estado.
$
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.5.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.5.0" }
Si necesita solucionar un problema de creación de AMI personalizada, cree un archivo con los registros de imágenes tal y como se describe en los pasos siguientes.
Es posible archivar los registros en un bucket de Amazon S3 o en un archivo local, según el--output
parámetro.
$
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" }
El archivo contiene los flujos de CloudWatch registros relacionados con el proceso de Image Builder y los eventos de laAWS CloudFormation pila. El comando puede tardar varios minutos en ejecutarse.
Administración de AMI personalizadas
A partir de laAWS ParallelCluster versión 3.0.0, se ha agregado un nuevo conjunto de comandos a la CLI para crear, monitorear y administrar el ciclo de vida de las imágenes. Para obtener más información acerca de los comandos, consulte los comandos de pcluster.
Modificar una AMI de AWS ParallelCluster
Este método consiste en modificar unaAWS ParallelCluster AMI oficial añadiendo personalización a la misma. LasAWS ParallelCluster AMI básicas se actualizan con las nuevas versiones. Estas AMI tienen todos los componentes necesariosAWS ParallelCluster para funcionar cuando se instalan y configuran. Puedes empezar con uno de estos como base.
Puntos clave:
-
Este método es más rápido que el build-imagecomando. Sin embargo, es un proceso manual y no se puede repetir automáticamente.
-
Con este método, no tiene acceso a los comandos de recuperación de registros y administración del ciclo de vida de las imágenes que están disponibles a través de la CLI.
Pasos: