Comment puis-je attacher automatiquement un volume EBS secondaire persistant à une nouvelle instance Spot Linux EC2 au démarrage ?

Date de la dernière mise à jour : 18/10/2021

Je souhaite utiliser un script de données utilisateur pour lancer automatiquement un volume secondaire Amazon Elastic Block Store (Amazon EBS) persistant sur ma nouvelle instance Spot Linux Amazon Elastic Compute Cloud (Amazon EC2) au démarrage. Comment procéder ?

Brève description

Pour attacher automatiquement un volume EBS secondaire persistant à une nouvelle instance Spot Linux EC2 au démarrage, ajoutez un script de données utilisateur à un modèle de lancement EC2. Utilisez le modèle lors de la configuration de votre demande d'instance Spot.

Prérequis

Créez ou utilisez un rôle AWS Identity and Access Management (IAM) qui, au minimum, dispose d'un accès au volume attaché accordé pour Amazon EC2. Ce rôle sera attaché au modèle de lancement.

Résolution

Étape 1 : Configuration d'un modèle de lancement avec un rôle IAM et un script de données utilisateur

1.    Ouvrez la console Amazon EC2.

2.    Sélectionnez Modèles de lancement, puis sélectionnez Créer un modèle de lancement.

3.    Choisissez l'AMI, le type et la taille de l'instance. Ou, choisissez une AMI existante.

4.    Associez une paire de clés au modèle.

5.    Choisissez un sous-réseau dans la même zone de disponibilité que le volume EBS.

6.    Sélectionnez Advanced Details (Détails avancés).

7.    Ajoutez le rôle IAM qui dispose au minimum d'un accès au volume attaché, comme illustré dans l'exemple suivant :

{
    "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.    Ajoutez un script de données utilisateur au modèle. Voici un exemple de script de données utilisateur. Remplacez la région et l'ID de volume pour qu'ils correspondent à votre environnement.

#!/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

Étape 2 : Configurez une demande Spot à l'aide du modèle de lancement créé à l'étape 1

1.    Sélectionnez Instance Spot, puis sélectionnez Demander une instance Spot.

2.    Sélectionnez Modèles de lancement, puis choisissez le modèle de lancement créé à l'étape 1. Toutes les informations configurées sur le modèle se remplissent automatiquement.

3.    Choisissez la même zone de disponibilité que le volume EBS.

4.    Sélectionnez créer une Demande Spot.

Une fois la demande Spot terminée, le volume EBS secondaire persistant est automatiquement attaché à la nouvelle instance Spot au démarrage.


Cet article vous a-t-il été utile ?


Besoin d'aide pour une question technique ou de facturation ?