¿Cómo puedo adjuntar automáticamente un volumen de EBS secundario persistente a una nueva instancia de spot de EC2 Linux durante el arranque?

Última actualización: 18/10/2021

Quiero utilizar un script de datos de usuario para lanzar automáticamente un volumen secundario persistente de Amazon Elastic Block Store (Amazon EBS) en mi nueva instancia de spot de Linux de Amazon Elastic Compute Cloud (Amazon EC2) en el arranque. ¿Cómo lo hago?

Descripción corta

Para adjuntar automáticamente un volumen de EBS secundario persistente a una nueva instancia de spot de Linux de EC2 en el arranque, agregue un script de datos de usuario a una plantilla de lanzamiento de EC2. Utilice la plantilla al configurar su solicitud de instancia de spot.

Requisitos previos

Cree o utilice un rol de AWS Identity and Access Management (IAM) que, como mínimo, tenga concedido acceso a volúmenes adjuntos para Amazon EC2. Este rol se adjuntará a la plantilla de lanzamiento.

Resolución

Paso 1: Configure una plantilla de lanzamiento con un rol de IAM y un script de datos de usuario

1.    Abra la consola de Amazon EC2.

2.    Seleccione Launch Templates (Plantillas de lanzamiento) y, a continuación, seleccione Create launch template (Crear plantilla de lanzamiento).

3.    Elija la AMI, el tipo y el tamaño de la instancia. También puede elegir en su lugar una AMI existente.

4.    Asocie un par de claves a la plantilla.

5.    Elija una subred en la misma zona de disponibilidad que el volumen de EBS.

6.    Seleccione Advanced details (Detalles avanzados).

7.    Agregue el rol de IAM al que, como mínimo, se le ha concedido acceso a volúmenes adjuntos, tal y como se muestra en el siguiente ejemplo:

{
    "Version": "2012-10-17",
    "Statement": [
        {
            "Effect": "Allow",
            "Action": [
                "ec2:AttachVolume",
                "ec2:DetachVolume"
            ],
            "Resource": [
                "arn:aws:ec2:*:*:instance/*",
                "arn:aws:ec2:*:*:volume/vol-xxxxxxxxxxxx"
            ]
        },
        {
            "Effect": "Allow",
            "Action": "ec2:DescribeVolumes",
            "Resource": "arn:aws:ec2:*:*:volume/vol-xxxxxxxxxxxx"
        }
    ]

8.    Agregue un script de datos de usuario a la plantilla. A continuación se muestra un ejemplo de script de datos de usuario. Reemplace la región y el volume-id para que coincidan con su entorno.

#!/bin/bash
      OUTPUT=$(curl http://169.254.169.254/latest/meta-data/instance-id)
      aws ec2 attach-volume --volume-id vol-xxxxxxxxxxxx --device /dev/xvdf --instance-id $OUTPUT --region ap-southeast-1

Paso 2: Configure una solicitud de spot mediante la plantilla de lanzamiento creada en el paso 1

1.    Seleccione Spot Instance (Instancia de spot) y, a continuación, seleccione Request Spot Instance (Solicitar instancia de spot).

2.    SeleccioneLaunch Templates (Lanzar plantillas) y, a continuación, elija la plantilla de inicio creada en el paso 1. Toda la información configurada en la plantilla se rellena automáticamente.

3.    Elija la misma zona de disponibilidad que el volumen de EBS.

4.    Seleccione crear Spot Request (Solicitud de spot).

Una vez finalizada la solicitud de spot, el volumen de EBS secundario persistente se adjunta automáticamente a la nueva instancia de spot en el arranque.


¿Le resultó útil este artículo?


¿Necesita asistencia técnica o con la facturación?