Creación de una AMI de AWS ParallelCluster personalizada - AWS ParallelCluster

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

importante

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

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.

nota

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:

  1. Siga elModificar una AMI de AWS ParallelCluster método que omita este comando.

  2. Cree la imagen en otra partición y región, por ejemplous-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:

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

  2. 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>
  3. 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-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.5.0" } }
    aviso

    pcluster build-imageusa 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.

  4. 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 --region REGION # 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" }
  5. 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 --region REGION

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 --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.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 IMAGE_ID --region REGION \ --query 'logStreams[*].logStreamName' "3.5.0/1" ] $ pcluster get-image-log-events --image-id IMAGE_ID --region REGION \ --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 --region REGION { "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 --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" }

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:

New EC2 console
  1. Busque la AMI que corresponda a la específicaRegión de AWS que utilice. Para encontrarlo, utilice el pcluster list-official-imagescomando con el--region parámetro para seleccionar los parámetrosRegión de AWS y--os y--architecture parámetros específicos para filtrar la AMI deseada con el sistema operativo y la arquitectura que desee utilizar. Desde la salida, recupere el ID de imagen de EC2.

  2. Inicie sesión en la AWS Management Console y abra la consola de Amazon EC2 en https://console.aws.amazon.com/ec2/.

  3. En el panel de navegación, elija Imágenes y luego AMIs. Busque el ID de imagen de EC2 recuperado, seleccione la AMI y elija Lanzar instancia desde AMI.

  4. Desplázate hacia abajo y elige tu tipo de instancia.

  5. Elija su par de claves y lance la instancia.

  6. Inicia sesión en tu instancia con el usuario del sistema operativo y tuSSH clave.

  7. Personalice la instancia de forma manual para cumplir con sus requisitos.

  8. Ejecute el siguiente comando para preparar la instancia para la creación de AMI.

    sudo /usr/local/sbin/ami_cleanup.sh
  9. En la consola, selecciona Estado de instancia y Detener instancia.

    Ve a Instancias, elige la nueva instancia, selecciona Estado de la instancia y Detener instancia.

  10. Cree una nueva AMI a partir de la instancia mediante la consola EC2 oAWS CLI cree una imagen.

    Desde la consola EC2
    1. Elija Instances (Instancia[s]) en el panel de navegación.

    2. Elige la instancia que creaste y modificaste.

    3. En Acciones, selecciona Imagen y, a continuación, Crear imagen.

    4. Elija Create Image (Crear imagen).

  11. Introduzca el nuevo ID de AMI en el CustomAmicampo de la configuración de su clúster y cree un clúster.

Old EC2 console
  1. Busque laAWS ParallelCluster AMI que corresponda a la específicaRegión de AWS que utilice. Para encontrarlo, puede utilizar el pcluster list-official-imagescomando con el--region parámetro para seleccionar los parámetrosRegión de AWS y--os y--architecture parámetros específicos para filtrar la AMI deseada con el sistema operativo y la arquitectura que desee utilizar. Desde la salida, puede recuperar el ID de imagen de EC2.

  2. Inicie sesión en la AWS Management Console y abra la consola de Amazon EC2 en https://console.aws.amazon.com/ec2/.

  3. En el panel de navegación, elija Imágenes y luego AMIs. Configure el filtro de imágenes públicas y busque el ID de imagen de EC2 recuperado, seleccione la AMI y elija Launch.

  4. Elija su tipo de instancia y seleccione Siguiente: Configurar detalles de la instancia o Revisar y lanzar para lanzar la instancia.

  5. Elija Lanzar, seleccione su par de claves y lance instancias.

  6. Inicie sesión en la instancia mediante el usuario del sistema operativo y su clave de SSH. Para obtener más información, vaya a Instancias, seleccione la nueva instancia y Connect.

  7. Personalice la instancia de forma manual para cumplir con sus requisitos.

  8. Ejecute el siguiente comando para preparar su instancia para la creación de la AMI:

    sudo /usr/local/sbin/ami_cleanup.sh
  9. En la consola de EC2, elija Instances en el panel de navegación, seleccione su nueva instancia y elija Acciones, Estado de la instancia y Detener.

  10. Cree una nueva AMI a partir de la instancia mediante la consola EC2 oAWS CLI cree una imagen.

    Desde la consola EC2
    1. Elija Instances (Instancia[s]) en el panel de navegación.

    2. Elige la instancia que creaste y modificaste.

    3. En Acciones, elija Imagen y, a continuación, Crear imagen.

    4. Elija Create Image (Crear imagen).

  11. Introduzca el nuevo ID de AMI en el CustomAmicampo de la configuración de su clúster y cree un clúster.