Creación de un inventario de instancias de EC2 - Amazon Elastic Compute Cloud

Creación de un inventario de instancias de EC2

Amazon EC2 proporciona capacidad de computación escalable bajo demanda. Una instancia de EC2 es un servidor virtual que se ejecuta en la red de AWS.

En la siguiente tabla se describen las características clave de una instancia de EC2. Un administrador de sistemas puede utilizar la orientación proporcionada en esta guía para obtener información sobre estas características y utilizarlas para configurar servidores funcionalmente equivalentes que se ejecuten en las instalaciones o en la red de otro proveedor de servicios en la nube.

Característica Descripción
Ubicación geográfica Amazon EC2 se aloja en todas las regiones de AWS de todo el mundo. Seleccionará las ubicaciones para sus instancias que las coloquen cerca de sus clientes. Puede lanzar instancias en varias ubicaciones.
Especificaciones de hardware Amazon EC2 proporciona una amplia selección de tipos de instancias, optimizados para diferentes casos de uso. Los tipos de instancias que seleccione para sus instancias determinan sus recursos de computación, memoria, redes y almacenamiento.
Imágenes Una Imagen de máquina de Amazon (AMI) incluye el software que debe instalarse en la instancia durante el lanzamiento. Esto incluye el sistema operativo, los paquetes de software y las configuraciones personalizadas.
Direcciones IP y nombres de host de DNS Las instancias reciben direcciones IP privadas y un nombre de host de DNS privado. Si configura una dirección IP pública para una instancia, también recibirá un nombre de host de DNS público.
Reglas del grupo de seguridad Las reglas del grupo de seguridad asociadas a las instancias determinan qué tráfico entrante y saliente se permite.
Datos de usuario Los datos de usuario se ponen a disposición de las instancias cuando se lanzan. Se componen de scripts de intérprete de comandos (Linux) o scripts de PowerShell (Windows).

Ubicación geográfica

Amazon EC2 está disponible en todas las regiones de AWS de todo el mundo. Cada región de es un área geográfica independiente. Puede reducir la latencia de red si selecciona regiones para sus servidores que estén cerca de la mayoría de sus usuarios.

Puede utilizar Amazon EC2 Global View para enumerar sus instancias de Amazon EC2 en todas las regiones. Con la Consola de administración de AWS y la API, debe enumerar las instancias de cada región de forma individual.

Por qué importa

Después de determinar dónde ubicar las instancias, puede decidir si desea implementar servidores funcionalmente equivalentes en las mismas ubicaciones o en ubicaciones diferentes, en función de sus necesidades.

Obtención de un resumen de las instancias de EC2 en todas las regiones
  1. Abra la consola de Amazon EC2 Global View en https://console.aws.amazon.com/ec2globalview/home.

  2. En la pestaña Explorador de regiones, en Resumen, compruebe el recuento de recursos de Instancias, que incluye la cantidad de instancias y de regiones. Haga clic en el texto subrayado para ver cómo se distribuye el recuento de instancias entre regiones.

  3. En la pestaña Búsqueda global, seleccione el filtro de cliente Tipo de recurso = Instancia. Para filtrar aún más los resultados, puede especificar una región o una etiqueta.

Obtención del número de instancias de EC2 en una región con la AWS CLI

Utilice el siguiente comando describe-instances para contar las instancias de la región especificada. Debe ejecutar este comando en cada región en la que tenga instancias.

aws ec2 describe-instances \ --region us-east-2 \ --query "length(Reservations[*].Instances[])"

A continuación, se muestra un ejemplo del resultado.

27

Para obtener una lista de los ID de instancias en lugar del recuento de instancias, utilice el siguiente parámetro --query como alternativa.

--query "Reservations[*].Instances[].InstanceId"

Especificaciones de hardware

El tipo de instancia que especifique para una instancia de EC2 determina los recursos de computación, memoria, almacenamiento y red disponibles. Cada familia de instancias ofrece una combinación diferente de recursos de computación, memoria, red y almacenamiento. Para obtener más información, consulte la Guía de tipos de instancia de Amazon EC2.

Por qué importan

Tras determinar las especificaciones de hardware de las instancias, puede decidir las especificaciones mínimas necesarias para los servidores funcionalmente equivalentes.

Obtención de un resumen de los tipos de instancia utilizados por las instancias

Utilice el siguiente comando describe-instances. El comando sed elimina las líneas con corchetes y las líneas vacías. Debe ejecutar este comando en cada región en la que tenga instancias.

aws ec2 describe-instances \ --query "Reservations[*].Instances[].InstanceType" | sed 's/[][]//g;/^$/d' | sort | uniq -c | sort -nr

A continuación, se muestra un ejemplo del resultado.

20 "c6i.4xlarge", 5 "t2.micro", 2 "g6e.2xlarge",
Obtención de información sobre tipos de instancias específicos

Use el siguiente comando describe-instance-types para describir los tipos de instancias. El parámetro --query solo incluye los campos especificados en la salida. Estas son las características básicas. Puede incluir cualquier campo adicional que necesite o consultar las especificaciones de los tipos de instancia de Amazon EC2 en la Guía de tipos de instancia de Amazon EC2.

aws ec2 describe-instance-types \ --instance-types c6i.4xlarge t2.micro g6e.2xlarge \ --query "InstanceTypes[*].[InstanceType,VCpuInfo.DefaultVCpus,MemoryInfo.SizeInMiB,NetworkInfo.NetworkPerformance]" \ --output table

A continuación, se muestra un ejemplo del resultado. Las columnas son el tipo de instancia, las vCPU, la memoria (GiB) y el ancho de banda de la red (Gbps).

------------------------------------------------------ | DescribeInstanceTypes | +--------------+-----+--------+----------------------+ | t2.micro | 1 | 1024 | Low to Moderate | | c6i.4xlarge | 16 | 32768 | Up to 12.5 Gigabit | | g6e.2xlarge | 8 | 65536 | Up to 20 Gigabit | +--------------+-----+--------+----------------------+

Imágenes

Una Imagen de máquina de Amazon (AMI) proporciona el software que se instala en la instancia al lanzarla, como el sistema operativo, los servicios, las herramientas de desarrollo y las aplicaciones. Puede exportar una AMI a otros formatos para utilizarla con otros servidores.

Por qué importan

Después de determinar las AMI para las instancias, puede planificar las imágenes necesarias para los servidores funcionalmente equivalentes. Es posible que pueda exportar sus AMI a un formato que pueda usar en otros lugares. Como alternativa, puede que tenga que conectarse a una instancia que haya lanzado desde cada AMI, confirmar qué hay instalado y cómo está configurado, y asegurarse de tener una copia de todo lo que necesita.

Obtención de las AMI para sus instancias

Utilice el siguiente comando describe-instances. El comando sed elimina las líneas con corchetes y las líneas vacías. Debe ejecutar este comando en cada región en la que tenga instancias.

aws ec2 describe-instances \ --query "Reservations[*].Instances[].ImageId" | sed 's/[][]//g;/^$/d' | sort | uniq -c | sort -nr

A continuación, se muestra un ejemplo del resultado.

20 "ami-0a70b9d193ae8a79", 5 "ami-07d9cf938edb0739b", 2 "ami-09245d5773578a1d6",
Obtención de información sobre AMI específicas

Utilice el siguiente comando describe-images. El parámetro --query solo incluye los campos especificados en la salida. Puede incluir cualquier campo adicional que necesite.

aws ec2 describe-images \ --image-id ami-0a70b9d193ae8a79 ami-07d9cf938edb0739b ami-09245d5773578a1d6 \ --query "Images[*].{ID:ImageId,CreateDate:CreationDate,Name:Name,Description:Description}"

A continuación, se muestra un ejemplo del resultado.

[ { "ID": "ami-0a70b9d193ae8a799", "CreateDate": "2025-03-01T02:22:41.000Z", "Name": "web-server-3.1", "Description": "Image for web servers" }, { "ID": "ami-07d9cf938edb0739b", "CreateDate": "2025-02-01T23:59:03.000Z", "Name": "awesome-application-11.5", "Description": "Image for Awesome Application" }, { "ID": "ami-09245d5773578a1d6", "CreateDate": "2025-01-31T02:22:41.000Z", "Name": "monitoring-4.2", "Description": "Monitoring software" } ]
Creación de un archivo de VM a partir de una AMI

Utilice el comando export-image. Los formatos de imagen compatibles son VHD (compatible con Citrix Xen y Microsoft Hyper-V), VMDK (compatible con VMware ESX y VMware vSphere) y formato sin procesar (compatible con los hipervisores KVM y Xen). Para obtener información sobre los requisitos y limitaciones de VM Import/Export, consulte VM Import/Export requirements.

Direcciones IP y nombres de host de DNS

Los usuarios se conectan a las instancias de EC2 a través de Internet con sus nombres de host de DNS públicos. El nombre de host de DNS público de una instancia de EC2 se resuelve en su dirección IP pública. Las instancias de EC2 pueden comunicarse entre sí a través de la dirección IP privada.

Por qué importan

Las direcciones IP permiten a los dispositivos comunicarse entre sí a través de una red local o Internet. Al anotar las direcciones IP y los nombres de DNS de sus instancias, puede garantizar que los servidores funcionalmente equivalentes puedan comunicarse con los mismos clientes o dispositivos que sus instancias. Por ejemplo, puede actualizar la configuración del equilibrador de carga o los registros de DNS que creó para su proveedor de DNS.

Obtención de las direcciones IP y los nombres de host de DNS de sus instancias

Utilice el siguiente comando describe-instances. Debe ejecutar este comando en cada región en la que tenga instancias. El parámetro --query solo incluye los campos especificados en la salida. Puede incluir cualquier campo adicional que necesite.

aws ec2 describe-instances \ --query "Reservations[*].Instances[].[InstanceId,PrivateIpAddress,PublicDnsName]" \ --output table

A continuación, se muestra un ejemplo del resultado. Las columnas son el ID de la instancia, la dirección IPv4 privada y el nombre de DNS IPv4 público.

---------------------------------------------------------------------------------------- | DescribeInstances | +---------------------+------------+---------------------------------------------------+ | i-0bac57d7472c89bac | 10.0.2.139 | ec2-192-0-2-142.us-east-2.compute.amazonaws.com | | i-0fa8b7678975a3fff | 10.0.14.85 | ec2-198-51-100-56.us-east-2.compute.amazonaws.com | ... ... | i-08fd74f3f1595fdbd | 10.0.1.241 | ec2-203.0.113.13.us-east-2.compute.amazonaws.com | +---------------------+------------+---------------------------------------------------+

Reglas del grupo de seguridad

Un grupo de seguridad actúa como un firewall virtual. Después de asociar un grupo de seguridad a una instancia de EC2, sus reglas permiten el tráfico de entrada y salida para la instancia de EC2 a través de puertos y protocolos específicos.

Por qué importan

Tras determinar el tráfico entrante que puede llegar al servidor y el tráfico saliente que puede salir del servidor, puede planificar las reglas de firewall necesarias para los servidores funcionalmente equivalentes.

Obtención de los grupos de seguridad de una instancia

Utilice el siguiente comando describe-instances. El comando sed elimina las líneas con corchetes y las líneas vacías. Debe ejecutar este comando en cada región en la que tenga instancias.

aws ec2 describe-instances \ --query "Reservations[*].Instances[].SecurityGroups[].GroupId" | sed 's/[][]//g;/^$/d' | sort | uniq -c | sort -nr

A continuación, se muestra un ejemplo del resultado.

27 "sg-01dd3383691d02f42", 10 "sg-08c77cc910c0b3b2c", 2 "sg-00f4e409629f1a42d",
Obtención de las reglas de entrada de un grupo de seguridad

Utilice el siguiente comando describe-security-group-rules para mostrar las reglas del grupo de seguridad especificado, donde IsEgress es false.

aws ec2 describe-security-group-rules \ --filters Name=group-id,Values=sg-01dd3383691d02f42 \ --query 'SecurityGroupRules[?IsEgress==`false`]'

A continuación, se muestra un ejemplo del resultado. La primera regla es la regla de entrada predeterminada, que permite el tráfico entrante procedente de todos los recursos asignados a este grupo de seguridad. La otra regla permite el tráfico SSH procedente de las direcciones IP de la lista de prefijos especificada. Para describir los bloques de CIDR de una lista de prefijos, utilice el comando describe-prefix-lists.

[ { "SecurityGroupRuleId": "sgr-06c8b42574a91db1b", "GroupId": "sg-01dd3383691d02f42", "GroupOwnerId": "123456789012", "IsEgress": false, "IpProtocol": "-1", "FromPort": -1, "ToPort": -1, "ReferencedGroupInfo": { "GroupId": "sg-01dd3383691d02f42", "UserId": "123456789012" }, "Tags": [], "SecurityGroupRuleArn": "arn:aws:ec2:us-west-2:123456789012:security-group-rule/sgr-06c8b42574a91db1b" }, { "SecurityGroupRuleId": "sgr-0886a5d46afcd1758", "GroupId": "sg-01dd3383691d02f42", "GroupOwnerId": "123456789012", "IsEgress": false, "IpProtocol": "tcp", "FromPort": 22, "ToPort": 22, "PrefixListId": "pl-f8a6439125e7bf465", "Tags": [], "SecurityGroupRuleArn": "arn:aws:ec2:us-east-2:123456789012:security-group-rule/sgr-0886a5d46afcd1758" } ]
Obtención de las reglas de salida de un grupo de seguridad

Utilice el siguiente comando describe-security-group-rules para mostrar las reglas del grupo de seguridad especificado, donde IsEgress es true.

aws ec2 describe-security-group-rules \ --filters Name=group-id,Values=sg-01dd3383691d02f42 \ --query 'SecurityGroupRules[?IsEgress==`true`]'

A continuación, se muestra un ejemplo del resultado. Contiene solo la regla de salida predeterminada, que permite todo el tráfico IPv4 saliente.

[ { "SecurityGroupRuleId": "sgr-048f09a719247dce7", "GroupId": "sg-01dd3383691d02f42", "GroupOwnerId": "123456789012", "IsEgress": true, "IpProtocol": "-1", "FromPort": -1, "ToPort": -1, "CidrIpv4": "0.0.0.0/0", "Tags": [], "SecurityGroupRuleArn": "arn:aws:ec2:us-east-2:123456789012:security-group-rule/sgr-048f09a719247dce7" } ]

Datos de usuario

Cuando se lanza una instancia de Amazon EC2, puede transferir un script de intérprete de comandos a la instancia con los datos de usuario. Tenga en cuenta que los datos de usuario están codificados en base64, por lo que debe decodificarlos para leer el script.

Por qué importa

Si está ejecutando comandos en el momento del lanzamiento como parte de la configuración de sus instancias, es posible que tenga que llevar a cabo las mismas tareas al configurar servidores funcionalmente equivalentes.

Visualización de los datos de usuario decodificados de una instancia

Utilice el siguiente comando describe-instance-attribute. El comando base64 decodifica los datos de usuario.

aws ec2 describe-instance-attribute \ --instance-id i-1234567890abcdef0 \ --attribute userData \ --output text \ --query "UserData.Value" | base64 --decode

A continuación, se muestra un ejemplo del resultado.

#!/bin/bash yum update -y service httpd start chkconfig httpd on

A continuación se muestran las características adicionales de las instancias de EC2:

Puede verificar si está utilizando lo siguiente para lanzar instancias de EC2 o distribuir el tráfico entre sus instancias de EC2: