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 di creazione e gestione di modelli di lancio con AWS CLI
È possibile creare e gestire modelli di lancio tramite AWS Management Console, AWS Command Line Interface (AWS CLI) oSDKs. Questa sezione mostra esempi di creazione e gestione di modelli di lancio per Amazon EC2 Auto Scaling da. AWS CLI
Indice
- Esempio di utilizzo
- Creare un modello di avvio di base
- Specificare dei tag che etichettano le istanze all'avvio
- Specificate un IAM ruolo da passare alle istanze
- Assegnare un indirizzo IP pubblico
- Specificare uno script di dati utente che configura le istanze all'avvio
- Specificare di una mappatura dei dispositivi a blocchi di un'AMI
- Specificare gli host dedicati per portare licenze software da fornitori esterni
- Specificare un'interfaccia di rete esistente
- Creare più interfacce di rete
- Gestire i modelli di avvio
- Aggiornare un gruppo con dimensionamento automatico per utilizzare un modello di avvio
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 lancio di base, usa il create-launch-templatecomando come segue, con queste modifiche:
-
Sostituisci
ami-04d5cc9b88example
con l'ID AMI da cui avviare le istanze. -
Sostituisci
t2.micro
con un tipo di istanza compatibile con AMI quello specificato.
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 modo predefinitoVPC, ricevono un indirizzo IP pubblico per impostazione predefinita. Se le istanze vengono avviate in modo non predefinitoVPC, per impostazione predefinita non ricevono un indirizzo IP pubblico.
aws ec2 create-launch-template --launch-template-name
my-template-for-auto-scaling
--version-descriptionversion1
\ --launch-template-data '{"ImageId":"ami-04d5cc9b88example
","InstanceType":"t2.micro
"}'
Per ulteriori informazioni sulla creazione di parametri JSON formattati tra virgolette, vedere Uso delle virgolette con le stringhe nella Guida per l'utente. AWS CLIAWS Command Line Interface
In alternativa, è possibile specificare i parametri JSON -formatted 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-descriptionversion1
\ --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-descriptionversion1
\ --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.
Specificate un IAM ruolo da passare alle istanze
L'esempio seguente specifica il nome del profilo di istanza associato al IAM ruolo da passare alle istanze all'avvio. Per ulteriori informazioni, consulta IAMruolo per le applicazioni eseguite su EC2 istanze Amazon.
aws ec2 create-launch-template --launch-template-name
my-template-for-auto-scaling
--version-descriptionversion1
\ --launch-template-data '{"IamInstanceProfile":{"Name":"my-instance-profile
"},"ImageId":"ami-04d5cc9b88example
","InstanceType":"t2.micro
"}'
Assegnare un indirizzo IP pubblico
L'create-launch-templateesempio seguente configura il modello di avvio per assegnare indirizzi pubblici alle istanze avviate in modo non predefinito. VPC
Nota
Quando specificate un'interfaccia di rete, specificate un valore corrispondente ai gruppi di sicurezza in VPC cui il gruppo Auto Scaling lancerà le istanze. Groups
Specificate le VPC sottoreti come proprietà del gruppo Auto Scaling.
aws ec2 create-launch-template --launch-template-name
my-template-for-auto-scaling
--version-descriptionversion1
\ --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 create-launch-templatecomando richiede dati utente con codifica base64.
aws ec2 create-launch-template --launch-template-name
my-template-for-auto-scaling
--version-descriptionversion1
\ --launch-template-data '{"UserData":"IyEvYmluL2Jhc...
","ImageId":"ami-04d5cc9b88example
","InstanceType":"t2.micro
"}'
Specificare di una mappatura dei dispositivi a blocchi di un'AMI
L'create-launch-templateesempio seguente crea un modello di avvio con una mappatura del dispositivo a blocchi: un volume da 22 gigabyte mappato su. EBS /dev/xvdcz
Il /dev/xvdcz
volume utilizza il tipo di volume General Purpose SSD (gp2) e viene eliminato quando si termina l'istanza a cui è collegato.
aws ec2 create-launch-template --launch-template-name
my-template-for-auto-scaling
--version-descriptionversion1
\ --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 sulle EC2 istanze utilizzando il comando seguente. create-launch-template
aws ec2 create-launch-template --launch-template-name
my-template-for-auto-scaling
--version-descriptionversion1
\ --launch-template-data '{"Placement":{"Tenancy":"host","HostResourceGroupArn":"arn
"},"LicenseSpecifications":[{"LicenseConfigurationArn":"arn
"}],"ImageId":"ami-04d5cc9b88example
","InstanceType":"t2.micro
"}'
Specificare un'interfaccia di rete esistente
L'create-launch-templateesempio seguente configura l'interfaccia di rete principale per utilizzare un'interfaccia di rete esistente.
aws ec2 create-launch-template --launch-template-name
my-template-for-auto-scaling
--version-descriptionversion1
\ --launch-template-data '{"NetworkInterfaces":[{"DeviceIndex":0,"NetworkInterfaceId":"eni-b9a5ac93
","DeleteOnTermination":false
}],"ImageId":"ami-04d5cc9b88example
","InstanceType":"t2.micro
"}'
Creare più interfacce di rete
L'create-launch-templateesempio seguente 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-descriptionversion1
\ --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 si utilizza un tipo di istanza che supporta più schede di rete ed Elastic Fabric Adapters (EFAs), è possibile aggiungere un'interfaccia secondaria a una scheda di rete secondaria e EFA abilitarla utilizzando il create-launch-templatecomando seguente. Per ulteriori informazioni, consulta Aggiungere un modello EFA a un lancio nella Amazon EC2 User Guide.
aws ec2 create-launch-template --launch-template-name
my-template-for-auto-scaling
--version-descriptionversion1
\ --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 i prezzi delle istanze Amazon EC2 P4d
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
Gestire i modelli di avvio
AWS CLI Include diversi altri comandi che consentono di gestire i modelli di lancio.
Indice
Pubblicare e descrivere i modelli di avvio
Puoi usare due AWS CLI comandi per ottenere informazioni sui tuoi modelli di lancio: describe-launch-templatese describe-launch-template-versions.
Il describe-launch-templatescomando ti consente di ottenere un elenco di tutti i modelli di lancio che hai creato. È 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 describe-launch-template-versionscomando seguente 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 create-launch-template-versioncomando seguente crea una nuova versione del modello di avvio basata sulla versione 1 del modello di lancio e specifica un ID diversoAMI.
aws ec2 create-launch-template-version --launch-template-id
lt-068f72b729example
--version-descriptionversion2
\ --source-version1
--launch-template-data "ImageId=ami-c998b6b2example
"
Per impostare la versione predefinita del modello di lancio, utilizzate il modify-launch-templatecomando.
Eliminare una versione del modello di avvio
Il delete-launch-template-versionscomando seguente elimina la versione del modello di lancio specificata.
aws ec2 delete-launch-template-versions --launch-template-id
lt-068f72b729example
--versions 1
Eliminare un modello di avvio
Se non è più necessario un modello di avvio, è possibile eliminarlo utilizzando il delete-launch-templatecomando seguente. 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
È possibile utilizzare il update-auto-scaling-groupcomando per aggiungere un modello di avvio a un gruppo Auto Scaling esistente.
Aggiornare un gruppo con dimensionamento automatico affinché utilizzi la versione più recente di un modello di avvio
Il update-auto-scaling-groupcomando seguente aggiorna il gruppo Auto Scaling specificato per 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 update-auto-scaling-groupcomando seguente aggiorna il gruppo Auto Scaling specificato per 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
'