Come gestire le istanze di EC2 tramite l’interfaccia della riga di comando AWS
AWS mette a disposizione una comoda interfaccia web denominata AWS Management Console. È possibile utilizzare questa console per eseguire tutte le operazioni necessarie nel cloud AWS. Tuttavia, eseguire molte operazioni identiche nell’interfaccia web può risultare ripetitivo e richiedere molto tempo. In questo caso, è possibile utilizzare AWS CLI per automatizzare le attività di gestione di AWS ed eseguire operazioni in blocco. Questo articolo del blog illustra l’installazione di AWS CLI e le nozioni di base sull’utilizzo di questo strumento. L’articolo si concentra inoltre sui comandi EC2 di AWS CLI, illustrati con esempi.
Che cos’è AWS CLI
Amazon Web Services Command Line Interface (AWS CLI) è uno strumento open source a riga di comando per la gestione degli ambienti nel cloud di Amazon. Questo strumento funziona tramite l’integrazione con la shell a riga di comando del sistema operativo su cui è installato AWS CLI. È possibile gestire le istanze di Amazon EC2 con i comandi AWS EC2, nonché gestire i volumi EBS, i bucket S3 e altri servizi Amazon.
AWS CLI viene eseguita nella shell della riga di comando di Linux, nel terminale di macOS, nel prompt dei comandi di Windows (CMD) e in PowerShell. Questa CLI consente di creare script e automatizzare le attività.
Esistono due versioni principali di AWS CLI:
- AWS CLI versione 1 è la versione precedente disponibile per garantire la retrocompatibilità. Questa versione è supportata, ma alcune nuove funzioni potrebbero non essere disponibili.
- AWS CLI versione 2 è la versione più recente che supporta tutte le funzioni disponibili di AWS. Si consiglia di installare la versione più recente.
Entrambe le versioni utilizzano lo stesso comando aws per eseguire AWS CLI. Tuttavia, sono state apportate modifiche che potrebbero rendere impossibile l’utilizzo di script creati per AWS CLI v1 in AWS CLI v2.
Requisiti
Ora esaminiamo i requisiti necessari per l’utilizzo di AWS CLI.
Requisiti generali
- È necessario disporre di un account AWS e di Chiavi di accesso AWS (ID chiave di accesso AWS e chiave di accesso segreta AWS).
- È necessario che sia installato Python 2 versione 2.6.5+ o Python 3 versione 3.3+. AWS CLI v2 dispone di una copia integrata di Python, pertanto non è necessario installare Python manualmente per installare AWS CLI v2.
Linux
- È necessario installare uno strumento per l’estrazione di archivi zip
glibc,groffeless
Windows
- Windows XP o versioni successive
- Diritti di amministratore sul computer Windows
macOS
- Versione a 64 bit di macOS supportata da Apple
Installazione
È necessario installare AWS CLI prima di poter eseguire comandi per la gestione delle istanze di Amazon EC2 e degli altri servizi Amazon. Vediamo come installare la versione 2 di AWS CLI su diversi sistemi operativi.
Installazione di AWS CLI su Linux
Esistono tre metodi per installare AWS CLI su Linux:
- Utilizzo del programma di installazione in bundle (il metodo ufficiale)
- Utilizzo dei repository software di Linux
- Installazione di AWS CLI come modulo Python
Amazon consiglia di utilizzare il metodo ufficiale per installare AWS CLI. In questo caso, si ottiene sempre la versione più recente del software. In questo flusso di lavoro sto utilizzando Ubuntu 20.
Utilizzo dell’archivio di installazione ufficiale
Questo è il metodo consigliato per installare AWS CLI. Procedere come segue:
- Installare curl:
apt-get install curl
- Scaricare l’archivio di installazione di AWS CLI:
curl "https://awscli.amazonaws.com/awscli-exe-linux-x86_64.zip" -o "awscliv2.zip"
- Estrarre i file di installazione contenuti nell’archivio scaricato:
unzip awscliv2.zip
- Eseguire il programma di installazione con i privilegi di root:
sudo ./aws/install
- Al termine dell’installazione, verifica la versione dello strumento AWS CLI installato per assicurarti che l’installazione sia andata a buon fine:
aws --version
Utilizzo dei repository software di Linux
AWS CLI è disponibile nei repository software ufficiali di Ubuntu. Procedi come segue:
1. Aggiorna l’albero dei repository:
sudo apt-get update
2. Installa AWS CLI con un gestore di pacchetti dai repository software di Linux:
sudo apt-get install awscli
3. Verifica che AWS CLI sia stato installato correttamente:
aws --version
Installazione con Python PIP
È possibile installare AWS CLI come modulo Python utilizzando il gestore di pacchetti Python PIP. Si noti che Python PIP non è installato di default su Ubuntu. Procedere come segue per installarlo come modulo Python:
1. È necessario installare prima Python PIP.
- Per Python 2.x:
sudo apt-get install python-pip
- Per Python 3.x:
sudo apt-get install python3-pip
2. Installare AWS CLI utilizzando Python PIP.
- Utilizzando Python 2.x PIP:
pip install awscli --upgrade --user
- Utilizzo di PIP per Python 3.x:
pip3 install awscli --upgrade --user
3. Verificare la versione installata.
- In Python 2.x:
python -m awscli --version
- In Python 3.x:
python3 -m awscli --version
Nota: Se si utilizza AWS CLI installata con PIP per Python, i comandi da utilizzare differiscono dal comando standard main aws utilizzato per una versione pacchettizzata di AWS CLI:
- Versione pacchettizzata:
aws
- Modulo per Python 2:
python -m awscli
- Modulo per Python 3:
python3 -m awscli
Installazione di AWS CLI su Windows
Per installare AWS CLI su Windows, è necessario scaricare il programma di installazione, installare AWS CLI ed eseguire la configurazione post-installazione in Windows.
Scarica il programma di installazione
Scarica il programma di installazione a 64 bit di AWS CLI utilizzando uno dei link riportati di seguito e salva il file in una ubicazione personalizzata, ad esempio: C:temp
- Il programma di installazione a 64 bit è disponibile su AWS: https://awscli.amazonaws.com/AWSCLIV2.msi
- Il programma di installazione a 32 bit è disponibile a questo link: https://s3.amazonaws.com/aws-cli/AWSCLI32PY3.msi
- Il file di installazione universale è disponibile qui: https://s3.amazonaws.com/aws-cli/AWSCLISetup.exe
In questo esempio utilizzo Windows Server 2016 e scarico il file AWSCLIV2.msi .
È possibile scaricare il file di installazione in PowerShell con il comando:
Invoke-WebRequest -Uri https://awscli.amazonaws.com/AWSCLIV2.msi -OutFile "C:tempAWSCLIV2.msi"
Avviare il programma di installazione
Avviare il file scaricato AWSCLIV2.msi .
Se si utilizza PowerShell, prendere nota dell’ubicazione del file .msi ( C:temp nel mio caso) ed eseguire il comando:
C:tempAWSCLIV2.msi
Seguire i passaggi della procedura guidata di installazione. È possibile utilizzare le impostazioni predefinite per l’installazione. Il processo di installazione è semplice, quindi non mi soffermerò su ogni singolo passaggio della procedura guidata.
Se provi a eseguire il comando aws --version per verificare se AWS CLI è stato installato correttamente, potresti ricevere un errore. Ciò è dovuto al fatto che nella variabile d’ambiente PATH non è presente alcuna voce relativa allo strumento AWS CLI. Ora puoi passare alla directory in cui è installato AWS CLI ( C:Program FilesAmazonAWSCLIV2 per impostazione predefinita) ed eseguire AWS CLI manualmente.
cd "C:Program FilesAmazonAWSCLIV2"
.aws --version
Configurare PATH
Aggiungere la voce alla variabile PATH poiché modificare manualmente la directory nella riga di comando ogni volta che è necessario eseguire comandi AWS CLI non è pratico.
Utilizzo dell’interfaccia grafica di Windows
1. Aprire Control Panel > System > Advanced system settingse, nella scheda Advanced della finestra Proprietà del sistema , fare clic su Environment Variables.
2. Nella finestra Variabili d’ambiente , selezionare la variabile PATH e fare clic su Edit. Si noti che sono disponibili opzioni per modificare le variabili utente per l’amministratore e le variabili di sistema .
3. Nella finestra Modifica variabile d’ambiente , fare clic su New.
4. Specificare il percorso della directory in cui è installata AWS CLI e premere Enter. Nel mio caso, questa directory è “C:Program FilesAmazonAWSCLIV2”.
5. Fare clic su OK per salvare le impostazioni e chiudere le finestre.
Nota: potrebbe essere necessario riaprire la finestra della console (PowerShell o CMD) affinché le modifiche abbiano effetto.
Utilizzo di PowerShell
È inoltre possibile effettuare la modifica delle variabili d’ambiente in PowerShell. Seguire questi passaggi per aggiungere un valore alla variabile PATH in PowerShell.
1. Acquisire il valore originale della variabile PATH che si desidera modificare:
$oldpath = (Get-ItemProperty -Path 'Registry::HKEY_LOCAL_MACHINESystemCurrentControlSetControlSession ManagerEnvironment' -Name PATH).path
2. Definire il nuovo valore della variabile PATH aggiungendo il valore necessario. Nel mio caso, il valore che devo aggiungere è il percorso della directory della CLI di AWS. Il carattere punto e virgola (;) viene utilizzato come separatore tra i valori dei percorsi nella variabile PATH di .
$newpath = "$oldpath;C:Program FilesAmazonAWSCLIV2"
3. Applica il valore al Registro di sistema di Windows per rendere permanenti le modifiche:
Set-ItemProperty -Path 'Registry::HKEY_LOCAL_MACHINESystemCurrentControlSetControlSession ManagerEnvironment' -Name PATH -Value $newPath
4. Verificare che la nuova configurazione della variabile PATH sia corretta:
Get-ItemProperty -Path 'Registry::HKEY_LOCAL_MACHINESystemCurrentControlSetControlSession ManagerEnvironment' -Name PATH
oppure
(Get-ItemProperty -Path 'Registry::HKEY_LOCAL_MACHINESystemCurrentControlSetControlSession ManagerEnvironment' -Name PATH).path
Utilizzo di Chocolatey
In alternativa al download e all’esecuzione del file di installazione MSI, è possibile installare AWS CLI con Chocolatey, uno strumento di gestione del software per Windows che funziona in PowerShell. Chocolatey supporta l’installazione di applicazioni dai repository online di Windows. Eseguire questo comando per installare AWS CLI:
choco install awscli
Verifica dei risultati dell’installazione
Ora è possibile eseguire il aws comando (e i relativi comandi AWS EC2) da qualsiasi directory in PowerShell.
aws --version
Nota: Se sul sistema operativo sono installate sia la versione 1 che la versione 2 di AWS CLI, il sistema operativo eseguirà la prima versione impostata nella variabile PATH .
Installazione di AWS CLI su macOS
Eseguire i seguenti passaggi per installare AWS CLI su macOS.
Accedere alla /tmp/ directory, che verrà utilizzata per archiviare i file scaricati:
cd /tmp
Metodo 1
- Scarica il file di installazione:
curl -o awscli.zip https://s3.amazonaws.com/aws-cli/awscli-bundle.zip - Estrarre il contenuto dall’archivio zip scaricato:
unzip awscli.zip - Installare AWS CLI:
sudo ./awscli-bundle/install -i /usr/local/aws -b /usr/local/bin/aws
Metodo 2
- Scarica il pacchetto di installazione:
curl "https://awscli.amazonaws.com/AWSCLIV2.pkg" -o "AWSCLIV2.pkg" - Eseguire il programma di installazione:
sudo installer -pkg AWSCLIV2.pkg -target / - È possibile eseguire il comando seguente per verificare che AWS CLI sia stata installata correttamente:
aws --version
Configurazione iniziale di AWS CLI
Ora è necessario specificare le credenziali AWS e configurare la regione e i parametri di output. Eseguire il comando riportato di seguito per configurare AWS CLI. La sintassi dei comandi AWS CLI è la stessa su Linux, Windows e macOS. Nel mio esempio, sto utilizzando Ubuntu Linux.
aws configure
Specificare quattro parametri (i primi due sono obbligatori):
- ID chiave di accesso AWS , che è una stringa alfanumerica di 20 caratteri. Le lettere sono maiuscole.
- Chiave di accesso segreta AWS , ovvero una stringa alfanumerica di 40 caratteri simile a un hash.
- Nome della regione predefinita . Selezionare questo parametro se non è necessario specificare esplicitamente una regione ogni volta che si eseguono comandi nella CLI di AWS. Se è necessario utilizzare una regione diversa da quella predefinita, è possibile specificare manualmente la regione desiderata in un comando. A tal fine, utilizzare
--region. - Formato di output predefinito . Sono disponibili tre opzioni:
json, text, table, yaml, yaml-stream. Per impostazione predefinita viene utilizzato JSON (JavaScript Object Notation). È possibile selezionare il formato desiderato durante l’esecuzione di un comando specifico utilizzando--output.
I file di configurazione di AWS CLI sono salvati nella directory home. È possibile controllare questi file con il comando:
ls -l ~/.aws
Le impostazioni relative alla regione e all’output sono memorizzate nel file di configurazione config . Le credenziali (AWS Access Key ID e AWS Secret Access Key) sono memorizzate nel file delle credenziali credentials .
Utilizzo generale e suggerimenti
Familiarizziamo con le raccomandazioni generali sull’utilizzo e i suggerimenti per AWS CLI prima di passare agli esempi pratici di AWS CLI per EC2.
Struttura dei comandi AWS CLI
È possibile comporre un comando AWS CLI in due modi: utilizzando una sola riga o più righe.
Struttura standard
Una struttura di comando standard presuppone che si componga un comando su un’unica riga di comando.
aws [options and parameters]
Dove:
aws è il comando di base per richiamare il programma aws
è il comando di primo livello che corrisponde al servizio AWS appropriato, ad esempio EC2 o S3.
specifica l’operazione da eseguire, come recuperare un oggetto, descrivere le istanze, ecc.
[options and parameters] specifica le opzioni e i parametri per l’operazione.
Struttura dei comandi su più righe
A volte l’uso di una struttura di comandi su più righe può risultare più comodo se è necessario specificare più opzioni e parametri.
aws
[options and parameters]
[options and parameters]
Il comando wait
È possibile utilizzare il comando wait per mettere in pausa l’esecuzione dell’intero comando, in modo da riprendere l’operazione quando è pronto per essere eseguito e quando tutte le condizioni sono soddisfatte.
aws wait [options and parameters]
Esempio:
aws ec2 wait instance-status-ok
--instance-ids i-1234567890abcdef0
Completamento dei comandi
Abilitare il completamento dei comandi. Il completamento dei comandi rende l’inserimento dei comandi più veloce e comodo. Utilizza questo comando per abilitare il completamento automatico in Linux:
complete -C '/usr/local/bin/aws_completer' aws
Verifica che il completamento dei comandi funzioni:
aws s[press Tab]
aws e[press Tab]
Se il completamento automatico funziona, un comando digitato solo parzialmente viene completato automaticamente quando premi Tab se esiste un solo comando che inizia con i caratteri che hai digitato. Se ci sono più comandi che iniziano con i caratteri inseriti, tutti questi comandi vengono visualizzati sotto. Puoi leggere l’elenco dei comandi disponibili e continuare a digitare il comando richiesto. Quindi utilizzare il tasto Tab per il completamento dei comandi.
Filtri
Utilizzare i filtri per visualizzare solo i dati necessari. Il filtraggio viene eseguito sul lato server di Amazon. Di conseguenza, vengono inviati meno dati in rete e si ottengono i dati di output più rapidamente. Gli script che includono comandi AWS EC2 e filtri AWS CLI funzionano più velocemente.
Guida AWS
Utilizzare il comando help per visualizzare i comandi e le opzioni disponibili.
aws help
aws help
aws help
Analisi di JSON
Utilizza jq, un’utilità leggera per l’elaborazione dei dati JSON.
jq è l’analogo di sed per trasformare il flusso di input, ma per il formato JSON. Puoi installare jq come strumento di analisi JSON con il comando:
apt-get install jq
Per impostazione predefinita, puoi utilizzare l’opzione integrata --query per analizzare il JSON restituito dal comando eseguito.
Accesso remoto
È possibile connettersi tramite SSH a una macchina Linux su cui è installata AWS CLI ed eseguire comandi per gestire i propri servizi nel cloud di Amazon.
Comandi EC2 di AWS in AWS CLI
Ora che avete installato AWS CLI e avete acquisito familiarità con i suggerimenti relativi ad AWS CLI, potete eseguire i comandi EC2 di AWS CLI per visualizzare le informazioni sulle istanze di EC2 di Amazon EC2 e gestirle. Esaminiamo ora alcuni esempi pratici di utilizzo dell’interfaccia a riga di comando in AWS.
Descrivere le istanze di Amazon EC2
È possibile utilizzare i comandi Amazon EC2 in AWS CLI per descrivere i componenti Amazon (ottenere informazioni su di essi) relativi al proprio account senza eseguire alcuna azione su di essi. I comandi AWS CLI per descrivere le istanze consentono di verificare lo stato delle istanze di Amazon EC2, dei volumi EBS, delle immagini macchina Amazon e di altri componenti. È inoltre possibile utilizzare la funzionalità fornita per monitoraggio.
Esempio 1
Partiamo da questo semplice comando per visualizzare le informazioni sulle istanze di Amazon EC2 esistenti:
aws ec2 describe-instances
Questo comando restituisce dati che descrivono tutte le istanze di Amazon EC2 nell’output utilizzando un formato JSON (poiché in precedenza abbiamo impostato JSON come formato predefinito). Di conseguenza, otteniamo un ampio array di dati, inclusi i metadati. Questo output non è pratico da leggere per gli utenti, ma lo è per gli script e le applicazioni.
Premere il tasto down arrow per scorrere verso il basso i dati nella finestra della console/del terminale.
Premere q per uscire dalla modalità di visualizzazione (analogamente a quando si utilizza less ).
Esempio 2
È possibile visualizzare le informazioni complete relative a una sola istanza utilizzando l’ID dell’istanza con il comando: aws ec2 describe-instances
--instance-ids i-0201020e110607121
Esempio 3
Ora verificheremo gli ID delle istanze, i loro nomi e lo stato di tutte le istanze disponibili nella nostra regione. Possiamo visualizzare solo i dati necessari con il comando utilizzando i filtri della CLI di AWS e l’opzione --query . Questo esempio di filtri della CLI di AWS contiene l’opzione --filter che restituisce i dati filtrati richiesti. Utilizziamo l’opzione --output text per visualizzare il risultato come testo.
aws ec2 describe-instances --filters "Name=tag:Name,Values=server*" --query "Reservations[].Instances[].[Tags[?Key=='Name'],InstanceId,State.Name]" --output text
Rispetto all’output non filtrato, che contiene tutti i dati disponibili per tutte le istanze, l’output filtrato è più pratico e leggibile per gli utenti.
Esempio 4
Ora filtriamo nuovamente le istanze di EC2 e visualizziamo solo quelle con “Linux” nel nome utilizzando un filtro della CLI di AWS.
aws ec2 describe-instances --filters "Name=tag:Name,Values=*Linux*" --query "Reservations[].Instances[].[Tags[?Key=='Name'],InstanceId,State.Name]" --output text
Nello screenshot qui sotto è visibile l’output del comando dopo averlo eseguito con il filtro per le istanze di EC2. Ho individuato tre istanze Linux con il NAKIVO Backup & Replication Transporter installato. Il Transporter è un componente per il trasferimento dei dati durante l’esecuzione di operazioni di backup e Ripristino di emergenza AWS su AWS.
Esempio 5
È possibile descrivere le istanze di particolari tipi di istanze AWS EC2. In questo esempio, eseguo il comando per visualizzare le istanze del tipo t2.micro :
aws ec2 describe-instances
--filters Name=instance-type,Values=t2.micro
Esempio 6
Utilizzare un filtro per le istanze EC2 per visualizzare solo gli ID delle istanze.
aws ec2 describe-instances --filters "Name=instance-type,Values=t2.micro" --query "Reservations[].Instances[].InstanceId"
Esempio 7
In alternativa, è possibile utilizzare la visualizzazione a tabella per i dati di output aggiungendo l’opzione --output table . Di seguito è riportato il comando con un filtro della CLI di AWS per visualizzare in una tabella l’ID, il nome, lo stato e il tipo delle istanze di EC2 di AWS.
aws ec2 describe-instances --output table --query "Reservations[].Instances[].{Name: Tags[?Key == 'Name'].Value | [0], Id: InstanceId, State: State.Name, Type: InstanceType}"
Esempio 8
Esiste un altro comando per visualizzare i dati di output (ID, tipo e nome dell’istanza) delle istanze di EC2 in una visualizzazione intuitiva:
aws ec2 describe-instances | jq -r '.Reservations[].Instances[]|.InstanceId+" "+.InstanceType+" "+(.Tags[] | select(.Key == "Name").Value)'
Esempio 9
Verifica l’indirizzo IP esterno di un’istanza in esecuzione:
aws ec2 describe-instances --instance-ids i-0201020e110607121 --query "Reservations[].Instances[].PublicIpAddress"
Per verificare gli indirizzi IP esterni di più istanze di EC2, specifica gli ID delle istanze separandoli con uno spazio.
Esempio 10
Verifica le istanze arrestate e il motivo dell’arresto di ciascuna istanza utilizzando il comando che include il filtro AWS CLI:
aws ec2 describe-instances --filters Name=instance-state-name,Values=stopped
Esiste un esempio alternativo:
aws ec2 describe-instances --filters Name=instance-state-name,Values=stopped --region eu-west-1 --output json | jq -r .Reservations[].Instances[].StateReason.Message
Esempio 11
Questo è il comando per elencare le istanze di Amazon EC2 in esecuzione con maggiori dettagli, inclusi il Nome dell’istanza, l’indirizzo IP privato, l’indirizzo IP pubblico, lo stato, il tipo e il VpcID in formato tabella: aws ec2 describe-instances --query "Reservations[*].Instances[*].{PublicIP:PublicIpAddress,PrivateIP:PrivateIpAddress,Name:Tags[?Key=='Name'] | [0].Value,Type:InstanceType,Status:State.Name,VpcId:VpcId}" --filters Name=instance-state-name,Values=running --output table
Avvio delle istanze di EC2 di Amazon
Una volta individuato l’ID dell’istanza, è possibile avviare l’istanza di Amazon EC2 utilizzando i comandi AWS EC2.
aws ec2 start-instances --instance-ids i-1a3b5c7d9ea0c1ef0
È possibile avviare più istanze di EC2 di Amazon utilizzando il comando AWS EC2 start instances e inserendo i relativi ID separati da spazi.
aws ec2 start-instances --instance-ids i-1a3b5c7d9ea0c1ef0 i-1a3b5c7d9ea0c1ef1 i-1a3b5c7d9ea0c1ef2
Arresto delle istanze di EC2 di Amazon
È possibile arrestare una o più istanze di EC2 di Amazon. La sintassi è simile a quella del comando ` ` `ec2 start-instances` .
Di seguito è riportato il comando della CLI AWS per arrestare una singola istanza:
aws ec2 stop-instances --instance-ids i-1a3b5c7d9ea0c1ef0
Il comando della CLI AWS per arrestare più (tre) istanze è lo stesso, ma è necessario specificare più ID delle istanze di EC2 separati da spazi:
aws ec2 start-instances --instance-ids i-1a3b5c7d9ea0c1ef0 i-1a3b5c7d9ea0c1ef1 i-1a3b5c7d9ea0c1ef2
Ecco l’elenco dei possibili codici di stato e nomi di stato presenti nell’output:
0 – in attesa
16 – in esecuzione
32 – in fase di spegnimento
48 – terminata
64 – in fase di arresto
80 – arrestata
Riavviare le istanze di EC2
Con il comando aws ec2 reboot-instances È possibile riavviare una o più istanze di EC2. La logica di utilizzo di questo comando è la stessa dei comandi AWS CLI `start instance` e `stop instance`. Questo è il comando per riavviare una singola istanza:
aws ec2 reboot-instances --instance-ids i-1a3b5c7d9ea0c1ef0
Questo è il comando per riavviare tre istanze:
aws ec2 reboot-instances --instance-ids i-1a3b5c7d9ea0c1ef0 i-1a3b5c7d9ea0c1ef1 i-1a3b5c7d9ea0c1ef2
Aggiungere tag
I tag consentono di classificare le istanze di EC2 e di identificarle o trovarle con maggiore facilità. Diamo un’occhiata a due comandi AWS EC2 per gestire i tag.
Esegui questo comando per aggiungere un tag all’istanza specificandone l’ID:
aws ec2 create-tags --resources i-1a3b5c7d9ea0c1ef0 --tags Key=Department,Value=Marketing
Successivamente puoi utilizzare un comando per visualizzare le informazioni relative alle istanze desiderate tramite i tag:
aws ec2 describe-instances --filters "Name=tag-key,Values=Name"
Descrivi i volumi EBS
Durante il funzionamento delle istanze di Amazon EC2, potrebbe essere necessario verificare le informazioni relative ai volumi EBS, collegare volumi alle istanze di EC2 e scollegarli. Di seguito sono riportati alcuni esempi di comandi AWS EC2 per ottenere informazioni sui volumi EBS.
Esempio 1
Questo è un semplice comando per descrivere i volumi EBS e visualizzare tutte le informazioni sui volumi esistenti nel proprio account Amazon:
aws ec2 describe-volumes
Questo comando è simile al comando AWS EC2 “describe instances” utilizzato in precedenza. Nell’output sono visibili le informazioni dettagliate relative a tutti i volumi disponibili. Premere il tasto freccia giù sulla tastiera per scorrere verso il basso e visualizzare tutti i dati. La ricerca delle informazioni necessarie in questo insieme di dati non è pratica. Utilizzare i filtri della CLI AWS per visualizzare solo i dati necessari. 
Esempio 2
Questo è un esempio del comando EC2 della CLI AWS per visualizzare gli ID di tutti i volumi EBS:
aws ec2 describe-volumes --output table --query 'Volumes[*].VolumeId'
Esempio 3
Filtriamo gli ID di tutti i volumi Amazon EBS che si trovano nello stato “attached”:
aws ec2 describe-volumes
--query 'Volumes[*].Attachments[?State==`attached`].VolumeId[]'
È possibile utilizzare la stessa logica per applicare filtri quando si eseguono comandi della CLI AWS per gestire volumi EBS e altri oggetti AWS.
Esempio 4
Potrebbe essere necessario visualizzare i volumi che non sono collegati e si trovano nello stato “available”. In questo caso, utilizzare il comando:
aws ec2 describe-volumes --filters Name=status,Values=available --output table
Collegare volumi EBS alle istanze di EC2
Dopo aver ottenuto le informazioni necessarie sulle istanze di EC2 e sui volumi EBS, è possibile collegare un volume EBS a un’istanza di EC2 con il comando aws ec2 attach-volume .
Utilizzare l’opzione --device per specificare il nome del disco utilizzato da un sistema operativo guest. Nell’esempio riportato di seguito, utilizzo il comando per collegare un volume EBS come unità disco identificata come /dev/sde nel sistema operativo guest Linux.
aws ec2 attach-volume --volume-id vol-0034567890abcdef0 --instance-id i-1a3b5c7d9ea0c1ef0 --device /dev/sde
Una volta collegato il volume EBS all’istanza di EC2, lo stato del volume passa da “Disponibile” a “Collegato”.
Operazioni con gli snapshot
Gli snapshot dei volumi EBS consentono di preservare lo stato del volume e di ripristinare tale stato, se necessario. Ecco un esempio di comando per creare uno snapshot di un volume EBS:
aws ec2 create-snapshot --volume-id
Per visualizzare gli ID degli snapshot, utilizzare questo comando:
ec2 describe-snapshots --owner self
Verificare lo stato di uno snapshot con il comando:
aws ec2 describe-snapshots --snapshot-id
Se l’avanzamento dello snapshot è al 100% e lo stato è “completato”, lo snapshot è stato creato con successo.
Queste informazioni consentono di selezionare la giusta strategia di protezione dei dati. {116} per scoprirne di più.
Descrivere le immagini
Analogamente ai comandi di AWS EC2 per descrivere istanze e volumi, è possibile utilizzare un comando per descrivere le Amazon Machine Image (AMI). Questo è un semplice comando AWS CLI EC2 per visualizzare le informazioni relative alle Amazon Machine Image (AMI):
aws ec2 describe-images
È possibile visualizzare le informazioni relative a una specifica immagine:
aws ec2 describe-images --image-ids ami-0034567890abc4140
In base alle informazioni visualizzate, è possibile selezionare l’AMI necessaria per creare una nuova istanza di Amazon EC2.
Avvio di nuove istanze di EC2
È possibile creare (avviare) una nuova istanza basata sull’immagine necessaria utilizzando i comandi EC2 della CLI AWS riportati di seguito.
Innanzitutto è necessario generare le chiavi:
aws ec2 create-key-pair --key-name MyKeyPair --output text > MyKeyPair.pem
Creare una nuova istanza di Amazon EC2 con il comando AWS EC2 run instances specificando un’AMI, il tipo di istanza e la coppia di chiavi:
aws ec2 run-instances
--image-id ami-0abcdef1234567890
--instance-type t2.micro
--key-name MyKeyPair
Questo è un semplice esempio. È possibile definire altre opzioni durante la creazione di una nuova istanza di EC2 con il comando AWS EC2 run instances, tra cui:
–subnet-id
–security-group-ids
–block-device-mappings
–tag-specifications
Eliminazione delle istanze di EC2
Si raccomanda di eliminare le istanze AWS EC2 che non vengono utilizzate da molto tempo per ridurre i costi. Prestare attenzione poiché non è possibile ripristinare un’istanza di EC2 terminata. Se non si è certi che l’istanza terminata possa servire in futuro, eseguire il backup delle istanze di EC2 utilizzando NAKIVO Backup & Replication verso un repository di backup locale o su Amazon S3.
È possibile eliminare più istanze specificandone gli ID con il comando:
aws ec2 terminate-instances --instance-ids i-0abcdef1234567890 i-0abcdef123456789a i-0abcdef123456789b
Conclusione
AWS CLI è un potente strumento a riga di comando che consente di automatizzare l’esecuzione di un gran numero di attività simili. I filtri di AWS EC2 consentono di configurare l’output e ottenere solo i dati necessari. Esistono comandi per visualizzare informazioni sui servizi Amazon e comandi per apportare modifiche a tali servizi.
Per prevenire errori umani causati da una configurazione errata degli script creati con AWS CLI, si raccomanda vivamente di eseguire regolarmente Backup di AWS EC2 utilizzando una soluzione di terze parti dedicata.
< span data-sheets-value="{"1":2,"2":"















