View a markdown version of this page

Esempi per la creazione e la gestione di modelli di lancio con AWS CLI - 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à.

Esempi per la creazione e la gestione di modelli di lancio con AWS CLI

Puoi creare e gestire modelli di lancio tramite Console di gestione AWS, AWS Command Line Interface (AWS CLI) o SDK. Questa sezione mostra esempi di creazione e gestione di modelli di lancio per Amazon EC2 Auto AWS CLI Scaling da.

Esempio di utilizzo

{ "LaunchTemplateName": "my-template-for-auto-scaling", "VersionDescription": "test description", "LaunchTemplateData": { "ImageId": "ami-04d5cc9b88example", "InstanceType": "t2.micro", "SecurityGroupIds": [ "sg-903004f88example" ], "KeyName": "MyKeyPair", "Monitoring": { "Enabled": true }, "Placement": { "Tenancy": "dedicated" }, "CreditSpecification": { "CpuCredits": "unlimited" }, "MetadataOptions": { "HttpTokens": "required", "HttpPutResponseHopLimit": 1, "HttpEndpoint": "enabled" } } }

Creare un modello di avvio di base

Per creare un modello di avvio di base, utilizza il comando create-launch-templatecome segue, con queste modifiche:

  • Replace (Sostituisci) ami-04d5cc9b88example con l'ID dell'AMI da cui avviare le istanze.

  • Sostituisci t2.micro con un tipo di istanza compatibile con l'AMI specificata.

Questo esempio crea un modello di lancio con il nome. my-template-for-auto-scaling Se le istanze create da questo modello di avvio vengono avviate in un VPC predefinito, ricevono un indirizzo IP pubblico per impostazione predefinita. Se le istanze vengono avviate in un VPC non predefinito, non ricevono un indirizzo IP pubblico per impostazione predefinita.

aws ec2 create-launch-template --launch-template-name my-template-for-auto-scaling --version-description version1 \ --launch-template-data '{"ImageId":"ami-04d5cc9b88example","InstanceType":"t2.micro"}'

Per ulteriori informazioni sui JSON-formatted parametri di citazione, vedete Uso delle virgolette con le stringhe nella Guida per l' AWS CLIutente.AWS Command Line Interface

In alternativa, è possibile specificare i JSON-formatted parametri in un file di configurazione.

Nell'esempio seguente viene creato un modello di avvio di base, facendo riferimento a un file di configurazione per i valori dei parametri del modello di avvio.

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":"ami-04d5cc9b88example", "InstanceType":"t2.micro" }

Specificare dei tag che etichettano le istanze all'avvio

Nell'esempio seguente viene aggiunto un tag (ad esempio purpose=webserver) alle istanze al momento dell'avvio.

aws ec2 create-launch-template --launch-template-name my-template-for-auto-scaling --version-description version1 \ --launch-template-data '{"TagSpecifications":[{"ResourceType":"instance","Tags":[{"Key":"purpose","Value":"webserver"}]}],"ImageId":"ami-04d5cc9b88example","InstanceType":"t2.micro"}'
Nota

Se si specificano i tag delle istanze nel modello di avvio e si sceglie di propagare i tag del gruppo con dimensionamento automatico alle relative istanze, tutti i tag vengono uniti. Se viene specificata la stessa chiave tag per un tag nel modello di avvio e un tag nel gruppo con dimensionamento automatico, il valore del tag del gruppo ha la precedenza.

Specificare un ruolo IAM da passare alle istanze

L'esempio seguente specifica il nome del profilo di istanza associato al ruolo IAM da passare alle istanze all'avvio. Per ulteriori informazioni, consulta Ruoli IAM per le applicazioni in esecuzione sulle istanze Amazon EC2.

aws ec2 create-launch-template --launch-template-name my-template-for-auto-scaling --version-description version1 \ --launch-template-data '{"IamInstanceProfile":{"Name":"my-instance-profile"},"ImageId":"ami-04d5cc9b88example","InstanceType":"t2.micro"}'

Assegnare un indirizzo IP pubblico

Nell'esempio seguente, create-launch-template crea e configura un modello di avvio per assegnare indirizzi IP pubblici alle istanze avviate in un VPC non predefinito.

Nota

Quando specifichi un'interfaccia di rete, specifica un valore per Groups che corrisponda ai gruppi di sicurezza per il VPC nel quale il gruppo con dimensionamento automatico avvierà le istanze. Specificare il VPC e le sottoreti come proprietà del gruppo con dimensionamento automatico.

aws ec2 create-launch-template --launch-template-name my-template-for-auto-scaling --version-description version1 \ --launch-template-data '{"NetworkInterfaces":[{"DeviceIndex":0,"AssociatePublicIpAddress":true,"Groups":["sg-903004f88example"],"DeleteOnTermination":true}],"ImageId":"ami-04d5cc9b88example","InstanceType":"t2.micro"}'

Specificare uno script di dati utente che configura le istanze all'avvio

Nell'esempio seguente viene specificato uno script di dati utente come stringa con codifica base64 che configura le istanze all'avvio. Il comando create-launch-template richiede dati utente codificati con base64.

aws ec2 create-launch-template --launch-template-name my-template-for-auto-scaling --version-description version1 \ --launch-template-data '{"UserData":"IyEvYmluL2Jhc...","ImageId":"ami-04d5cc9b88example","InstanceType":"t2.micro"}'

Specificare di una mappatura dei dispositivi a blocchi di un'AMI

Nell'esempio seguente, create-launch-template crea un modello di avvio con una mappatura dei dispositivi a blocchi: un volume EBS da 22 gigabyte crittografato mappato a /dev/xvdcz. Il volume /dev/xvdcz utilizza il tipo di volume a scopo generico SSD (gp2) e viene eliminato quando termina l'istanza a cui è allegato.

aws ec2 create-launch-template --launch-template-name my-template-for-auto-scaling --version-description version1 \ --launch-template-data '{"BlockDeviceMappings":[{"DeviceName":"/dev/xvdcz","Ebs":{"VolumeSize":22,"VolumeType":"gp2","DeleteOnTermination":true}}],"ImageId":"ami-04d5cc9b88example","InstanceType":"t2.micro"}'

Specificare gli host dedicati per portare licenze software da fornitori esterni

Se specifichi un tenancy host, è possibile specificare un gruppo di risorse host e una configurazione delle licenze di License Manager per ottenere licenze software idonee da fornitori esterni. Quindi, è possibile utilizzare le licenze su istanze EC2 utilizzando il seguente comando: create-launch-template.

aws ec2 create-launch-template --launch-template-name my-template-for-auto-scaling --version-description version1 \ --launch-template-data '{"Placement":{"Tenancy":"host","HostResourceGroupArn":"arn"},"LicenseSpecifications":[{"LicenseConfigurationArn":"arn"}],"ImageId":"ami-04d5cc9b88example","InstanceType":"t2.micro"}'

Specificare un'interfaccia di rete esistente

Il seguente esempio, create-launch-template, configura l'interfaccia di rete primaria in modo da utilizzare un'interfaccia di rete esistente.

aws ec2 create-launch-template --launch-template-name my-template-for-auto-scaling --version-description version1 \ --launch-template-data '{"NetworkInterfaces":[{"DeviceIndex":0,"NetworkInterfaceId":"eni-b9a5ac93","DeleteOnTermination":false}],"ImageId":"ami-04d5cc9b88example","InstanceType":"t2.micro"}'

Creare più interfacce di rete

Il seguente esempio, create-launch-template, aggiunge un'interfaccia di rete secondaria. L'interfaccia di rete primaria ha un indice dispositivo pari a 0 e l'interfaccia di rete secondaria ha un indice dispositivo pari a 1.

aws ec2 create-launch-template --launch-template-name my-template-for-auto-scaling --version-description version1 \ --launch-template-data '{"NetworkInterfaces":[{"DeviceIndex":0,"Groups":["sg-903004f88example"],"DeleteOnTermination":true},{"DeviceIndex":1,"Groups":["sg-903004f88example"],"DeleteOnTermination":true}],"ImageId":"ami-04d5cc9b88example","InstanceType":"t2.micro"}'

Se utilizzi un tipo di istanza che supporta più schede di rete ed Elastic Fabric Adapters (EFA), puoi aggiungere un'interfaccia secondaria a una scheda di rete secondaria e abilitare EFA utilizzando il seguente comando: create-launch-template. Per ulteriori informazioni, consulta Aggiungere un EFA a un modello di lancio nella Guida per l'utente di Amazon EC2.

aws ec2 create-launch-template --launch-template-name my-template-for-auto-scaling --version-description version1 \ --launch-template-data '{"NetworkInterfaces":[{"NetworkCardIndex":0,"DeviceIndex":0,"Groups":["sg-7c2270198example"],"InterfaceType":"efa","DeleteOnTermination":true},{"NetworkCardIndex":1,"DeviceIndex":1,"Groups":["sg-7c2270198example"],"InterfaceType":"efa","DeleteOnTermination":true}],"ImageId":"ami-09d95fab7fexample","InstanceType":"p4d.24xlarge"}'
avvertimento

Il tipo di istanza p4d.24xlarge comporta costi superiori, rispetto agli altri esempi in questa sezione. Per ulteriori informazioni sui prezzi delle istanze P4d, consulta Prezzi delle istanze P4d di Amazon EC2.

Nota

Allegare più interfacce di rete della stessa sottorete a un'istanza può introdurre il routing asimmetrico, specialmente nelle istanze che utilizzano una variante di Linux non Amazon. Se hai bisogno di questo tipo di configurazione, dovrai anche configurare l'interfaccia di rete secondaria all'interno del sistema operativo. Per un esempio, vedi Come posso far funzionare la mia interfaccia di rete secondaria nella mia istanza di Ubuntu EC2? nel AWS Knowledge Center.

Gestire i modelli di avvio

AWS CLI Include diversi altri comandi che consentono di gestire i modelli di lancio.

Pubblicare e descrivere i modelli di avvio

Puoi usare due AWS CLI comandi per ottenere informazioni sui tuoi modelli di lancio: describe-launch-templates e describe-launch-template-versions.

Il comando describe-launch-templates consente di ottenere un elenco dei modelli di avvio creati. È possibile utilizzare un'opzione per filtrare i risultati in base al nome di un modello di avvio, creare ora, chiave tag o combinazione chiave-valore tag. Questo comando restituisce informazioni di riepilogo su uno qualsiasi dei modelli di avvio, inclusi l'identificativo, la versione più recente e la versione di default del modello di avvio.

L'esempio seguente fornisce un riepilogo del modello di avvio specificato.

aws ec2 describe-launch-templates --launch-template-names my-template-for-auto-scaling

Di seguito è riportata una risposta di esempio.

{ "LaunchTemplates": [ { "LaunchTemplateId": "lt-068f72b729example", "LaunchTemplateName": "my-template-for-auto-scaling", "CreateTime": "2020-02-28T19:52:27.000Z", "CreatedBy": "arn:aws:iam::123456789012:user/Bob", "DefaultVersionNumber": 1, "LatestVersionNumber": 1 } ] }

Se non utilizzi l'opzione --launch-template-names per limitare l'output a un modello di avvio, vengono restituite le informazioni su tutti i modelli di avvio.

Il seguente comando describe-launch-template-versions fornisce informazioni che descrivono le versioni del modello di avvio specificato.

aws ec2 describe-launch-template-versions --launch-template-id lt-068f72b729example

Di seguito è riportata una risposta di esempio.

{ "LaunchTemplateVersions": [ { "VersionDescription": "version1", "LaunchTemplateId": "lt-068f72b729example", "LaunchTemplateName": "my-template-for-auto-scaling", "VersionNumber": 1, "CreatedBy": "arn:aws:iam::123456789012:user/Bob", "LaunchTemplateData": { "TagSpecifications": [ { "ResourceType": "instance", "Tags": [ { "Key": "purpose", "Value": "webserver" } ] } ], "ImageId": "ami-04d5cc9b88example", "InstanceType": "t2.micro", "NetworkInterfaces": [ { "DeviceIndex": 0, "DeleteOnTermination": true, "Groups": [ "sg-903004f88example" ], "AssociatePublicIpAddress": true } ] }, "DefaultVersion": true, "CreateTime": "2020-02-28T19:52:27.000Z" } ] }

Creazione di una versione del modello di avvio

Il seguente comando, create-launch-template-version, crea una nuova versione del modello di avvio basata sulla versione 1 del modello di avvio e specifica un ID AMI diverso.

aws ec2 create-launch-template-version --launch-template-id lt-068f72b729example --version-description version2 \ --source-version 1 --launch-template-data "ImageId=ami-c998b6b2example"

Per impostare la versione di default del modello di avvio, utilizzare il comando: modify-launch-template.

Eliminare una versione del modello di avvio

Il seguente comando, delete-launch-template-version, elimina la versione del modello di avvio specificata.

aws ec2 delete-launch-template-versions --launch-template-id lt-068f72b729example --versions 1

Eliminare un modello di avvio

Se un modello di avvio non è più necessario, puoi eliminarlo utilizzando il seguente comando: delete-launch-template. L'eliminazione di un modello di avvio ne elimina tutte le versioni.

aws ec2 delete-launch-template --launch-template-id lt-068f72b729example

Aggiornare un gruppo con dimensionamento automatico per utilizzare un modello di avvio

Per aggiungere un modello di avvio a un gruppo con dimensionamento automatico esistente, puoi utilizzare il comando: update-auto-scaling-group.

Aggiornare un gruppo con dimensionamento automatico affinché utilizzi la versione più recente di un modello di avvio

Il seguente comando, update-auto-scaling-group, aggiorna un determinato gruppo con dimensionamento automatico affinché possa utilizzare la versione più recente del modello di avvio specificato.

aws autoscaling update-auto-scaling-group --auto-scaling-group-name my-asg \ --launch-template LaunchTemplateId=lt-068f72b729example,Version='$Latest'

Aggiornare un gruppo con dimensionamento automatico affinché utilizzi la versione specifica di un modello di avvio

Il seguente comando, update-auto-scaling-group, aggiorna un determinato gruppo con dimensionamento automatico affinché possa utilizzare una versione specifica del modello di avvio specificato.

aws autoscaling update-auto-scaling-group --auto-scaling-group-name my-asg \ --launch-template LaunchTemplateName=my-template-for-auto-scaling,Version='2'