Avvio, elenco ed eliminazione delle istanze Amazon EC2 nella AWS CLI
È possibile utilizzare AWS Command Line Interface (AWS CLI) per avviare, elencare ed eliminare le istanze Amazon Elastic Compute Cloud (Amazon EC2). Se avvii un'istanza che non rientra nel piano gratuito di AWS, i costi ti verranno addebitati dopo l'avvio dell'istanza e per il periodo di tempo in cui l'istanza viene eseguita, anche se rimane inattiva.
Nota
Per ulteriori esempi di comandi, consulta la AWS CLI reference guide.
Argomenti
Prerequisiti
Per eseguire i comandi della ec2 descritti in questo argomento, è necessario:
Istalla e configura la AWS CLI. Per ulteriori informazioni, consultare Installazione o aggiornamento dell’ultima versione di AWS CLI e Credenziali di autenticazione e accesso per la AWS CLI.
-
Impostare le autorizzazioni IAM per consentire l’accesso ad Amazon EC2. Per ulteriori informazioni sulle autorizzazioni IAM per Amazon EC2, consulta Policy IAM per Amazon EC2 nella Guida per l’utente di Amazon EC2.
-
Creare una coppia di chiavi e un gruppo di sicurezza.
-
Seleziona un’Amazon Machine Image (AMI) e prendi nota dell’ID AMI. Per ulteriori informazioni, consulta Come trovare un’AMI appropriata nella Guida per l’utente di EC2.
Lancio dell'istanza
Per avviare un’istanza Amazon EC2 con l’AMI selezionata, utilizza il comando aws ec2
run-instances. Puoi avviare l’istanza in un cloud privato virtuale (VPC).
Inizialmente l'istanza viene visualizzata in stato pending, ma dopo pochi minuti passa allo stato running.
L'esempio seguente mostra come avviare un'istanza t2.micro nella sottorete specificata di un VPC. Sostituisci i valori del parametro in corsivo con i tuoi valori.
$aws ec2 run-instances --image-idami-xxxxxxxx--count 1 --instance-type t2.micro --key-nameMyKeyPair--security-group-idssg-903004f8--subnet-idsubnet-6e7f829e{ "OwnerId": "123456789012", "ReservationId": "r-5875ca20", "Groups": [ { "GroupName": "my-sg", "GroupId": "sg-903004f8" } ], "Instances": [ { "Monitoring": { "State": "disabled" }, "PublicDnsName": null, "Platform": "windows", "State": { "Code": 0, "Name": "pending" }, "EbsOptimized": false, "LaunchTime": "2013-07-19T02:42:39.000Z", "PrivateIpAddress": "10.0.1.114", "ProductCodes": [], "VpcId": "vpc-1a2b3c4d", "InstanceId": "i-5203422c", "ImageId": "ami-173d747e", "PrivateDnsName": "ip-10-0-1-114.ec2.internal", "KeyName": "MyKeyPair", "SecurityGroups": [ { "GroupName": "my-sg", "GroupId": "sg-903004f8" } ], "ClientToken": null, "SubnetId": "subnet-6e7f829e", "InstanceType": "t2.micro", "NetworkInterfaces": [ { "Status": "in-use", "SourceDestCheck": true, "VpcId": "vpc-1a2b3c4d", "Description": "Primary network interface", "NetworkInterfaceId": "eni-a7edb1c9", "PrivateIpAddresses": [ { "PrivateDnsName": "ip-10-0-1-114.ec2.internal", "Primary": true, "PrivateIpAddress": "10.0.1.114" } ], "PrivateDnsName": "ip-10-0-1-114.ec2.internal", "Attachment": { "Status": "attached", "DeviceIndex": 0, "DeleteOnTermination": true, "AttachmentId": "eni-attach-52193138", "AttachTime": "2013-07-19T02:42:39.000Z" }, "Groups": [ { "GroupName": "my-sg", "GroupId": "sg-903004f8" } ], "SubnetId": "subnet-6e7f829e", "OwnerId": "123456789012", "PrivateIpAddress": "10.0.1.114" } ], "SourceDestCheck": true, "Placement": { "Tenancy": "default", "GroupName": null, "AvailabilityZone": "us-west-2b" }, "Hypervisor": "xen", "BlockDeviceMappings": [ { "DeviceName": "/dev/sda1", "Ebs": { "Status": "attached", "DeleteOnTermination": true, "VolumeId": "vol-877166c8", "AttachTime": "2013-07-19T02:42:39.000Z" } } ], "Architecture": "x86_64", "StateReason": { "Message": "pending", "Code": "pending" }, "RootDeviceName": "/dev/sda1", "VirtualizationType": "hvm", "RootDeviceType": "ebs", "Tags": [ { "Value": "MyInstance", "Key": "Name" } ], "AmiLaunchIndex": 0 } ] }
Aggiunta di un dispositivo a blocchi all'istanza
A ogni istanza avviata è associato un volume dispositivo root. Puoi utilizzare una mappatura dei dispositivi a blocchi per specificare volumi di Amazon Elastic Block Store (Amazon EBS) aggiuntivi o i volumi di archivio dell’istanza da collegare a un’istanza quando viene avviata.
Per aggiungere un dispositivo a blocchi all'istanza, specifica l'opzione --block-device-mappings quando utilizzi run-instances.
Il parametro di esempio seguente esegue il provisioning di un volume Amazon EBS standard di 20 GB e lo mappa all’istanza utilizzando l’identificatore /dev/sdf.
--block-device-mappings "[{\"DeviceName\":\"/dev/sdf\",\"Ebs\":{\"VolumeSize\":20,\"DeleteOnTermination\":false}}]"
L’esempio seguente aggiunge un volume Amazon EBS, mappato a /dev/sdf, basato su uno snapshot esistente. Una snapshot rappresenta un'immagine caricata sul volume per te. Quando specifichi una snapshot, non devi specificare una dimensione del volume perché sarà sufficiente a contenere la tua immagine. Tuttavia, se specifichi la dimensione, questa deve essere maggiore o uguale a quella della snapshot.
--block-device-mappings "[{\"DeviceName\":\"/dev/sdf\",\"Ebs\":{\"SnapshotId\":\"snap-a1b2c3d4\"}}]"
L'esempio seguente aggiunge due volumi all'istanza. Il numero di volumi disponibili per l'istanza dipende dal tipo di istanza.
--block-device-mappings "[{\"DeviceName\":\"/dev/sdf\",\"VirtualName\":\"ephemeral0\"},{\"DeviceName\":\"/dev/sdg\",\"VirtualName\":\"ephemeral1\"}]"
L'esempio seguente crea la mappatura (/dev/sdj), ma non esegue il provisioning di un volume per l'istanza.
--block-device-mappings "[{\"DeviceName\":\"/dev/sdj\",\"NoDevice\":\"\"}]"
Per ulteriori informazioni, consulta Mappatura dei dispositivi a blocchi nella Guida per l’utente di EC2.
Aggiunta di un tag all'istanza
Un tag è un'etichetta assegnata a una risorsa AWS. Questo consente di aggiungere metadati alle risorse, che possono essere utilizzati per vari scopi. Per ulteriori informazioni, consulta Tagging delle risorse nella Guida per l’utente di EC2.
L’esempio seguente mostra come aggiungere un tag con il nome della chiave “Name“ e il valore “MyInstance“ all’istanza specificata, utilizzando il comando aws ec2
create-tags.
$aws ec2 create-tags --resourcesi-5203422c--tags Key=Name,Value=MyInstance
Connessione all'istanza
Mentre l'istanza è in esecuzione, puoi connetterti e utilizzarla esattamente come se si trovasse nel tuo computer. Per ulteriori informazioni, consulta Connessione all’istanza Amazon EC2 nella Guida per l’utente di Amazon EC2.
Elencazione delle istanze
È possibile utilizzare l'AWS CLI per elencare le proprie istanze e visualizzare informazioni su di esse. Puoi creare un elenco di tutte le istanze oppure filtrare i risultati in base alle istanze che ti interessano.
Negli esempi seguenti viene illustrato come utilizzare il comando aws ec2
describe-instances.
Il comando seguente elenca tutte le tue istanze.
$aws ec2 describe-instances
Il comando seguente filtra l'elenco visualizzando solo le istanze t2.micro e restituisce solo i valori InstanceId per ogni corrispondenza.
$aws ec2 describe-instances --filters "Name=instance-type,Values=t2.micro" --query "Reservations[].Instances[].InstanceId"[ "i-05e998023d9c69f9a" ]
Il comando seguente elenca qualsiasi istanza con il tag Name=MyInstance.
$aws ec2 describe-instances --filters "Name=tag:Name,Values=MyInstance"
Il comando seguente elenca le istanze avviate con una di queste AMI: ami-x0123456, ami-y0123456 e ami-z0123456.
$aws ec2 describe-instances --filters "Name=image-id,Values=ami-x0123456,ami-y0123456,ami-z0123456"
Eliminare l'istanza
Se termini un'istanza, questa viene eliminata. Dopo averla terminata, non puoi più connetterti a un'istanza.
Appena lo stato dell'istanza cambia in shutting-down o terminated, vengono bloccati i rispettivi addebiti. Per riconnetterti a un'istanza in un secondo momento, utilizza stop-instances invece di terminate-instances. Per ulteriori informazioni, consulta Terminazione dell'istanza nella Guida per l'utente di Amazon EC2.
Per eliminare un’istanza, utilizza il comando aws
ec2 terminate-instances per eliminarla.
$aws ec2 terminate-instances --instance-idsi-5203422c{ "TerminatingInstances": [ { "InstanceId": "i-5203422c", "CurrentState": { "Code": 32, "Name": "shutting-down" }, "PreviousState": { "Code": 16, "Name": "running" } } ] }
Riferimenti
Riferimento alla AWS CLI:
Altri riferimenti:
-
Per visualizzare AWS SDK e contribuire, e per gli esempi di codice della AWS CLI, consulta AWS Code Examples Repository
su GitHub.