Cómo realizar la gestión de Instancias de EC2 a través de la interfaz de línea de comandos de AWS
AWS ofrece una práctica interfaz web denominada «AWS Management Console». Puedes utilizar esta consola para realizar todas las operaciones necesarias en la nube de AWS. Sin embargo, realizar muchas operaciones idénticas en la interfaz web puede resultar repetitivo y llevar mucho tiempo. En este caso, puedes utilizar la AWS CLI para automatizar las tareas de gestión de AWS y realizar operaciones masivas. Esta entrada del blog trata sobre la instalación de la AWS CLI y los conceptos básicos para utilizar esta herramienta. La entrada también se centra en los comandos de la AWS CLI para EC2, ilustrados con ejemplos.
¿Qué es AWS CLI?
La interfaz de línea de comandos de Amazon Web Services (AWS CLI) es una herramienta de código abierto que permite la gestión de entornos en la nube de Amazon. Esta herramienta funciona mediante la integración con el intérprete de comandos del sistema operativo en el que está instalada AWS CLI. Puedes gestionar instancias de Amazon EC2 con los comandos de Amazon EC2, así como gestionar volúmenes de EBS, buckets de S3 y otros servicios de Amazon.
La AWS CLI se ejecuta en el shell de la línea de comandos de Linux, en el terminal de macOS, en el símbolo del sistema de Windows (CMD) y en PowerShell. Esta CLI te permite crear scripts y automatizar tus tareas.
Existen dos versiones principales de la CLI de AWS:
- La versión 1 de la CLI de AWS es la versión antigua, disponible para garantizar la compatibilidad con versiones anteriores. Esta versión sigue siendo compatible, pero es posible que algunas funciones nuevas no estén disponibles.
- La versión 2 de la CLI de AWS es la versión más reciente, que admite todas las funciones disponibles de AWS. Se recomienda instalar la versión más reciente.
Ambas versiones utilizan el mismo comando aws para ejecutar la CLI de AWS. Sin embargo, hay cambios que pueden impedir el uso de scripts creados para la AWS CLI v1 en la AWS CLI v2.
Requisitos
Veamos ahora los requisitos que debes cumplir para utilizar la AWS CLI.
Requisitos generales
- Debes disponer de una cuenta de AWS y de Claves de acceso de AWS (ID de clave de acceso de AWS y clave secreta de acceso de AWS).
- Debe estar instalado Python 2 versión 2.6.5 o superior, o Python 3 versión 3.3 o superior. AWS CLI v2 incluye una copia integrada de Python, por lo que no es necesario instalar Python manualmente para instalar AWS CLI v2.
Linux
- Debe tener instalada una herramienta para extraer archivos zip
glibc,groffyless
Windows
- Windows XP o posterior
- Derechos de administrador en el equipo Windows
macOS
- Versión de macOS de 64 bits compatible con Apple
Instalación
Debe instalar AWS CLI antes de poder ejecutar comandos para gestionar instancias de Amazon EC2 y otros servicios de Amazon. Veamos cómo instalar la versión 2 de AWS CLI en diferentes sistemas operativos.
Instalación de AWS CLI en Linux
Existen tres métodos para instalar AWS CLI en Linux:
- Uso del instalador de paquetes (el método oficial)
- Uso de los repositorios de software de Linux
- Instalación de AWS CLI como módulo de Python
Amazon recomienda utilizar el método oficial para instalar AWS CLI. En este caso, siempre obtendrás la última versión del software. En este flujo de trabajo estoy utilizando Ubuntu 20.
Uso del archivo de instalación oficial
Este es el método recomendado para instalar AWS CLI. Sigue estos pasos:
- Instala curl:
apt-get install curl
- Descarga el archivo de instalación de AWS CLI:
curl "https://awscli.amazonaws.com/awscli-exe-linux-x86_64.zip" -o "awscliv2.zip"
- Extrae los archivos de instalación incluidos en el archivo descargado:
unzip awscliv2.zip
- Ejecuta el instalador con privilegios de root:
sudo ./aws/install
- Después de completada la instalación, comprueba la versión de la herramienta AWS CLI instalada para asegurarte de que se ha instalado correctamente:
aws --version
Uso de los repositorios de software de Linux
La AWS CLI está disponible en los repositorios oficiales de software de Ubuntu. Sigue estos pasos:
1. Actualiza el árbol de repositorios:
sudo apt-get update
2. Instala la AWS CLI con un gestor de paquetes desde los repositorios de software de Linux:
sudo apt-get install awscli
3. Verifica que la AWS CLI se ha instalado correctamente:
aws --version
Instalación con Python PIP
Puede instalar AWS CLI como módulo de Python utilizando el gestor de paquetes Python PIP. Tenga en cuenta que Python PIP no viene instalado de forma predeterminada en Ubuntu. Siga estos pasos para instalarlo como módulo de Python:
1. Primero debe instalar Python PIP.
- Para Python 2.x:
sudo apt-get install python-pip
- Para Python 3.x:
sudo apt-get install python3-pip
2. Instale AWS CLI utilizando Python PIP.
- Con Python 2.x PIP:
pip install awscli --upgrade --user
- Con PIP de Python 3.x:
pip3 install awscli --upgrade --user
3. Comprueba la versión instalada.
- En Python 2.x:
python -m awscli --version
- En Python 3.x:
python3 -m awscli --version
Nota: Si utilizas la AWS CLI instalada con PIP de Python, los comandos que debes utilizar difieren del comando estándar «main» aws que se utiliza para la versión empaquetada de la AWS CLI:
- Versión empaquetada:
aws
- Módulo para Python 2:
python -m awscli
- Módulo para Python 3:
python3 -m awscli
Instalación de AWS CLI en Windows
Para instalar AWS CLI en Windows, debes descargar el instalador, instalar AWS CLI y realizar la configuración posterior a la instalación en Windows.
Descarga el instalador
Descarga el instalador de AWS CLI de 64 bits utilizando uno de los enlaces siguientes y guarda el archivo en una ubicación personalizada; por ejemplo: C:temp
- El instalador de 64 bits está disponible en AWS: https://awscli.amazonaws.com/AWSCLIV2.msi
- El instalador de 32 bits está disponible en este enlace: https://s3.amazonaws.com/aws-cli/AWSCLI32PY3.msi
- El archivo del instalador universal está disponible aquí: https://s3.amazonaws.com/aws-cli/AWSCLISetup.exe
En este ejemplo utilizo Windows Server 2016 y descargo el archivo AWSCLIV2.msi .
Puedes descargar el archivo de instalación en PowerShell con el comando:
Invoke-WebRequest -Uri https://awscli.amazonaws.com/AWSCLIV2.msi -OutFile "C:tempAWSCLIV2.msi"
Ejecuta el instalador
Ejecuta el archivo descargado AWSCLIV2.msi .
Si utilizas PowerShell, toma nota de la ubicación del archivo .msi ( C:temp en mi caso) y ejecuta el comando:
C:tempAWSCLIV2.msi
Sigue los pasos del asistente de instalación. Puedes utilizar los ajustes predeterminados para la instalación. El proceso de instalación es sencillo, por lo que no voy a repasar cada paso del asistente.
Si intentas ejecutar el comando aws --version para comprobar si AWS CLI se ha instalado correctamente, es posible que aparezca un error. Esto se debe a que no hay ninguna entrada relacionada con la herramienta AWS CLI en la variable de entorno PATH. Ahora puedes cambiar al directorio en el que está instalada AWS CLI ( C:Program FilesAmazonAWSCLIV2 por defecto) y ejecutar AWS CLI manualmente.
cd "C:Program FilesAmazonAWSCLIV2"
.aws --version
Configurar PATH
Añade la entrada a la variable PATH , ya que cambiar manualmente el directorio en la línea de comandos cada vez que necesites ejecutar comandos de AWS CLI no resulta práctico.
Uso de la interfaz gráfica de usuario de Windows
1. Abre Control Panel > System > Advanced system settingsy, en la pestaña Advanced de la ventana Propiedades del sistema , haz clic en Environment Variables.
2. En la ventana Variables de entorno , selecciona la variable PATH y haz clic en Edit. Ten en cuenta que hay opciones para editar las variables de usuario para el administrador y las variables del sistema .
3. En la ventana Editar variable de entorno , haz clic en New.
4. Especifica la ruta del directorio donde está instalada la CLI de AWS y pulsa Enter. En mi caso, este directorio es «C:Program FilesAmazonAWSCLIV2».
5. Pulsa OK para guardar los ajustes y cerrar las ventanas.
Nota: Es posible que tengas que volver a abrir la ventana de la consola (PowerShell o CMD) para que los cambios surtan efecto.
Uso de PowerShell
También puedes editar las variables de entorno en PowerShell. Sigue estos pasos para añadir un valor a la variable PATH en PowerShell.
1. Anota el valor original de la variable PATH que deseas modificar:
$oldpath = (Get-ItemProperty -Path 'Registry::HKEY_LOCAL_MACHINESystemCurrentControlSetControlSession ManagerEnvironment' -Name PATH).path
2. Define la nueva variable PATH añadiendo el valor necesario. En mi caso, el valor que tengo que añadir es la ruta al directorio de la CLI de AWS. El carácter punto y coma (;) se utiliza como separador entre los valores de ruta en la variable PATH de .
$newpath = "$oldpath;C:Program FilesAmazonAWSCLIV2"
3. Aplica el valor al Registro de Windows para que los cambios sean permanentes:
Set-ItemProperty -Path 'Registry::HKEY_LOCAL_MACHINESystemCurrentControlSetControlSession ManagerEnvironment' -Name PATH -Value $newPath
4. Comprueba si la nueva configuración de la variable PATH de es correcta:
Get-ItemProperty -Path 'Registry::HKEY_LOCAL_MACHINESystemCurrentControlSetControlSession ManagerEnvironment' -Name PATH
o
(Get-ItemProperty -Path 'Registry::HKEY_LOCAL_MACHINESystemCurrentControlSetControlSession ManagerEnvironment' -Name PATH).path
Uso de Chocolatey
Como alternativa a descargar y ejecutar el archivo de instalación MSI, puedes instalar AWS CLI con Chocolatey, que es una herramienta de gestión de software de Windows que se ejecuta en PowerShell. Chocolatey permite instalar aplicaciones desde repositorios en línea de Windows. Ejecuta este comando para instalar AWS CLI:
choco install awscli
Comprueba los resultados de la instalación
Ahora puedes ejecutar el comando aws (y los comandos relacionados con AWS EC2) desde cualquier directorio en PowerShell.
aws --version
Nota: Si tienes instaladas las versiones 1 y 2 de AWS CLI en tu sistema operativo, este ejecutará la primera que figure en la variable PATH .
Instalación de AWS CLI en macOS
Sigue estos pasos para instalar AWS CLI en macOS.
Acceda al /tmp/ directorio, que se utilizará para almacenar los archivos descargados:
cd /tmp
Método 1
- Descargue el archivo de instalación:
curl -o awscli.zip https://s3.amazonaws.com/aws-cli/awscli-bundle.zip - Extraiga el contenido del archivo ZIP descargado:
unzip awscli.zip - Instale AWS CLI:
sudo ./awscli-bundle/install -i /usr/local/aws -b /usr/local/bin/aws
Método 2
- Descargue el paquete de instalación:
curl "https://awscli.amazonaws.com/AWSCLIV2.pkg" -o "AWSCLIV2.pkg" - Ejecute el instalador:
sudo installer -pkg AWSCLIV2.pkg -target / - Puede ejecutar el siguiente comando para asegurarse de que AWS CLI se ha instalado correctamente:
aws --version
Configuración inicial de AWS CLI
Ahora debes especificar las credenciales de AWS y configurar la región y los parámetros de salida. Ejecuta el siguiente comando para configurar AWS CLI. La sintaxis de los comandos de AWS CLI es la misma en Linux, Windows y macOS. En mi ejemplo, utilizo Ubuntu Linux.
aws configure
Especifica cuatro parámetros (los dos primeros son obligatorios):
- ID de clave de acceso de AWS , que es una cadena alfanumérica de 20 caracteres. Las letras deben estar en mayúsculas.
- Clave secreta de acceso de AWS , que es una cadena alfanumérica de 40 caracteres similar a un hash.
- Nombre de la región predeterminada . Selecciona este parámetro si no necesitas especificar una región de forma explícita cada vez que ejecutes comandos en la CLI de AWS. Si necesitas utilizar una región distinta a tu región predeterminada, puedes especificar manualmente la región deseada en un comando. Utiliza
--regionpara ello. - Formato de salida predeterminado . Hay tres opciones:
json, text, table, yaml, yaml-stream. De forma predeterminada se utiliza JSON (JavaScript Object Notation). Puedes seleccionar el formato deseado al ejecutar un comando concreto utilizando--output.
Los archivos de configuración de la CLI de AWS se guardan en el directorio de inicio. Puedes consultar estos archivos con el comando:
ls -l ~/.aws
Los ajustes de la región y de la salida se almacenan en el archivo de configuración de . Las credenciales (ID de clave de acceso de AWS y clave secreta de acceso de AWS) se almacenan en el archivo de credenciales de .
Uso general y consejos
Familiaricémonos con las recomendaciones generales de uso y los consejos para la AWS CLI antes de pasar a los ejemplos prácticos de la AWS CLI para EC2.
Estructura de los comandos de la AWS CLI
Puedes escribir un comando de la AWS CLI de dos formas: en una sola línea o en varias líneas.
Estructura estándar
Una estructura de comando estándar supone que se compone un comando de una sola línea.
aws [options and parameters]
Donde:
aws es el comando base para llamar al aws programa
es el comando de nivel superior que corresponde al servicio de AWS adecuado, por ejemplo, EC2 o S3.
especifica la operación que se va a realizar, como obtener un objeto, describir instancias, etc.
[options and parameters] especifica las opciones y los parámetros de la operación.
Estructura de comandos de varias líneas
A veces, utilizar una estructura de comandos de varias líneas puede resultar más cómodo si necesitas especificar múltiples opciones y parámetros.
aws
[options and parameters]
[options and parameters]
El comando «wait»
Puedes utilizar el comando wait para pausar la ejecución de todo el comando y reanudar la operación cuando esté listo para ejecutarse y se cumplan todas las condiciones.
aws wait [options and parameters]
Ejemplo:
aws ec2 wait instance-status-ok
--instance-ids i-1234567890abcdef0
Autocompletado de comandos
Activa el autocompletado de comandos. El autocompletado de comandos hace que introducir comandos sea más rápido y cómodo. Utiliza este comando para habilitar la autocompletación en Linux:
complete -C '/usr/local/bin/aws_completer' aws
Verifica que la autocompletación funcione:
aws s[press Tab]
aws e[press Tab]
Si la autocompletación funciona, un comando introducido parcialmente se completará automáticamente al pulsar Tab si existe un único comando que empiece por los caracteres que has tecleado. Si hay varios comandos que empiecen por los caracteres introducidos, todos ellos se mostrarán a continuación. Puedes leer la lista de comandos disponibles y continuar introduciendo el comando necesario. A continuación, utiliza la clave Tab para la autocompletación de comandos.
Filtros
Utiliza filtros para mostrar solo los datos necesarios. El filtrado se realiza en el servidor de Amazon. Como resultado, se envían menos datos a través de la red y obtienes los datos de salida más rápidamente. Los scripts que incluyen comandos de Amazon EC2 y filtros de la CLI de AWS funcionan más rápido.
Ayuda de AWS
Utiliza el comando help para mostrar los comandos y opciones disponibles.
aws help
aws help
aws help
Análisis de JSON
Utiliza jq, una utilidad ligera para procesar datos JSON.
jq es el equivalente a sed para transformar el flujo de entrada, pero para el formato JSON. Puedes instalar jq como herramienta de análisis de JSON con el comando:
apt-get install jq
De forma predeterminada, puedes utilizar la opción integrada --query para analizar el JSON devuelto por el comando ejecutado.
Acceso remoto
Puedes conectarte mediante SSH a un equipo Linux en el que esté instalada la CLI de AWS y ejecutar comandos para realizar la gestión de tus servicios en la nube de Amazon.
Comandos de Amazon EC2 en la CLI de AWS
Ahora que has instalado la CLI de AWS y te has familiarizado con los consejos sobre su uso, puedes ejecutar los comandos de Amazon EC2 de la CLI de AWS para ver información sobre las instancias de Amazon EC2 y realizar su gestión. Veamos ahora algunos ejemplos prácticos sobre el uso de la interfaz de línea de comandos en AWS.
Describir instancias de Amazon EC2
Puede utilizar los comandos de Amazon EC2 en la AWS CLI para describir los componentes de Amazon (obtener información sobre ellos) de su cuenta sin realizar ninguna acción con ellos. Los comandos de la AWS CLI para describir instancias le ayudan a comprobar el estado de las instancias de Amazon EC2, los volúmenes de EBS, las imágenes de máquina de Amazon y otros componentes. También puede utilizar las funciones proporcionadas en supervisión.
Ejemplo 1
Comencemos con este sencillo comando para mostrar información sobre las instancias existentes de Amazon EC2:
aws ec2 describe-instances
Este comando devuelve datos que describen todas las instancias de AWS EC2 en la salida utilizando un formato JSON (ya que anteriormente hemos establecido JSON como formato predeterminado). Como resultado, obtenemos una gran matriz de datos, incluidos los metadatos. Esta salida no resulta práctica para que la lean los usuarios, pero sí lo es para la creación de scripts y aplicaciones.
Pulsa la tecla « down arrow » para desplazarte hacia abajo por los datos en la ventana de la consola o terminal.
Pulsa « q » para salir del modo de visualización (de forma similar a cuando utilizas « » en «less» ).
Ejemplo 2
Podemos mostrar la información completa de una sola instancia utilizando el ID de la instancia con el comando: aws ec2 describe-instances
--instance-ids i-0201020e110607121
Ejemplo 3
Ahora vamos a comprobar los ID de las instancias, sus nombres y su estado para todas las instancias disponibles en nuestra región. Podemos mostrar solo los datos necesarios con el comando utilizando los filtros de la CLI de AWS y la opción --query . Este ejemplo de filtros de la CLI de AWS contiene la opción --filter , que devuelve los datos filtrados solicitados. Utilizamos la opción --output text para mostrar el resultado en formato de texto.
aws ec2 describe-instances --filters "Name=tag:Name,Values=server*" --query "Reservations[].Instances[].[Tags[?Key=='Name'],InstanceId,State.Name]" --output text
En comparación con la salida sin filtrar, que contiene todos los datos disponibles para todas las instancias, la salida filtrada resulta más práctica y es más fácil de leer para los usuarios.
Ejemplo 4
Ahora volvamos a filtrar las Instancias de EC2 y mostremos únicamente aquellas que tengan «Linux» en el nombre utilizando un filtro de la CLI de AWS.
aws ec2 describe-instances --filters "Name=tag:Name,Values=*Linux*" --query "Reservations[].Instances[].[Tags[?Key=='Name'],InstanceId,State.Name]" --output text
En la captura de pantalla siguiente, se puede ver la salida del comando después de utilizarlo con el filtro de Instancias de EC2. He encontrado tres instancias Linux con el NAKIVO Backup & Replication Transportador instalado. El Transportador es un componente para transferir datos al realizar operaciones de backup de AWS y Recuperación ante desastres de AWS .
Ejemplo 5
Se pueden describir instancias de tipos concretos de Instancias de EC2. En este ejemplo, ejecuto el comando para mostrar instancias del tipo t2.micro :
aws ec2 describe-instances
--filters Name=instance-type,Values=t2.micro
Ejemplo 6
Utiliza un filtro de instancias de EC2 para mostrar únicamente los ID de instancia.
aws ec2 describe-instances --filters "Name=instance-type,Values=t2.micro" --query "Reservations[].Instances[].InstanceId"
Ejemplo 7
Como alternativa, puedes utilizar la vista de tabla para los datos de salida añadiendo la opción --output table . A continuación se muestra el comando con un filtro de la CLI de AWS para mostrar el ID, el nombre, el estado y el tipo de las Instancias de EC2 en forma de tabla.
aws ec2 describe-instances --output table --query "Reservations[].Instances[].{Name: Tags[?Key == 'Name'].Value | [0], Id: InstanceId, State: State.Name, Type: InstanceType}"
Ejemplo 8
Existe otro comando para mostrar los datos de salida (ID, tipo y nombre de la instancia) de las Instancias de EC2 en una vista práctica:
aws ec2 describe-instances | jq -r '.Reservations[].Instances[]|.InstanceId+" "+.InstanceType+" "+(.Tags[] | select(.Key == "Name").Value)'
Ejemplo 9
Comprueba la dirección IP externa de una instancia ejecutada:
aws ec2 describe-instances --instance-ids i-0201020e110607121 --query "Reservations[].Instances[].PublicIpAddress"
Para comprobar las direcciones IP externas de varias Instancias de EC2, define los ID de las instancias separándolos con un espacio.
Ejemplo 10
Comprueba las instancias detenidas y el motivo por el que se ha detenido cada una de ellas con el comando que incluye el filtro de la CLI de AWS:
aws ec2 describe-instances --filters Name=instance-state-name,Values=stopped
Hay un ejemplo alternativo:
aws ec2 describe-instances --filters Name=instance-state-name,Values=stopped --region eu-west-1 --output json | jq -r .Reservations[].Instances[].StateReason.Message
Ejemplo 11
Este es el comando para mostrar una lista de las instancias de Amazon EC2 en ejecución con más detalles, incluyendo el nombre de la instancia, la dirección IP privada, la dirección IP pública, el estado, el tipo y el VpcID en forma de tabla: 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
Iniciar instancias de Amazon EC2
Cuando conozcas el ID de la instancia, puedes iniciar la instancia de Amazon EC2 utilizando los comandos de Amazon EC2.
aws ec2 start-instances --instance-ids i-1a3b5c7d9ea0c1ef0
Puedes iniciar varias instancias de Amazon EC2 utilizando el comando «start instances» de Amazon EC2 e introduciendo sus ID de instancia separados por espacios.
aws ec2 start-instances --instance-ids i-1a3b5c7d9ea0c1ef0 i-1a3b5c7d9ea0c1ef1 i-1a3b5c7d9ea0c1ef2
Detener instancias de Amazon EC2
Puedes detener una o varias instancias de Amazon EC2. La sintaxis es similar a la del comando « » «ec2 start-instances» .
A continuación se muestra el comando de la CLI de AWS para detener una instancia:
aws ec2 stop-instances --instance-ids i-1a3b5c7d9ea0c1ef0
El comando de la CLI de AWS para detener varias (tres) instancias es el mismo, pero hay que especificar varios ID de Instancias de EC2 separados por espacios:
aws ec2 start-instances --instance-ids i-1a3b5c7d9ea0c1ef0 i-1a3b5c7d9ea0c1ef1 i-1a3b5c7d9ea0c1ef2
Esta es la lista de posibles códigos de estado y nombres de estado que aparecen en la salida:
0 – pendiente
16 – en ejecución
32 – apagándose
48 – terminada
64 – deteniéndose
80 – detenida
Reiniciar Instancias de EC2 de AWS
Con el comando aws ec2 reboot-instances puedes reiniciar una o varias Instancias de EC2 de AWS. La lógica de uso de este comando es la misma que la de los comandos «start instance» y «stop instance» de la CLI de AWS. Este es el comando para reiniciar una instancia:
aws ec2 reboot-instances --instance-ids i-1a3b5c7d9ea0c1ef0
Este es el comando para reiniciar tres instancias:
aws ec2 reboot-instances --instance-ids i-1a3b5c7d9ea0c1ef0 i-1a3b5c7d9ea0c1ef1 i-1a3b5c7d9ea0c1ef2
Añadir etiquetas
Las etiquetas te permiten clasificar las Instancias de EC2 e identificarlas o buscarlas con mayor facilidad. Veamos dos comandos de AWS EC2 para trabajar con etiquetas.
Ejecuta este comando para añadir una etiqueta a la instancia definiendo el ID de la misma:
aws ec2 create-tags --resources i-1a3b5c7d9ea0c1ef0 --tags Key=Department,Value=Marketing
A continuación, puedes utilizar un comando para mostrar información sobre las instancias necesarias mediante el uso de etiquetas:
aws ec2 describe-instances --filters "Name=tag-key,Values=Name"
Describir volúmenes EBS
Durante el funcionamiento de las instancias de Amazon EC2, es posible que necesites consultar información sobre los volúmenes EBS, acoplar volúmenes a instancias de EC2 y desconectarlos. A continuación puedes ver algunos ejemplos de comandos de AWS EC2 para obtener información sobre los volúmenes EBS.
Ejemplo 1
Este es un comando sencillo para describir volúmenes de EBS y mostrar toda la información sobre los volúmenes existentes en su cuenta de Amazon:
aws ec2 describe-volumes
Este comando es similar al comando «describe instances» de Amazon EC2 que hemos utilizado anteriormente. En la salida podemos ver detalles sobre todos los volúmenes disponibles. Pulse la flecha hacia abajo del teclado para desplazarse hacia abajo y ver todos los datos. Buscar la información que necesita en esta matriz de datos no resulta práctico. Utilice los filtros de la CLI de AWS para mostrar solo los datos necesarios. 
Ejemplo 2
Este es un ejemplo del comando de la CLI de AWS para EC2 que muestra los ID de todos los volúmenes EBS:
aws ec2 describe-volumes --output table --query 'Volumes[*].VolumeId'
Ejemplo 3
Filtremos los ID de todos los volúmenes de Amazon EBS que se encuentren en estado «conectado»:
aws ec2 describe-volumes
--query 'Volumes[*].Attachments[?State==`attached`].VolumeId[]'
Puedes utilizar la misma lógica para aplicar filtros al ejecutar comandos de la CLI de AWS para trabajar con volúmenes EBS y otros objetos de AWS.
Ejemplo 4
Es posible que necesites ver los volúmenes que no están conectados y se encuentran en estado «disponible». En este caso, utilice el comando:
aws ec2 describe-volumes --filters Name=status,Values=available --output table
Conectar volúmenes EBS a Instancias de EC2 de AWS
Después de obtener la información necesaria sobre las Instancias de EC2 y los volúmenes EBS, puede conectar un volumen EBS a una instancia de EC2 con el comando aws ec2 attach-volume .
Utilice la opción --device para especificar el nombre del disco utilizado por un sistema operativo invitado. En el ejemplo siguiente, utilizo el comando para conectar un volumen EBS como unidad de disco identificada como /dev/sde en el sistema Linux invitado.
aws ec2 attach-volume --volume-id vol-0034567890abcdef0 --instance-id i-1a3b5c7d9ea0c1ef0 --device /dev/sde
Después de conectar el volumen EBS a la Instancia de EC2, el estado del volumen cambia de «Disponible» a «Conectado».
Operaciones con instantáneas
Las instantáneas de volúmenes EBS te permiten conservar el estado del volumen y revertir a ese estado si es necesario. Este es un ejemplo del comando para crear una instantánea de un volumen EBS:
aws ec2 create-snapshot --volume-id
Para mostrar los ID de las instantáneas, utilice este comando:
ec2 describe-snapshots --owner self
Compruebe el estado de una instantánea con el comando:
aws ec2 describe-snapshots --snapshot-id
Si el progreso de la instantánea es del 100 % y el estado es «completado», la instantánea se ha creado correctamente.
Esta información le permite seleccionar la estrategia de protección de datos adecuada. {116} para obtener más información.
Describir imágenes
De forma similar a los comandos de AWS EC2 para describir instancias y volúmenes, puede utilizar un comando para describir las imágenes de máquina de Amazon (AMI). Este es un sencillo comando de la CLI de AWS EC2 para ver información sobre las imágenes de máquina de Amazon (AMI):
aws ec2 describe-images
Puede ver información sobre una imagen concreta:
aws ec2 describe-images --image-ids ami-0034567890abc4140
En función de la información mostrada, puede seleccionar la AMI necesaria para crear una nueva instancia de Amazon EC2.
Iniciar nuevas instancias de EC2
Puede crear (ejecutar) una nueva instancia basada en la imagen necesaria utilizando los siguientes comandos de la CLI de AWS para EC2.
En primer lugar, debe generar claves:
aws ec2 create-key-pair --key-name MyKeyPair --output text > MyKeyPair.pem
Cree una nueva instancia de Amazon EC2 con el comando «run instances» de AWS EC2 especificando una AMI, un tipo de instancia y un par de claves:
aws ec2 run-instances
--image-id ami-0abcdef1234567890
--instance-type t2.micro
--key-name MyKeyPair
Este es un ejemplo sencillo. Puedes definir más opciones al crear una nueva instancia de EC2 con el comando «run instances» de AWS EC2, entre las que se incluyen:
–subnet-id
–security-group-ids
–block-device-mappings
–tag-specifications
Eliminar instancias de EC2
Se recomienda eliminar las instancias de AWS EC2 que lleven mucho tiempo sin utilizarse para ahorrar costes. Ten cuidado, ya que no es posible recuperar una instancia de EC2 una vez terminada. Si no estás seguro de si necesitarás una instancia terminada más adelante, Hacer backup de la instancia de EC2 con NAKIVO Backup & Replication a un repositorio de backups local o a Amazon S3.
Puedes eliminar varias instancias especificando sus ID de instancia con el comando:
aws ec2 terminate-instances --instance-ids i-0abcdef1234567890 i-0abcdef123456789a i-0abcdef123456789b
Conclusión
AWS CLI es una potente herramienta de línea de comandos que puede ayudarte a automatizar la ejecución de un gran número de tareas similares. Los filtros de AWS EC2 te permiten configurar la salida y obtener solo los datos que necesitas. Existen comandos para ver información sobre los servicios de Amazon y otros para realizar cambios en ellos.
Para evitar errores humanos causados por una configuración incorrecta de los scripts creados con la AWS CLI, se recomienda encarecidamente realizar periódicamente Backup de AWS EC2 utilizando una solución de terceros específica.
< span data-sheets-value="{"1":2,"2":"















