Usa AWS Systems Manager i parametri anziché l'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à.

Usa AWS Systems Manager i parametri anziché l'AMI IDs nei modelli di avvio

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

Con i parametri Systems Manager, è possibile aggiornare i gruppi di Auto Scaling per utilizzare nuove AMI IDs senza dover creare nuovi modelli di avvio o nuove versioni di modelli di avvio ogni volta che un ID AMI cambia. Questi IDs possono cambiare regolarmente, ad esempio quando un'AMI viene aggiornata 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 aws:ec2:image e, per il relativo valore, immetti l'ID di un'AMI. Il formato dell'ID AMI è ami-<identifier>, ad esempio ami-123example456. L'ID AMI corretto dipende dal tipo di istanza e dalla Regione AWS da cui stai avviando il gruppo con dimensionamento automatico.

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

Crea un modello di avvio che specifichi un parametro per l'AMI

Per creare un modello di avvio che specifichi un parametro per l'AMI, 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 ID AMI o parametro Manager Systems, inserisci 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 ogni user input placeholder con le tue informazioni.

Esempio: creare un modello di avvio che specifichi un parametro pubblico di AWS 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 l'AMI Amazon Linux 2 più recente 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.

Nell'esempio seguente viene creato un modello di avvio che ottiene l'ID AMI da un parametro Systems Manager esistente, denominato golden-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 del parametro golden-ami. L'esempio seguente utilizza la versione 3 del parametro golden-ami, ma puoi utilizzare qualsiasi versione valida.

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

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

{ "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 sintassi seguente:resolve:ssm:parameter-ARN, where resolve:ssm è il prefisso standard ed parameter-ARN è l'ARN del parametro Systems Manager.

L'esempio seguente crea un modello di avvio che ottiene l'ID AMI da un parametro Systems Manager esistente con l'ARN di. arn: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 seguente utilizza la versione 3 del parametro MyParameter, ma puoi utilizzare qualsiasi versione valida.

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

L'esempio simile riportato di seguito fa riferimento all'etichetta prod del parametro che corrisponde a una versione specifica del parametro MyParameter.

{ "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, consulta Limitazione dell'accesso ai parametri di Systems Manager utilizzando le policy IAM nella Guida per l'AWS Systems Manager utente.

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

Usa il describe-launch-template-versionscomando e includi l'--resolve-aliasopzione per risolvere il parametro nell'ID AMI effettivo.

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

L'esempio restituisce l'ID AMI per ImageId. Quando un'istanza viene avviata utilizzando questo modello di avvio, l'ID AMI si risolve nell'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 ID AMI nella Amazon EC2 User Guide.

Per ulteriori informazioni sull'utilizzo dei parametri Systems Manager, consulta 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 specificazione di IDs AMI 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.

  • Se il gruppo Auto Scaling utilizza un modello di avvio che specifica un parametro Systems Manager, i pool caldi non sono supportati.

  • 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 utilizzi parametri avanzati o limiti di velocità di trasmissione effettiva più elevati, le chiamate frequenti all'archivio dei parametri (ovvero, l'operazione GetParameters) possono comportare un aumento dei costi per Systems Manager, poiché vengono addebitati costi per ogni interazione con l'API dell'archivio dei parametri. Per ulteriori informazioni, consulta Prezzi di AWS Systems Manager.