Utiliser des AWS Systems Manager paramètres au lieu de l'AMI IDs dans les modèles de lancement - Amazon EC2 Auto Scaling

Les traductions sont fournies par des outils de traduction automatique. En cas de conflit entre le contenu d'une traduction et celui de la version originale en anglais, la version anglaise prévaudra.

Utiliser des AWS Systems Manager paramètres au lieu de l'AMI IDs dans les modèles de lancement

Cette section explique comment créer un modèle de lancement qui spécifie un AWS Systems Manager paramètre faisant référence à un identifiant Amazon Machine Image (AMI). Vous pouvez utiliser un paramètre stocké dans le vôtre Compte AWS, un paramètre partagé par un autre Compte AWS ou un paramètre public pour une AMI publique gérée par AWS.

Avec les paramètres de Systems Manager, vous pouvez mettre à jour vos groupes Auto Scaling pour utiliser de nouvelles AMI IDs sans avoir à créer de nouveaux modèles de lancement ou de nouvelles versions de modèles de lancement chaque fois qu'un ID d'AMI change. Elles IDs peuvent changer régulièrement, par exemple lorsqu'une AMI est mise à jour avec les dernières mises à jour du système d'exploitation ou du logiciel.

Vous pouvez créer, mettre à jour ou supprimer vos propres paramètres de Systems Manager à l'aide du Parameter Store, une fonctionnalité de AWS Systems Manager. Vous devez créer un paramètre Systems Manager avant de pouvoir l'utiliser dans un modèle de lancement. Pour commencer, créez un paramètre avec le type de données aws:ec2:image, et saisissez pour sa valeur l'ID d'une AMI. L'ID d'AMI se présente sous la forme ami-<identifier>, par exemple, ami-123example456. L'ID d'AMI correct dépend du type d'instance et de la Région AWS dans laquelle vous lancez le groupe Auto Scaling.

Pour plus d'informations sur la création d'un paramètre valide pour un ID d'AMI, consultez la section Création des paramètres de Systems Manager.

Créez un modèle de lancement qui spécifie un paramètre pour l'AMI

Pour créer un modèle de lancement qui spécifie un paramètre pour l'AMI, appliquez l'une des méthodes suivantes :

Console
Pour créer un modèle de lancement à l'aide d'un AWS Systems Manager paramètre
  1. Ouvrez la EC2 console Amazon à l'adresse https://console.aws.amazon.com/ec2/.

  2. Dans le panneau de navigation, choisissez Modèles de lancement, puis Créer un modèle de lancement.

  3. Pour Nom du modèle de lancement, entrez un nom descriptif pour le modèle.

  4. Sous Images de l'application et du système d'exploitation (Amazon Machine Image), sélectionnez Parcourir davantage AMIs.

  5. Sélectionnez le bouton fléché à droite de la barre de recherche, puis choisissez Spécifier une valeur personnalisée/un paramètre Systems Manager.

  6. Dans la boîte de dialogue Spécifier une valeur personnalisée ou un paramètre Systems Manager, procédez comme suit :

    1. Pour ID d’AMI ou chaîne de paramètres Systems Manager, saisissez le nom du paramètre Systems Manager en utilisant l’un des formats suivants :

      Pour référencer un paramètre public :

      • resolve:ssm:public-parameter

      Pour référencer un paramètre stocké dans le même compte :

      • resolve:ssm:parameter-name

      • resolve:ssm:parameter-name:version-number

      • resolve:ssm:parameter-name:label

      Pour référencer un paramètre partagé par un autre Compte AWS :

      • resolve:ssm:parameter-ARN

      • resolve:ssm:parameter-ARN:version-number

      • resolve:ssm:parameter-ARN:label

    2. Choisissez Save (Enregistrer).

  7. Configurez tout autre paramètre de modèle de lancement selon vos besoins, puis choisissez Créer un modèle de lancement. Pour de plus amples informations, veuillez consulter Créer un modèle de lancement pour un groupe Auto Scaling.

AWS CLI

Pour créer un modèle de lancement qui spécifie un paramètre de Systems Manager, vous pouvez utiliser l'un des exemples de commandes suivants. Remplacez chaque user input placeholder par vos propres informations.

Exemple : créer un modèle de lancement qui spécifie un paramètre public AWS appartenant à l'utilisateur

Utilisez la syntaxe suivante : resolve:ssm:public-parameter, où resolve:ssm est le préfixe standard et public-parameter le chemin et le nom du paramètre public.

Dans cet exemple, le modèle de lancement utilise un paramètre public AWS fourni pour lancer des instances à l'aide de la dernière AMI Amazon Linux 2 configurée pour votre profil. Région AWS

aws ec2 create-launch-template --launch-template-name my-template-for-auto-scaling --version-description version1 \ --launch-template-data file://config.json

Contenu de config.json :

{ "ImageId":"resolve:ssm:/aws/service/ami-amazon-linux-latest/amzn2-ami-hvm-x86_64-gp2", "InstanceType":"t2.micro" }

Voici un exemple de réponse.

{ "LaunchTemplate": { "LaunchTemplateId": "lt-089c023a30example", "LaunchTemplateName": "my-template-for-auto-scaling", "CreateTime": "2022-12-28T19:52:27.000Z", "CreatedBy": "arn:aws:iam::123456789012:user/Bob", "DefaultVersionNumber": 1, "LatestVersionNumber": 1 } }
Exemple : création d'un modèle de lancement qui spécifie un paramètre stocké dans le même compte

Utilisez la syntaxe suivante : resolve:ssm:parameter-name, où resolve:ssm est le préfixe standard et parameter-name le nom du paramètre Systems Manager.

L'exemple suivant crée un modèle de lancement qui obtient l'ID d'AMI à partir d'un paramètre Systems Manager existant nommé golden-ami.

aws ec2 create-launch-template --launch-template-name my-template-for-auto-scaling \ --launch-template-data file://config.json

Contenu de config.json :

{ "ImageId":"resolve:ssm:golden-ami", "InstanceType":"t2.micro" }

La version par défaut du paramètre, si elle n'est pas spécifiée, est la dernière version.

L'exemple suivant référence une version spécifique du paramètre golden-ami. L'exemple utilise la version 3 du paramètre golden-ami, mais vous pouvez utiliser n'importe quel numéro de version valide.

{ "ImageId":"resolve:ssm:golden-ami:3", "InstanceType":"t2.micro" }

L'exemple similaire suivant référence l'étiquette de paramètre prod qui est liée à une version spécifique du paramètre golden-ami.

{ "ImageId":"resolve:ssm:golden-ami:prod", "InstanceType":"t2.micro" }

Voici un exemple de sortie.

{ "LaunchTemplate": { "LaunchTemplateId": "lt-068f72b724example", "LaunchTemplateName": "my-template-for-auto-scaling", "CreateTime": "2022-12-27T17:11:21.000Z", "CreatedBy": "arn:aws:iam::123456789012:user/Bob", "DefaultVersionNumber": 1, "LatestVersionNumber": 1 } }
Exemple : créer un modèle de lancement qui spécifie un paramètre partagé par un autre Compte AWS

Utilisez la syntaxe suivante :resolve:ssm:parameter-ARN, où resolve:ssm se trouvent le préfixe standard et parameter-ARN l'ARN du paramètre Systems Manager.

L'exemple suivant crée un modèle de lancement qui obtient l'ID de l'AMI à partir d'un paramètre Systems Manager existant avec l'ARN dearn:aws:ssm:us-east-2:123456789012:parameter/MyParameter.

aws ec2 create-launch-template --launch-template-name my-template-for-auto-scaling --version-description version1 \ --launch-template-data file://config.json

Contenu de config.json :

{ "ImageId":"resolve:ssm:arn:aws:ssm:us-east-2:123456789012:parameter/MyParameter", "InstanceType":"t2.micro" }

La version par défaut du paramètre, si elle n'est pas spécifiée, est la dernière version.

L'exemple suivant référence une version spécifique du paramètre MyParameter. L'exemple utilise la version 3 du paramètre MyParameter, mais vous pouvez utiliser n'importe quel numéro de version valide.

{ "ImageId":"resolve:ssm:arn:aws:ssm:us-east-2:123456789012:parameter/MyParameter:3", "InstanceType":"t2.micro" }

L'exemple similaire suivant référence l'étiquette de paramètre prod qui est liée à une version spécifique du paramètre MyParameter.

{ "ImageId":"resolve:ssm:arn:aws:ssm:us-east-2:123456789012:parameter/MyParameter:prod", "InstanceType":"t2.micro" }

Voici un exemple de réponse.

{ "LaunchTemplate": { "LaunchTemplateId": "lt-00f93d4588example", "LaunchTemplateName": "my-template-for-auto-scaling", "CreateTime": "2024-01-08T12:43:21.000Z", "CreatedBy": "arn:aws:iam::123456789012:user/Bob", "DefaultVersionNumber": 1, "LatestVersionNumber": 1 } }

Pour spécifier un paramètre depuis le magasin de paramètres dans un modèle de lancement, vous devez disposer de l'ssm:GetParametersautorisation pour le paramètre spécifié. Toute personne utilisant le modèle de lancement doit également disposer d'une ssm:GetParameters autorisation pour que la valeur du paramètre soit validée. Pour plus d'informations, consultez la section Restreindre l'accès aux paramètres de Systems Manager à l'aide de politiques IAM dans le Guide de AWS Systems Manager l'utilisateur.

Vérifiez qu'un modèle de lancement obtient le bon ID d'AMI

Utilisez la describe-launch-template-versionscommande et incluez l'--resolve-aliasoption permettant de convertir le paramètre en ID d'AMI réel.

aws ec2 describe-launch-template-versions --launch-template-name my-template-for-auto-scaling \ --versions 1 --resolve-alias

L'exemple renvoie l'ID d'AMI pour ImageId. Lorsqu’une instance est lancée à l’aide de ce modèle de lancement, l’ID d’AMI est défini sur ami-0ac394d6a3example.

{ "LaunchTemplateVersions": [ { "LaunchTemplateId": "lt-089c023a30example", "LaunchTemplateName": "my-template-for-auto-scaling", "VersionNumber": 1, "CreateTime": "2022-12-28T19:52:27.000Z", "CreatedBy": "arn:aws:iam::123456789012:user/Bob", "DefaultVersion": true, "LaunchTemplateData": { "ImageId": "ami-0ac394d6a3example", "InstanceType": "t2.micro", } } ] }

Pour plus de détails sur la spécification d'un paramètre Systems Manager dans votre modèle de lancement, consultez la section Utiliser un paramètre Systems Manager au lieu d'un ID AMI dans le guide de EC2 l'utilisateur Amazon.

Pour plus d’informations sur l’utilisation des paramètres Systems Manager, consultez les documents de référence suivants dans la documentation Systems Manager.

Limites

Lorsque vous travaillez avec les paramètres de Systems Manager, tenez compte des limites suivantes :

  • Amazon EC2 Auto Scaling prend uniquement en charge la spécification d'AMI IDs sous forme de paramètres.

  • La création ou la mise à jour de groupes d'instances mixtes avec sélection du type d'instance basée sur les attributs à l'aide d'un modèle de lancement spécifiant un paramètre de Systems Manager n'est pas prise en charge.

  • Si votre groupe Auto Scaling utilise un modèle de lancement qui spécifie un paramètre de Systems Manager, vous ne serez pas en mesure de démarrer une actualisation d'instance avec la configuration souhaitée ou en utilisant la correspondance des sauts.

  • Si votre groupe Auto Scaling utilise un modèle de lancement qui spécifie un paramètre de Systems Manager, les warm pools ne sont pas pris en charge.

  • À chaque appel pour créer ou mettre à jour votre groupe Auto Scaling, Amazon EC2 Auto Scaling résoudra le paramètre Systems Manager dans le modèle de lancement. Si vous utilisez des paramètres avancés ou des limites de débit plus élevées, les appels fréquents au Parameter Store (c'est-à-dire l'opération GetParameters) peuvent augmenter les coûts de Systems Manager, car des frais sont facturés par interaction avec l'API Parameter Store. Pour en savoir plus, consultez Pricing AWS Systems Manager (Tarification).