Utilizzate AWS Systems Manager i parametri anziché AMI IDs nei modelli di avvio - Amazon EC2 Auto Scaling

Le traduzioni sono generate tramite traduzione automatica. In caso di conflitto tra il contenuto di una traduzione e la versione originale in Inglese, quest'ultima prevarrà.

Utilizzate AWS Systems Manager i parametri anziché AMI IDs nei modelli di avvio

Questa sezione mostra come creare un modello di lancio che specifichi un AWS Systems Manager parametro che fa riferimento a un ID Amazon Machine Image (AMI). Puoi utilizzare un parametro memorizzato nello stesso Account AWS, un parametro condiviso da un altro Account AWS o un parametro pubblico per un parametro pubblico AMI gestito da AWS.

Con i parametri Systems Manager, è possibile aggiornare i gruppi di Auto Scaling per utilizzarne di nuovi AMI IDs senza dover creare nuovi modelli di avvio o nuove versioni di modelli di avvio ogni volta che un AMI ID cambia. Questi IDs possono cambiare regolarmente, ad esempio quando un AMI viene aggiornato con gli ultimi aggiornamenti del sistema operativo o del software.

È possibile creare, aggiornare o eliminare i propri parametri di Systems Manager utilizzando Parameter Store, una funzionalità di AWS Systems Manager. A tal fine, devi creare un parametro di Systems Manager prima di poterlo utilizzare in un modello di avvio. Per iniziare, crea un parametro con il tipo di dati eaws:ec2:image, come valore, inserisci l'ID di unAMI. L'AMIID ha la formaami-<identifier>, ad esempio,ami-123example456. L'AMIID corretto dipende dal tipo di istanza e Regione AWS dal tipo di avvio del gruppo Auto Scaling.

Per ulteriori informazioni sulla creazione di un parametro valido per un AMI ID, vedere Creazione di parametri di Systems Manager.

Creare un modello di avvio che specifichi un parametro per AMI

Per creare un modello di lancio che specifichi un parametro perAMI, utilizzate uno dei seguenti metodi:

Console
Per creare un modello di lancio utilizzando un parametro AWS Systems Manager
  1. Apri la EC2 console Amazon all'indirizzo https://console.aws.amazon.com/ec2/.

  2. Nel riquadro di navigazione, seleziona Modelli di avvio quindi Crea modello di avvio.

  3. In nome modello di avvio, inserire un nome descrittivo per il modello di avvio.

  4. In Immagini dell'applicazione e del sistema operativo (Amazon Machine Image), scegli Sfoglia altro AMIs.

  5. Scegli il pulsante con la freccia a destra della barra di ricerca, quindi scegli Specifica valore personalizzato/parametro Systems Manager.

  6. Nella finestra di dialogo Specifica valore personalizzato o parametro Systems Manager, segui questi passaggi:

    1. Per la stringa del parametro AMI ID o Systems Manager, immettete il nome del parametro Systems Manager utilizzando uno dei seguenti formati:

      Per fare riferimento a un parametro pubblico:

      • resolve:ssm:public-parameter

      Per fare riferimento a un parametro memorizzato nello stesso account:

      • resolve:ssm:parameter-name

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

      • resolve:ssm:parameter-name:label

      Per fare riferimento a un parametro condiviso da un altro Account AWS:

      • resolve:ssm:parameter-ARN

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

      • resolve:ssm:parameter-ARN:label

    2. Seleziona Salva.

  7. Configura qualsiasi altro parametro del modello di avvio, se necessario, quindi scegli Crea modello di avvio. Per ulteriori informazioni, consulta Creare un modello di avvio per un gruppo con dimensionamento automatico.

AWS CLI

Per creare un modello di avvio che specifichi un parametro Systems Manager, è possibile utilizzare uno dei seguenti comandi di esempio. Sostituisci ciascuno user input placeholder con le tue informazioni.

Esempio: crea un modello di lancio che specifichi un parametro pubblico AWS di proprietà

Utilizza la sintassi seguente: resolve:ssm:public-parameter, dove resolve:ssm è il prefisso standard e public-parameter è il percorso e il nome del parametro pubblico.

In questo esempio, il modello di avvio utilizza un parametro pubblico AWS fornito per avviare istanze Regione AWS che utilizzano la versione più recente di Amazon Linux 2 AMI configurata per il tuo profilo.

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

Contenuto di config.json.

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

Di seguito è riportata una risposta di esempio.

{ "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 } }
Esempio: crea un modello di lancio che specifichi un parametro memorizzato nello stesso account

Utilizza la sintassi seguente: resolve:ssm:parameter-name, dove resolve:ssm è il prefisso standard e parameter-name è il nome del parametro Systems Manager.

L'esempio seguente crea un modello di avvio che ottiene l'AMIID da un parametro Systems Manager esistente denominatogolden-ami.

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

Contenuto di config.json.

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

Quando non è specificata alcuna versione, viene utilizzata la versione più recente del parametro.

L'esempio seguente fa riferimento a una versione specifica di golden-ami parametro. L'esempio utilizza la versione 3 del golden-ami parametro, ma puoi usare qualsiasi numero di versione valido.

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

L'esempio simile seguente fa riferimento all'etichetta del parametro prod che corrisponde a una versione specifica di golden-ami parametro.

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

Di seguito è riportato un output di esempio.

{ "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 } }
Esempio: crea un modello di lancio che specifica un parametro condiviso da un altro Account AWS

Utilizzare la seguente sintassi:resolve:ssm:parameter-ARN, where resolve:ssm è il prefisso standard ed parameter-ARN è il parametro ARN Systems Manager.

L'esempio seguente crea un modello di avvio che ottiene l'AMIID da un parametro Systems Manager esistente con ARN ofarn: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

Contenuto di config.json.

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

Quando non è specificata alcuna versione, viene utilizzata la versione più recente del parametro.

L'esempio seguente fa riferimento a una versione specifica del parametro MyParameter. L'esempio utilizza la versione 3 del MyParameter parametro, ma è possibile utilizzare qualsiasi numero di versione valido.

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

Il seguente esempio simile fa riferimento all'etichetta del parametro prod che corrisponde a una versione specifica del MyParameter parametro.

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

Di seguito è riportata una risposta di esempio.

{ "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 } }

Per specificare un parametro dal Parameter Store in un modello di avvio, è necessario disporre dell'ssm:GetParametersautorizzazione per il parametro specificato. Chiunque utilizzi il modello di lancio necessita inoltre dell'ssm:GetParametersautorizzazione per convalidare il valore del parametro. Per ulteriori informazioni, vedere Limitazione dell'accesso ai parametri di Systems Manager utilizzando IAM le policy nella Guida per l'AWS Systems Manager utente.

Verifica che un modello di avvio riceva l'ID corretto AMI

Utilizzate il describe-launch-template-versionscomando e includete l'--resolve-aliasopzione per risolvere il parametro con l'AMIID effettivo.

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

L'esempio restituisce l'AMIID perImageId. Quando un'istanza viene avviata utilizzando questo modello di avvio, l'AMIID viene risolto in. 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", } } ] }

Per maggiori dettagli sulla specificazione di un parametro Systems Manager nel modello di avvio, consulta Utilizzare un parametro Systems Manager anziché un AMI ID nella Amazon EC2 User Guide.

Per ulteriori informazioni sull'utilizzo dei parametri di Systems Manager, vedere i seguenti materiali di riferimento nella documentazione di Systems Manager.

Limitazioni

Quando lavorate con i parametri di Systems Manager, tenete presente le seguenti limitazioni:

  • Amazon EC2 Auto Scaling supporta solo la AMI IDs specificazione come parametri.

  • La creazione o l'aggiornamento di gruppi di istanze miste con selezione del tipo di istanza basata sugli attributi utilizzando un modello di avvio che specifica un parametro Systems Manager non è supportata.

  • Se il gruppo Auto Scaling utilizza un modello di avvio che specifica un parametro Systems Manager, non sarà possibile avviare un aggiornamento dell'istanza con la configurazione desiderata o utilizzando skip matching.

  • Ad ogni chiamata per creare o aggiornare il gruppo Auto Scaling, Amazon Auto EC2 Scaling risolverà il parametro Systems Manager nel modello di avvio. Se si utilizzano parametri avanzati o limiti di throughput più elevati, le chiamate frequenti al Parameter Store (ovvero l'GetParametersoperazione) possono aumentare i costi per Systems Manager poiché vengono addebitati costi per interazione con Parameter StoreAPI. Per ulteriori informazioni, consulta Prezzi di AWS Systems Manager.