Utiliser AWS Systems Manager des paramètres plutôt que AMI IDs dans des 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 AWS Systems Manager des paramètres plutôt que AMI IDs dans des 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 un public AMI géré par AWS.

Avec les paramètres de Systems Manager, vous pouvez mettre à jour vos groupes Auto Scaling pour utiliser de nouveaux groupes 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 AMI identifiant change. Ils IDs peuvent changer régulièrement, par exemple lorsqu'un AMI est mis à 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 etaws:ec2:image, pour sa valeur, entrez l'ID d'unAMI. L'AMIID a la formeami-<identifier>, par exemple,ami-123example456. L'AMIID correct dépend du type d'instance et de l'instance dans Région AWS laquelle vous lancez votre groupe Auto Scaling.

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

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

Pour créer un modèle de lancement qui spécifie un paramètre pour leAMI, 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 la chaîne de paramètres AMI ID ou Systems Manager, entrez 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 chacun user input placeholder avec 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 version d'Amazon Linux 2 AMI 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'AMIID à 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 fait référence à une version spécifique du golden-ami paramètre. L'exemple utilise la version 3 du golden-ami paramètre, 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 fait référence à l'étiquette du paramètre prod qui correspond à une version spécifique du golden-ami paramètre.

{ "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ù se resolve:ssm trouve le préfixe standard et parameter-ARN ARN le paramètre Systems Manager.

L'exemple suivant crée un modèle de lancement qui obtient l'AMIID d'un paramètre de Systems Manager existant avec le signe 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 MyParameter paramètre, 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 fait référence à l'étiquette du paramètre prod qui correspond à une version spécifique du MyParameter paramètre.

{ "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 IAM politiques dans le Guide de AWS Systems Manager l'utilisateur.

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

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

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

L'exemple renvoie l'AMIID deImageId. Lorsqu'une instance est lancée à l'aide de ce modèle de lancement, l'AMIID devientami-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 AMI ID dans le Amazon EC2 User Guide.

Pour plus d'informations sur l'utilisation des paramètres de Systems Manager, consultez les documents de référence suivants dans la documentation de 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 en AMI IDs tant que 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.

  • À 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'GetParametersopération) peuvent augmenter vos coûts pour Systems Manager, car des frais sont facturés par API interaction avec le Parameter Store. Pour en savoir plus, consultez Pricing AWS Systems Manager (Tarification).