Cómo administrar instancias EC2 de AWS a través de la interfaz de línea de comandos de AWS

AWS proporciona una cómoda interfaz web llamada Consola de administración de AWS. Puede 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, puede utilizar la CLI de AWS para automatizar las tareas de administración de AWS y realizar operaciones masivas. Esta entrada de blog cubre la instalación de AWS CLI y los conceptos básicos de uso de esta herramienta. El post también se centra en AWS CLI EC2 comandos ilustrados con ejemplos.

NAKIVO for AWS EC2 Backup

NAKIVO for AWS EC2 Backup

Backup of Amazon EC2 instances to EC2, AWS S3 and onsite. Anti-ransomware options. Fast recovery of instances and application objects.

Qué es AWS CLI

Amazon Web Services Command Line Interface (AWS CLI) es una herramienta de línea de comandos de código abierto para la gestión de entornos en la nube de Amazon. Esta herramienta funciona mediante la integración con el shell de línea de comandos del sistema operativo en el que está instalada la CLI de AWS. Puede administrar instancias AWS EC2 con comandos AWS EC2, así como administrar volúmenes EBS, buckets S3 y otros servicios de Amazon.

La CLI de AWS se ejecuta en un shell de línea de comandos de Linux, un terminal de macOS, un símbolo del sistema de Windows (CMD) y PowerShell. Esta CLI le permite crear scripts y automatizar sus tareas.

Existen dos versiones principales de AWS CLI:

  • AWS CLI versión 1 es la versión antigua disponible para compatibilidad con versiones anteriores. Esta versión es compatible, pero es posible que las nuevas funciones no estén disponibles.
  • AWS CLI versión 2 es la última versión que soporta todas las funciones disponibles de AWS. Se recomienda instalar la última versión.

Ambas versiones utilizan el mismo comando aws para ejecutar AWS CLI. Sin embargo, hay cambios que pueden hacer que no sea posible utilizar scripts hechos para AWS CLI v1 en AWS CLI v2.

Requisitos

Veamos ahora los requisitos que debes cumplir para utilizar AWS CLI.

Requisitos generales

  • Necesita tener una cuenta de AWS y claves de acceso de AWS (AWS Access Key ID y AWS Secret Access Key).
  • Se debe instalar Python 2 versión 2.6.5+ o Python 3 versión 3.3+. AWS CLI v2 tiene una copia incrustada de Python, y no necesitas instalar Python manualmente para instalar AWS CLI v2.

Linux

  • Una herramienta para extraer archivos zip
  • glibc, groff y less deben estar instalados

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 administrar instancias de AWS 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:

  • Utilizando el instalador del paquete (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á la última versión del software. Estoy usando Ubuntu 20 en este flujo de trabajo.

Utilizar el archivo de instalación oficial

Este es el método preferido para instalar AWS CLI. Proceda como sigue:

  1. Instala curl:

apt-get install curl

  1. Descargue el archivo de instalación de la CLI de AWS:

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

  1. Extraiga los archivos de instalación del archivo descargado:

unzip awscliv2.zip

  1. Ejecute el instalador con privilegios de root:

sudo ./aws/install

  1. Una vez finalizada la instalación, comprueba la versión de la herramienta CLI de AWS instalada para asegurarte de que se ha instalado correctamente:

aws --version

Uso de los repositorios de software de Linux

AWS CLI está disponible en repositorios de software oficiales para Ubuntu. Proceda del siguiente modo:

1. Actualiza el árbol de repositorios:

sudo apt-get update

2. Instalar AWS CLI con un gestor de paquetes desde los repositorios de software de Linux:

sudo apt-get install awscli

3. Compruebe que AWS CLI se ha instalado correctamente:

aws --version

Instalación con Python PIP

Puede instalar AWS CLI como un módulo de Python utilizando un gestor de paquetes PIP de Python. Tenga en cuenta que Python PIP no está instalado por defecto en Ubuntu. Proceda de la siguiente manera para instalar como módulo 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. Instala AWS CLI usando Python PIP.

  • Usando Python 2.x PIP:

pip install awscli --upgrade --user

  • Usando Python 3.x PIP:

pip3 install awscli --upgrade --user

3. Compruebe la versión instalada.

  • En Python 2.x:

python -m awscli --version

  • En Python 3.x:

python3 -m awscli --version

Nota: Si utiliza AWS CLI instalado con Python PIP, los comandos que debe utilizar difieren del comando aws main estándar utilizado para una versión empaquetada de 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 la CLI de AWS en Windows, es necesario descargar el instalador, instalar la CLI de AWS y realizar la configuración posterior a la instalación en Windows.

Descargar el instalador

Descarga el instalador de la CLI de AWS de 64 bits utilizando uno de los siguientes enlaces y guarda el archivo en una ubicación personalizada, por ejemplo, C:\temp\

En este ejemplo uso Windows Server 2016 y descargo el archivo AWSCLIV2.msi.

Puede descargar el archivo de instalación en PowerShell con el comando:

Invoke-WebRequest -Uri https://awscli.amazonaws.com/AWSCLIV2.msi -OutFile "C:\temp\AWSCLIV2.msi"

Iniciar el instalador

Ejecute el archivo AWSCLIV2.msi descargado.

Si utiliza PowerShell, tenga en cuenta que la ubicación del archivo .msi(C:\temp\ en mi caso) y ejecute el comando:

C:\temp\AWSCLIV2.msi

Downloading the AWS CLI installer for Windows

Siga los pasos del asistente de instalación. Puede utilizar los ajustes predeterminados para la instalación. El proceso de instalación es sencillo, por lo que no repasaré cada paso del asistente.

Running the AWS CLI installation wizard

Si intenta ejecutar el comando aws --version para comprobar si AWS CLI se ha instalado correctamente, puede obtener 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 el directorio al directorio en el que está instalado AWS CLI(C:\Program Files\Amazon\AWSCLIV2 por defecto) y ejecutar AWS CLI manualmente.

cd "C:\Program Files\Amazon\AWSCLIV2"

.\aws --version

Comprobación de la versión instalada de AWS CLI después de cambiar el directorio

Configurar PATH

Añade la entrada a la variable PATH porque cambiar el directorio en la línea de comandos manualmente cada vez que necesites ejecutar comandos de la CLI de AWS no es conveniente.

Uso de la interfaz gráfica de Windows

1. Abra el Panel de control > Sistema > Ajustes avanzados del sistema y, en la pestaña Avanzadas de la ventana Propiedades del sistema, haga clic en Variables de entorno.

Configuring environment variables in Control Panel

2. En la ventana Variables de entorno, seleccione la variable PATH y haga clic en Editar. Tenga en cuenta que existen opciones para editar las variables de Usuario para el Administrador y las variables de Sistema.

Editing the PATH variable

3. En la ventana Editar variable de entorno, haga clic en Nueva.

Adding a new value to the PATH variable

4. Especifique la ruta del directorio donde está instalada la CLI de AWS y pulse Intro. En mi caso, este directorio es «C:Archivos de programa AmazonWSCLIV2».

5. Pulsa OK para guardar los ajustes y cerrar las ventanas.

Nota: es posible que tenga que volver a abrir la ventana de la consola (PowerShell o CMD) para que los cambios surtan efecto.

Uso de PowerShell

También puede editar variables de entorno en PowerShell. Siga estos pasos para añadir un valor a la variable PATH en PowerShell.

1. 1. Capture el valor del PATH original que desea modificar:

$oldpath = (Get-ItemProperty -Path 'Registry::HKEY_LOCAL_MACHINE\System\CurrentControlSet\Control\Session Manager\Environment' -Name PATH).path

2. Defina la nueva RUTA añadiendo el valor necesario. En mi caso, el valor que necesito añadir es la ruta al directorio CLI de AWS. El carácter punto y coma (;) se utiliza como separador entre valores de ruta en la variable PATH.

$newpath = "$oldpath;C:\Program Files\Amazon\AWSCLIV2"

3. Aplique el valor al Registro de Windows para que los cambios sean permanentes:

Set-ItemProperty -Path 'Registry::HKEY_LOCAL_MACHINE\System\CurrentControlSet\Control\Session Manager\Environment' -Name PATH -Value $newPath

4. Compruebe si la nueva configuración de PATH es correcta:

Get-ItemProperty -Path 'Registry::HKEY_LOCAL_MACHINE\System\CurrentControlSet\Control\Session Manager\Environment' -Name PATH

o

(Get-ItemProperty -Path 'Registry::HKEY_LOCAL_MACHINE\System\CurrentControlSet\Control\Session Manager\Environment' -Name PATH).path

Añadir el directorio de instalación de la CLI de AWS a PATH en PowerShell

Utilizar Chocolatey

Como alternativa a la descarga y ejecución del archivo de instalación MSI, puede instalar la CLI de AWS con Chocolatey, que es una herramienta de administración de software de Windows que se ejecuta en PowerShell. Chocolatey es compatible con la instalación de aplicaciones desde repositorios en línea de Windows. Ejecute este comando para instalar AWS CLI:

choco install awscli

Comprobar los resultados de la instalación

Ahora puedes ejecutar el comando aws (y los comandos relacionados de AWS EC2) desde cualquier directorio en PowerShell.

aws --version

Comprobación de la versión instalada de AWS CLI en Windows

Nota: Si tiene la versión 1 de AWS CLI y la versión 2 de AWS CLI instaladas en su sistema operativo, este ejecuta la primera establecida en la variable PATH.

Instalación de AWS CLI en macOS

Realice los siguientes pasos para instalar AWS CLI en macOS.

Vaya al directorio /tmp/, 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. Instalar 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 la CLI de AWS

Ahora debe especificar las credenciales de AWS y configurar la región y los parámetros de salida. Ejecute el siguiente comando para configurar AWS CLI. La sintaxis de los comandos de la CLI de AWS es la misma en Linux, Windows y macOS. En mi ejemplo, estoy usando Ubuntu Linux.
%e%configure

Especifique cuatro parámetros (los dos primeros son obligatorios):

  • AWS Access Key ID, que es una cadena alfanumérica de 20 caracteres. Las letras son mayúsculas.
  • Clave de acceso secreta de AWS, que es una cadena alfanumérica de 40 caracteres como un hash.
  • Nombre de la región por defecto. Seleccione este parámetro si no necesita especificar una región explícitamente cada vez que ejecute comandos en la CLI de AWS. Si necesita utilizar una región distinta de la predeterminada, puede especificar manualmente la región necesaria en un comando. Utilice --region <region_name> para este fin.
  • Formato de salida por defecto. Hay tres opciones: json, text, table, yaml, yaml-stream. Por defecto se utiliza JSON (JavaScript Object Notation). Puede seleccionar el formato necesario al ejecutar un comando concreto utilizando --output <output-format>.

The initial configuration of AWS CLI

Los archivos de configuración de la CLI de AWS se guardan en el directorio de inicio. Puede comprobar estos archivos con el comando

ls -l ~/.aws

Los ajustes de región y salida se almacenan en el archivo config. Las credenciales (AWS Access Key ID y AWS Secret Access Key) se almacenan en el archivo de credenciales.

Uso general y consejos

Vamos a familiarizarnos con las recomendaciones generales de uso y consejos para AWS CLI antes de pasar a los ejemplos prácticos de AWS CLI para EC2.

Estructura de comandos de la CLI de AWS

Puede componer un comando de la CLI de AWS de dos maneras: utilizando una línea o utilizando varias líneas.

Estructura regular

Una estructura de comandos normal supone que usted compone un comando como un comando de una sola línea.

aws [options and parameters]

Donde:

aws es el comando base para llamar al programa aws

es el comando de nivel superior que corresponde al servicio AWS apropiado, por ejemplo, EC2 o S3.

especifica la operación a realizar como obtener objeto, describir instancias, etc.

[options and parameters] especifica opciones y parámetros para la operación.

Estructura de comandos multilínea

A veces, utilizar una estructura de comandos de varias líneas puede resultar más cómodo si necesita especificar varias opciones y parámetros.

aws \

[options and parameters] \

[options and parameters]

El comando wait

Puede 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

Finalización de comandos

Activar la finalización de comandos. Completar comandos hace que la introducción de comandos sea más rápida y cómoda. Utilice este comando para activar el autocompletado en Linux:

complete -C '/usr/local/bin/aws_completer' aws

Compruebe que el autocompletado de comandos funciona:

aws s[pulse Tab]

aws e[pulse Tab]

Si el autocompletado funciona, un comando parcialmente introducido se completa automáticamente al pulsar Tab si es el único comando que empieza por los caracteres que ha tecleado. Si hay varios comandos que empiezan por los caracteres introducidos, todos estos comandos se muestran a continuación. Puede leer la lista de comandos disponibles y continuar introduciendo el comando necesario. A continuación, utilice la tecla Tab para completar el comando.

Filtros

Utilice filtros para mostrar sólo los datos necesarios. El filtrado se realiza en el lado del servidor de Amazon. Como resultado, se envían menos datos por la red y se obtienen los datos de salida más rápidamente. Los scripts, incluidos los comandos de AWS EC2 y los filtros de la CLI de AWS, funcionan más rápido.

AWS help

Utilice el comando help para mostrar los comandos y opciones disponibles.

aws help

aws help

aws help

Análisis de JSON

Utilice jqque es una utilidad ligera para procesar datos JSON.

jq es el análogo de sed para transformar el flujo de entrada pero para un formato JSON. Puede instalar jq como la herramienta de análisis JSON con el comando:

apt-get install jq

Por defecto, puede utilizar la opción incorporada --query para analizar el JSON devuelto por el comando ejecutado.

Acceso a distancia

Puede conectarse a una máquina Linux en la que esté instalada AWS CLI mediante SSH y ejecutar comandos para administrar sus servicios en la nube de Amazon.

Comandos de AWS EC2 en la CLI de AWS

Ahora que ha instalado la CLI de AWS y está familiarizado con los consejos de la CLI de AWS, puede ejecutar comandos de la CLI de AWS EC2 para ver información sobre las instancias de AWS EC2 y administrarlas. Veamos ahora ejemplos prácticos para utilizar la interfaz de línea de comandos en AWS.

Describir las instancias AWS EC2

Puede utilizar los comandos de AWS EC2 en la CLI de AWS para describir los componentes de Amazon (obtener información sobre ellos) para su cuenta sin realizar ninguna acción con ellos. Los comandos de la CLI de AWS describen instancias help permite comprobar el estado de las instancias AWS EC2, los volúmenes EBS, las imágenes de máquina de Amazon y otros componentes. También puede utilizar las funciones de supervisión.

Ejemplo 1

Empecemos por este sencillo comando para mostrar información sobre las instancias existentes de Amazon EC2:

%e%ec2 describe-instancias

Este comando devuelve datos que describen todas las instancias AWS EC2 en la salida utilizando un formato JSON (porque hemos establecido JSON como formato predeterminado anteriormente). Como resultado, tenemos una gran variedad de datos, incluidos los metadatos. Esta salida no es práctica para que la lean los usuarios, pero sí para los scripts y las aplicaciones.

Pulse la tecla de flecha abajo para desplazarse por los datos de la ventana de la consola/terminal.

Pulsa q para salir del modo visor (de forma similar a cuando utilizas menos).

An example of an AWS CLI list EC2 instances command

Ejemplo 2

Podemos mostrar la información completa sólo para una instancia utilizando el ID de instancia con el comando:

aws ec2 describir-instancias \

--instance-ids i-0201020e110607121

Ejemplo 3

Ahora vamos a comprobar los ID de instancia, sus nombres y el estado de todas las instancias disponibles en nuestra región. Podemos mostrar sólo los datos necesarios con el comando usando los filtros de la CLI de AWS y la opción --query opción. 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 como texto.

%e%ec2 describe-instancias --filters "Nombre=etiqueta:Nombre,Valores=servidor*" --query "Reservas[].Instancias[].[Etiquetas[?Clave=='Nombre'],InstanciaId,Estado.Nombre]" --output text

En comparación con la salida sin filtrar, que contiene todos los datos disponibles para todas las instancias, la salida filtrada es más cómoda y puede ser leída por los usuarios.

An example of an AWS EC2 describe instances query

Ejemplo 4

Ahora vamos a filtrar las instancias AWS EC2 una vez más y mostrar sólo las instancias con «Linux» en el nombre mediante el uso de un filtro de AWS CLI.

%e%ec2 describe-instancias --filters "Nombre=etiqueta:Nombre,Valores=*Linux*" --query "Reservations[].Instances[].[Tags[?Key=='Name'],InstanceId,State.Name]" --output text

En la captura de pantalla de abajo, se ve la salida del comando después de usar el comando con el filtro de instancias EC2. He encontrado tres instancias Linux con NAKIVO Backup & Replication Transporter instalado. El Transporter es un componente para transferir datos al realizar backups de AWS y operaciones de recuperación ante desastres de AWS.

An example of using the EC2 describe instances filter

Ejemplo 5

Puede describir instancias de determinados tipos de instancia AWS EC2. En este ejemplo, ejecuto el comando para mostrar instancias del tipo t2.micro:

aws ec2 describir-instancias \

--filters Nombre=tipo de instancia,Valores=t2.micro

Ejemplo 6

Utilice un filtro de instancias EC2 para mostrar sólo los ID de instancia.

aws ec2 describe-instancias --filters "Nombre=tipo-instancia,Valores=t2.micro" --query "Reservas[].Instancias[].InstanceId"

Lista de instancias AWS EC2 y sus ID de instancia

Ejemplo 7

Como alternativa, puede utilizar la vista de tabla para los datos de salida añadiendo la opción --output table opción. A continuación puedes ver el comando con un filtro CLI de AWS para mostrar el ID de instancia, nombre, estado y tipo de instancias AWS EC2 como una tabla.

%e%ec2 describe-instancias --output table --query "Reservas[].Instancias[].{Nombre: Etiquetas[?Clave == 'Nombre'].Valor | [0], Id: InstanceId, State: State.Name, Type: InstanceType}"

AWS lista las instancias EC2 en una tabla

Ejemplo 8

Existe otro comando para mostrar los datos de salida (ID de instancia, tipo y nombre) para instancias AWS EC2 en una vista conveniente:

%e%ec2 describe-instancias | jq -r '.Reservas[].Instancias[]|.InstanciaId+" "+.InstanciaTipo+" "+(.Etiquetas[] | select(.Clave == "Nombre").Valor)'

AWS EC2 describir instancias mediante el uso de filtros de AWS EC2

Ejemplo 9

Comprobar la dirección IP externa de una instancia en ejecución:

%e%ec2 describe-instancias --instance-ids i-0201020e110607121 --query "Reservas[].Instancias[].DirecciónIPPública"

The AWS EC2 describe instances command to display public IP addresses

Para comprobar las direcciones IP externas de varias instancias AWS EC2, defina ID de instancia para las instancias separándolas con un espacio.

Ejemplo 10

Comprueba las instancias detenidas y la razón por la que se ha detenido cada instancia con el comando que incluye el filtro de la CLI de AWS:

aws ec2 describe-instancias --filters Name=nombre-de-estado-de-instancia,Values=detenido

Hay un ejemplo alternativo:

aws ec2 describe-instances --filters Name=nombre-estado-de-instancia,Values=stopped --region eu-west-1 --output json | jq -r .Reservations[].Instances[].StateReason.Message

Ejemplo 11

Este es el comando para listar 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 como una tabla:

%e%ec2 describe-instancias --query "Reservations[*].Instances[*].{PublicIP:PublicIpAddress,PrivateIP:PrivateIpAddress,Name:Tags[?Key=='Name'] | [0].Value,Type:InstanceType,Status:State.Name,VpcId:VpcId}" --filters Name=nombre-estado-de-la-instancia,Values=running --output table

Un ejemplo del comando de la CLI de AWS describir instancias con filtros de la CLI de AWS

Iniciar instancias AWS EC2

Cuando conozca el ID de instancia, podrá iniciar la instancia de Amazon mediante los comandos de AWS EC2.

%e%ec2 start-instances --instance-ids i-1a3b5c7d9ea0c1ef0

Puede iniciar varias instancias AWS EC2 utilizando el comando AWS EC2 start instances e introduciendo sus ID de instancia separados por espacios.

%e%ec2 start-instances --instance-ids i-1a3b5c7d9ea0c1ef0 i-1a3b5c7d9ea0c1ef1 i-1a3b5c7d9ea0c1ef2

Detener instancias AWS EC2

Puede detener una o varias instancias AWS 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:

%e_x_2076 %ec2 stop-instances --instance-ids i-1a3b5c7d9ea0c1ef0

El comando de la CLI de AWS stop instance para varias (tres) instancias es el mismo, pero es necesario especificar varios ID de instancias de AWS EC2 separados por espacios:

%e%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 en la salida:

0 – pendiente

16 – en ejecución

32 – apagándose

48 – terminado

64 – deteniéndose

80 – detenido

Reiniciar instancias AWS EC2

Con el comando aws ec2 reboot-instances puede reiniciar una o varias instancias AWS EC2. La lógica de uso de este comando es la misma que para los comandos AWS CLI start instance y AWS CLI stop instance. Este es el comando para reiniciar una instancia:

%e%ec2 reboot-instances --instance-ids i-1a3b5c7d9ea0c1ef0

Este es el comando para reiniciar tres instancias:

%e%ec2 reboot-instances --instance-ids i-1a3b5c7d9ea0c1ef0 i-1a3b5c7d9ea0c1ef1 i-1a3b5c7d9ea0c1ef2

Añadir etiquetas

Las etiquetas permiten clasificar las instancias AWS EC2 e identificarlas o encontrarlas con mayor comodidad. Veamos dos comandos de AWS EC2 para trabajar con etiquetas.

Ejecute este comando para añadir una etiqueta a la instancia definiendo el ID de la instancia:

aws ec2 create-tags --resources i-1a3b5c7d9ea0c1ef0 --tags Key=Department,Value=Marketing

A continuación, puede utilizar un comando para mostrar información sobre las instancias necesarias utilizando etiquetas:

aws ec2 describe-instancias --filters "Nombre=etiqueta-clave,Valores=Nombre"

Describir volúmenes EBS

Durante el funcionamiento de las instancias de Amazon EC2, es posible que necesite consultar información sobre los volúmenes EBS, adjuntar volúmenes a instancias EC2 y desacoplarlos. A continuación puedes ver algunos ejemplos de comandos de AWS EC2 para obtener información sobre volúmenes EBS.

Ejemplo 1

Este es un comando sencillo para describir volúmenes EBS y mostrar toda la información sobre los volúmenes existentes en tu cuenta de Amazon:

%e%ec2 describe-volumes

Este comando es similar al comando AWS EC2 describe instances que usamos anteriormente. Podemos ver información detallada de todos los volúmenes disponibles en la salida. Pulse la flecha hacia abajo de su teclado para desplazarse hacia abajo y ver todos los datos. Buscar la información que necesita en este conjunto de datos no es cómodo. Utilice los filtros de la CLI de AWS para mostrar sólo los datos necesarios.

A simple AWS CLI EC2 command to describe EBS volumes

Ejemplo 2

Este es un ejemplo del comando EC2 de la CLI de AWS para mostrar los IDs de volumen de todos los volúmenes EBS:

%e%ec2 describe-volumes --output table --query 'Volumes[*].VolumeId'

Ejemplo 3

Vamos a filtrar los Volume IDs de todos los volúmenes de Amazon EBS que se encuentren en estado adjunto:

aws ec2 describe-volumes \

--query Volumes[*].Attachments[?State==`attached`].VolumeId[]'

Displaying information about EBS volumes using AWS EC2 filters

Puede 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

Puede que necesites ver volúmenes que no están adjuntos y que están en estado disponible. En este caso, utilice el comando:

aws ec2 describe-volúmenes --filters Nombre=estado,Valores=disponible --output table

Adjuntar volúmenes EBS a instancias AWS EC2

Después de obtener la información necesaria sobre las instancias AWS EC2 y los volúmenes EBS, puede adjuntar un volumen EBS a una instancia 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 siguiente ejemplo, utilizo el comando para adjuntar un volumen EBS como una unidad de disco identificada como /dev/sde en Linux huésped.

%e%ec2 attach-volume --volume-id vol-0034567890abcdef0 --instance-id i-1a3b5c7d9ea0c1ef0 --device /dev/sde

Después de adjuntar el volumen EBS a la instancia EC2, el estado del volumen cambia de «Disponible» a «Adjunto».

Operaciones con instantáneas

Las instantáneas de volúmenes EBS permiten conservar el estado del volumen y volver a ese estado en caso necesario. Este es un ejemplo del comando para crear una instantánea de un volumen EBS:

%e%ec2 create-snapshot --volume-id <your_volume_ID> --description 'Instantánea de volumen para ATA Blog a través de la CLI de AWS' --tag-specifications 'ResourceType=snapshot,Tags=[{Key=Name,Value=FileServer01},{Key=Purpose,Value=Enterprise File Storage}]'

Para mostrar los ID de instantáneas, utilice este comando:

ec2 describe-snapshots --owner self

Compruebe el estado de una instantánea con el comando:

%e%ec2 describe-snapshots --snapshot-id <your_snapshot_ID>

Si el progreso de la instantánea es del 100% y el estado es «completed», la instantánea se ha creado correctamente.

Esta información le permite seleccionar la estrategia de protección de datos adecuada. Descargue el libro blanco para obtener más información.

Describir imágenes

De forma similar a los comandos de descripción de instancias y volúmenes de AWS EC2, puede utilizar un comando para describir imágenes de máquina de Amazon. Este es un simple comando EC2 de la CLI de AWS para ver información sobre las Imágenes de Máquina de Amazon (AMI):

%e_x_2076 %ec2 describe-images

Puedes ver información sobre una imagen en particular:

%e_x_2076 %ec2 describe-images --image-ids ami-0034567890abc4140

En base a la información mostrada puedes seleccionar la AMI necesaria para crear una nueva instancia de Amazon EC2.

Lanzar nuevas instancias EC2

Puede crear (ejecutar) una nueva instancia basada en la imagen necesaria utilizando los siguientes comandos EC2 de la CLI de AWS.

Primero necesitas generar claves:

%e%ec2 create-key-pair --key-name MyKeyPair --output text > MyKeyPair.pem

Crea una nueva instancia de Amazon EC2 con el comando AWS EC2 run instances 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. Puede definir más opciones al crear una nueva instancia EC2 con el comando AWS EC2 run instances, entre las que se incluyen:

–subnet-id

–security-group-ids

–block-device-mappings

–especificaciones de etiquetas

Eliminar instancias EC2

La práctica recomendada es eliminar las instancias AWS EC2 que no se hayan utilizado durante mucho tiempo para ahorrar costes. Ten cuidado porque no puedes recuperar una instancia EC2 dada de baja. Si no está seguro de si necesitará una instancia terminada más adelante, haga una copia de seguridad de la instancia EC2 con NAKIVO Backup & Replication en un repositorio de backups local o en Amazon S3.

Puede eliminar varias instancias especificando sus ID de instancia con el comando:

%e%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 help automatizar la ejecución de un gran número de tareas similares. Los filtros de AWS EC2 le permiten configurar la salida y obtener solo los datos que necesita. Hay comandos para ver información sobre los servicios de Amazon y comandos para hacer cambios con ellos.

Para evitar errores humanos causados por una configuración incorrecta de los scripts creados con AWS CLI, se recomienda encarecidamente hacer backups de AWS EC2 con regularidad utilizando una solución dedicada de terceros.

1 Year of Free Data Protection: NAKIVO Backup & Replication

1 Year of Free Data Protection: NAKIVO Backup & Replication

Deploy in 2 minutes and protect virtual, cloud, physical and SaaS data. Backup, replication, instant recovery options.

Artículos recomendados