Dans la vidéo de gauche, Rendy explique comment
arrêter et démarrer une instance EC2 avec AWS Data Pipeline

 

Dans la vidéo de droite, Rendy explique le processus de
création d'un rôle AWS Data Pipeline

stop-start-ec2-instances-rendy
aws-kc-slate

Quelle est la bonne pratique pour arrêter et démarrer par programmation mes instances Amazon Elastic Compute Cloud (Amazon EC2) selon un calendrier spécifique sans les mettre hors service ?

Vous pouvez utiliser AWS Data Pipeline pour démarrer et arrêter par programmation vos instances EC2 selon un calendrier spécifique. Data Pipeline utilise les technologies AWS et exécute des commandes AWS CLI selon un calendrier prédéfini, sans dépendances externes. Data Pipeline écrit des journaux dans Amazon Simple Storage Service (Amazon S3) et s'exécute dans le cadre d'un rôle IAM, ce qui évite d'avoir à gérer des clés. Data Pipeline est également économique. Par exemple, l'offre gratuite de Data Pipeline permet d'arrêter et de démarrer les instances une fois par jour. Pour de plus amples informations, consultez la tarification d'AWS Data Pipeline.

Remarque : une instance Amazon EC2 t1.micro est lancée en tant qu'environnement hôte pour l'exécution d'un pipeline de données. Les instances EC2 lancées dans ce contexte sont exécutées avec un délai d'expiration par défaut de 50 minutes. Toutes les ressources utilisées pour héberger l'exécution d'un pipeline de données sont facturées sur votre compte. L'exécution de pipelines pour arrêter et redémarrer une instance EC2 pendant 100 minutes ou moins utilise la même quantité de ressources que l'exécution continue d'une instance EC2 t1.micro.

Pour vous assurer que la méthode décrite dans cet article ne consomme pas plus de ressources qu'elle n'en conserve, arrêtez et redémarrez une ou plusieurs instances EC2 t1.micro ou plus volumineuses pendant plus de 100 minutes (50 minutes pour l'arrêt et 50 minutes pour le démarrage).

Data Pipeline nécessite la création d'une stratégie gérée personnalisée pour le rôle DataPipelineDefaultResourceRole si la stratégie par défaut associée à ce rôle est la stratégie gérée AWS AmazonEC2RoleforDataPipelineRole, car celle-ci est en lecture seule. Si la stratégie attachée à votre rôle DataPipelineDefaultResourceRole n'est pas une stratégie gérée AWS, vous n'avez pas besoin de créer une stratégie gérée personnalisée. Au lieu de cela, vous pouvez modifier la stratégie assignée au rôle DataPipelineDefaultResourceRole.

Suivez ces procédures pour configurer un pipeline de données pouvant démarrer et arrêter par programmation des instances EC2 à des heures spécifiées.

Créer et valider une stratégie personnalisée pour le rôle DataPipelineDefaultResourceRole

1.   Dans la section Security and Identity de la console AWS Management Console, sélectionnez Identity & Access Management (IAM) pour ouvrir le tableau de bord Identity and Access Management.

2.   Sélectionnez Policies.

3.   Sélectionnez Create Policy pour ouvrir la page Create Policy.

4.   Sélectionnez l'option Create Your Own Policy.

5.   Saisissez le nom de stratégie à associer au rôle DataPipelineDefaultResourceRole : par exemple, « Stratégie_EC2_DataPipelineDefaultResourceRole ».

6.   Saisissez une description pour cette stratégie : par exemple, « Stratégie associée au rôle DataPipelineDefaultResourceRole lors de l'arrêt et du redémarrage des instances EC2 avec Data Pipeline ».

7.   Saisissez les informations suivantes dans la section Policy Document de la nouvelle stratégie :

{
   "Version": "2012-10-17",
  "Statement": [
      { 
        "Effect": "Allow",
        "Action": [
            "s3:*", 
            "ec2:Describe*",
            "ec2:Start*", 
            "ec2:RunInstances",
            "ec2:Stop*", 
            "datapipeline:*",
            "cloudwatch:*" 
          ],
          "Resource": [
              "*" 
          ]
      }
    ]
}

Remarque : une bonne pratique consiste à appliquer les mêmes autorisations que celles décrites ici à toutes les stratégies gérées personnalisées associées au rôle « DataPipelineDefaultResourceRole ».

8.   Choisissez Validate Policy.

9.   Une fois la stratégie validée, choisissez Create Policy (Créer la stratégie) pour créer la nouvelle stratégie.

Attacher la stratégie au rôle DataPipelineDefaultResourceRole

1.   Saisissez « DataPipeline » ou tout autre préfixe approprié pour l'expression de filtre Policy Type (Type de stratégie). Cochez la case en regard de cette stratégie, puis sélectionnez l'option Attach (Attacher) dans le menu déroulant Policy Actions (Actions de la stratégie).

2.   Sur la page Attach Policy (Attacher une stratégie), saisissez l'expression de filtre « datapipeline », puis cochez la case en regard de l'entrée DataPipelineDefaultResourceRole renvoyée par ce filtre.

3.   Sélectionnez Attach Policy en bas de la page pour associer la nouvelle stratégie au rôle DataPipelineDefaultResourceRole.

Créer les pipelines de données pour exécuter les commandes AWS CLI

1.   Ouvrez la console Data Pipeline.

2.   Sélectionnez Create New Pipeline et saisissez les informations suivantes pour créer deux pipelines :
Nom : par exemple, Démarrage des instances EC2 et Arrêt des instances EC2.
Description : indiquez toute information utile concernant le pipeline.
Source : choisissez Build using template (Créer en utilisant un modèle) et sélectionnez le modèle Run AWS CLI command (Exécution de commande AWS CLI).
Commande AWS CLI : spécifiez la fonction du pipeline. Créez deux pipelines : un pour la commande aws ec2 start-instances et un autre pour la commande aws ec2 stop-instances.

Remarque : les commandes ec2 start-instances et ec2 stop-instances nécessitent des valeurs valides pour le paramètre --region.

Par exemple, vous pouvez utiliser la commande suivante pour démarrer les instances EC2 spécifiées :

aws ec2 start-instances --instance-ids i-abcd1234 i-987a654b i-ba154f3c --region us-east-x 

La commande ci-dessous indique la syntaxe utilisée pour arrêter les instances EC2 que vous avez démarrées :

aws ec2 stop-instances --instance-ids i-abcd1234 i-987a654b i-ba154f3c --region us-east-x 

Important Si des ID d'instance inexistants sont transmis au paramètre --instance-ids , la commande échoue complètement et aucune instance n'est démarrée ou arrêtée. Ce problème peut survenir lorsque l'ID d'une ou de plusieurs des instances spécifiées a été arrêté. Par exemple, si l'ID d'instance i-abcd1234 a été arrêté, la commande aws ec2 start-instances ne démarrera aucune des instances spécifiées. Pour éviter ce scénario, envisagez d'émettre des commandes séparées par un point-virgule :

aws ec2 start-instances --instance-ids i-abcd1234 --region us-east-x;
aws ec2 start-instances --instance-ids i-987a654b --region us-east-x;
aws ec2 start-instances --instance-ids i-ba154f3c --region us-east-x

Pour plus d'informations sur l'utilisation de l'interface de ligne de commande AWS pour arrêter et démarrer des instances EC2, voir see start-instances et stop-instances dans la documentation relative à l'interface de ligne de commande AWS.

Configurer la planification et la journalisation des pipelines de données

1.   Configurez chaque planification de pipeline de données avec les informations de planification appropriées. Pour de plus amples informations, consultez la section Planification des pipelines.

2. Activez la journalisation au niveau du pipeline lors de la création du pipeline en spécifiant un emplacement Amazon S3 dans la console ou avec un pipelineLogUri dans l'objet par défaut dans le kit SDK ou l'interface de ligne de commande. Pour plus d'informations, consultez Affichage des journaux d'un pipeline.

Remarque : la journalisation des pipelines de données n'est pas obligatoire. Toutefois, si elle n'est pas activée, la console affiche un avertissement lors de la validation de ces derniers.

3.   Définissez les options d'accès de sécurité :
- IAM Roles (Rôles IAM) : choisissez Custom Pipeline Role: DataPipelineDefaultRole (Rôle de pipeline personnalisé : DataPipelineDefaultRole)
- EC2 Instance Role (Rôle d'instance EC2) : choisissez DataPipelineDefaultResourceRole

Remarque : Data Pipeline crée les rôles IAM nécessaires pour vous.

Actualiser les autorisations de rôle et activer les pipelines

1.   Dans la console AWS Management Console, sélectionnez IAM, puis Roles.
– Si vous utilisez une stratégie non gérée, sélectionnez le rôle DataPipelineDefaultResourceRole et modifiez la stratégie associée, comme décrit à l'étape 7 de la procédure de création d'une stratégie personnalisée pour le rôle DataPipelineDefaultResourceRole.
– Dans le cas contraire, associez le rôle DataPipelineDefaultResourceRole à une stratégie personnalisée en suivant les instructions de la section Création d'une stratégie personnalisée pour le rôle DataPipelineDefaultResourceRole. Pour plus d'informations, reportez-vous à l'article Modification d'un pipeline.

2.   Dans la console, sélectionnez Activate pour activer les pipelines. Vous pouvez contrôler les activités des pipelines de données dans la console afin de vous assurer que les actions aboutissent en temps et en heure.


Cette page vous a-t-elle été utile ? Oui | Non

Retour au Centre de connaissances AWS Support

Vous avez besoin d'aide ? Consultez le site du Centre AWS Support.

Date de publication : 21/05/2015

Date de mise à jour : 24/08/2018