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.

NAKIVO para el backup de AWS EC2

NAKIVO para el backup de AWS EC2

Backup de instancias de Amazon EC2 en EC2, AWS S3 y en las propias instalaciones. Opciones antirransomware. Rápida recuperación de instancias y objetos de aplicaciones.

¿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, groffy less

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:

  1. Instala curl:

apt-get install curl

  1. Descarga el archivo de instalación de AWS CLI:

curl "https://awscli.amazonaws.com/awscli-exe-linux-x86_64.zip" -o "awscliv2.zip"

  1. Extrae los archivos de instalación incluidos en el archivo descargado:

unzip awscliv2.zip

  1. Ejecuta el instalador con privilegios de root:

sudo ./aws/install

  1. 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

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

Downloading the AWS CLI installer for Windows

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.

Running the AWS CLI installation wizard

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

Checking the installed version of AWS CLI after changing the directory

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.

Configuring environment variables in Control Panel

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 .

Editing the PATH variable

3. En la ventana Editar variable de entorno , haz clic en New.

Adding a new value to the PATH variable

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

Adding the AWS CLI installation directory to PATH in PowerShell

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

Checking the installed version of AWS CLI in Windows

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

  1. Descargue el archivo de instalación:
    curl -o awscli.zip https://s3.amazonaws.com/aws-cli/awscli-bundle.zip
  2. Extraiga el contenido del archivo ZIP descargado:
    unzip awscli.zip
  3. Instale AWS CLI:
    sudo ./awscli-bundle/install -i /usr/local/aws -b /usr/local/bin/aws

Método 2

  1. Descargue el paquete de instalación:
    curl "https://awscli.amazonaws.com/AWSCLIV2.pkg" -o "AWSCLIV2.pkg"
  2. Ejecute el instalador:
    sudo installer -pkg AWSCLIV2.pkg -target /
  3. 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 --region para 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 .

The initial configuration of AWS CLI

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» ).

An example of an AWS CLI list EC2 instances command

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.

An example of an AWS EC2 describe instances query

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 .

An example of using the EC2 describe instances filter

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"

AWS EC2 list instances and their instance IDs

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}"

AWS list EC2 instances in a table

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)'

AWS EC2 describe instances by using AWS EC2 filters

Ejemplo 9

Comprueba la dirección IP externa de una instancia ejecutada:

aws ec2 describe-instances --instance-ids i-0201020e110607121 --query "Reservations[].Instances[].PublicIpAddress"

The AWS EC2 describe instances command to display public IP addresses

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

An example of the AWS CLI describe instances command with AWS CLI filters

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. A simple AWS CLI EC2 command to describe EBS volumes

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[]'

Displaying information about EBS volumes using AWS EC2 filters

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 --description 'Volume Snapshot for ATA Blog via the AWS CLI' --tag-specifications 'ResourceType=snapshot,Tags=[{Key=Name,Value=FileServer01},{Key=Purpose,Value=Enterprise File Storage}]'

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":"

Prueba NAKIVO Backup & Replication

Prueba NAKIVO Backup & Replication

Solicita una versión de prueba gratuita para descubrir todas las funciones de protección de datos de la solución. 15 días gratis. Sin limitaciones de funciones ni de capacidad. No es necesario facilitar un número de tarjeta de crédito.

Artículos recomendados