Criar um inventário das instâncias do EC2
O Amazon EC2 fornece capacidade de computação escalável e sob demanda. Uma instância do EC2 é um servidor virtual executado na rede da AWS.
A tabela a seguir descreve as principais características de uma instância do EC2. Um administrador do sistema pode usar as orientações fornecidas neste guia para obter informações sobre essas características e usá-las na configuração de servidores com funcionalidades equivalentes executados on-premises ou na rede de outro provedor de nuvem.
| Característica | Descrição |
|---|---|
| Localização geográfica | O Amazon EC2 está hospedado em todas as regiões da AWS ao redor do mundo. Selecione locais para suas instâncias que as coloquem perto de seus clientes. Você pode inicializar instâncias em vários locais. |
| Especificações de hardware | O Amazon EC2 fornece uma ampla seleção de tipos de instância otimizadas para diferentes casos de uso. Os tipos de instância que você seleciona para as suas determinam os recursos de computação, memória, rede e armazenamento delas. |
| Imagens | Uma imagem de máquina da Amazon (AMI) inclui o software a ser instalado na instância durante a inicialização. Isso inclui o sistema operacional, os pacotes de software e as configurações personalizadas. |
| Endereços IP e nomes do host DNS | As instâncias recebem endereços IP privados e um nome do host DNS privado. Se você configurar um endereço IP público para uma instância, ela também receberá um nome do host DNS público. |
| Regras de grupos de segurança | As regras do grupo de segurança associadas às instâncias determinam qual tráfego de entrada e de saída é permitido. |
| Dados do usuário | Os dados do usuário são disponibilizados para as instâncias na inicialização. Eles consistem em scripts shell (Linux) ou scripts PowerShell (Windows). |
Localização geográfica
O Amazon EC2 está disponível em todas as regiões da AWS no mundo todo. Cada Região é uma área geográfica separada. Você pode diminuir a latência da rede ao selecionar regiões para servidores que estejam próximas à maioria dos usuários.
Você pode usar o Amazon EC2 Global View para listar as instâncias do Amazon EC2 em todas as regiões. Com o Console de gerenciamento da AWS e a API, você deve listar as instâncias de cada região individualmente.
Por que isso é importante
Depois de determinar onde as instâncias estão localizadas, você decide se deseja implantar servidores com funcionalidades equivalentes nos mesmos locais ou em locais diferentes, dependendo de suas necessidades.
Para obter um resumo das instâncias do EC2 em todas as regiões
-
Abra o console do Amazon EC2 Global View em https://console.aws.amazon.com/ec2globalview/home
. -
Na guia Explorador de regiões, em Resumo, verifique a contagem de recursos das Instâncias, o que inclui o número de instâncias e o de regiões. Clique no texto sublinhado para ver como a contagem de instâncias está distribuída entre as regiões.
-
Na guia Pesquisa global, selecione o filtro de cliente Tipo de recurso = Instância. Você pode filtrar ainda mais os resultados especificando uma região ou uma tag.
Para obter o número de instâncias do EC2 em uma região usando a AWS CLI
Use o comando describe-instances a seguir para contar as instâncias na região especificada. Você precisa executar esse comando em cada região na qual tenha instâncias.
aws ec2 describe-instances \ --regionus-east-2\ --query "length(Reservations[*].Instances[])"
O seguinte é um exemplo de saída.
27
Para obter uma lista dos IDs de instância em vez da contagem de instâncias, use o parâmetro --query a seguir.
--query "Reservations[*].Instances[].InstanceId"
Especificações de hardware
O tipo de instância especificado para uma instância do EC2 determina os recursos de computação, memória, armazenamento e rede que estão disponíveis para ela. Cada família de instâncias oferece um equilíbrio diferente entre recursos de computação, memória, rede e armazenamento. Para obter mais informações, consulte o Guia de tipos de instância do Amazon EC2.
Por que isso é importante
Depois de determinar as especificações de hardware das instâncias, você pode decidir as especificações mínimas necessárias para servidores com funcionalidades equivalentes.
Para obter um resumo dos tipos de instância usados por suas instâncias
Use o seguinte comando describe-instances. O comando sed remove linhas com colchetes e linhas vazias. Você precisa executar esse comando em cada região na qual tenha instâncias.
aws ec2 describe-instances \ --query "Reservations[*].Instances[].InstanceType" | sed 's/[][]//g;/^$/d' | sort | uniq -c | sort -nr
O seguinte é um exemplo de saída.
20 "c6i.4xlarge",
5 "t2.micro",
2 "g6e.2xlarge",
Para obter informações sobre tipos de instância específicos
Use o comando describe-instance-types para descrever os tipos de instância. O parâmetro --query inclui somente os campos especificados na saída. Essas são as características básicas. É possível exibir os campos adicionais de que você precisa ou consultar Especificações de tipos de instâncias do Amazon EC2 no Guia de tipos de instância do Amazon EC2.
aws ec2 describe-instance-types \ --instance-typesc6i.4xlarge t2.micro g6e.2xlarge\ --query "InstanceTypes[*].[InstanceType,VCpuInfo.DefaultVCpus,MemoryInfo.SizeInMiB,NetworkInfo.NetworkPerformance]" \ --output table
O seguinte é um exemplo de saída. As colunas são tipo de instância, vCPUs, memória (GiB) e largura de banda da rede (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 |
+--------------+-----+--------+----------------------+
Imagens
Uma imagem de máquina da Amazon (AMI) fornece o software que é instalado em sua instância na inicialização, como sistema operacional, serviços, ferramentas de desenvolvimento e aplicações. Você pode exportar uma AMI para outros formatos e usá-la com outros servidores.
Por que isso é importante
Depois de determinar as AMIs das instâncias, planeje as imagens necessárias para servidores com funcionalidades equivalentes. Talvez seja possível exportar suas AMIs para um formato que possa ser usado em outros lugares. Como alternativa, talvez você precise se conectar a uma instância inicializada em cada AMI, confirmar o que está instalado e como está configurado e garantir que tenha uma cópia de tudo o que precisa.
Para obter as AMIs das suas instâncias
Use o seguinte comando describe-instances. O comando sed remove linhas com colchetes e linhas vazias. Você precisa executar esse comando em cada região na qual tenha instâncias.
aws ec2 describe-instances \ --query "Reservations[*].Instances[].ImageId" | sed 's/[][]//g;/^$/d' | sort | uniq -c | sort -nr
O seguinte é um exemplo de saída.
20 "ami-0a70b9d193ae8a79",
5 "ami-07d9cf938edb0739b",
2 "ami-09245d5773578a1d6",
Para obter informações sobre AMIs específicas
Use o seguinte comando describe-images. O parâmetro --query inclui somente os campos especificados na saída. É possível incluir quaisquer campos adicionais necessários.
aws ec2 describe-images \ --image-idami-0a70b9d193ae8a79 ami-07d9cf938edb0739b ami-09245d5773578a1d6\ --query "Images[*].{ID:ImageId,CreateDate:CreationDate,Name:Name,Description:Description}"
O seguinte é um exemplo de saída.
[
{
"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"
}
]
Para criar um arquivo de VM usando uma AMI
Use o comando export-image. Os formatos de imagem compatíveis são VHD (compatível com Citrix Xen e Microsoft Hyper-V), VMDK (compatível com VMware ESX e VMware vSphere) e formato bruto (compatível com hipervisores KVM e Xen). Para obter informações sobre os requisitos e as limitações do VM Import/Export, consulte VM Import/Export Requirements.
Endereços IP e nomes do host DNS
Seus usuários se conectam às instâncias do EC2 pela internet usando nomes do host DNS públicos. O nome do host DNS público de uma instância do EC2 é resolvido no endereço IP público. As instâncias do EC2 podem se comunicar entre si usando os endereços IP privados.
Por que isso é importante
Os endereços IP permitem que dispositivos se comuniquem entre si por meio de uma rede local ou da internet. Ao observar os endereços IP e os nomes DNS das instâncias, você pode ajudar a garantir que servidores com funcionalidades equivalentes possam se comunicar com os mesmos clientes ou dispositivos que suas instâncias. Por exemplo, você pode atualizar a configuração do balanceador de carga ou os registros de DNS criados para o provedor de DNS.
Para obter os endereços IP e os nomes do host DNS das instâncias
Use o seguinte comando describe-instances. Você precisa executar esse comando em cada região na qual tenha instâncias. O parâmetro --query inclui somente os campos especificados na saída. É possível incluir quaisquer campos adicionais necessários.
aws ec2 describe-instances \ --query "Reservations[*].Instances[].[InstanceId,PrivateIpAddress,PublicDnsName]" \ --output table
O seguinte é um exemplo de saída. As colunas são ID da instância, endereço IPv4 privado e nome 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 |
+---------------------+------------+---------------------------------------------------+
Regras de grupos de segurança
Um grupo de segurança funciona como um firewall virtual. Depois de associar um grupo de segurança a uma instância do EC2, as regras permitem tráfego de entrada e saída da instância do EC2 em portas e protocolos específicos.
Por que isso é importante
Depois de determinar o tráfego de entrada permitido para chegar ao servidor e o tráfego de saída permitido para sair dele, você pode planejar as regras de firewall necessárias para servidores com funcionalidades equivalentes.
Para obter os grupos de segurança das instâncias
Use o seguinte comando describe-instances. O comando sed remove linhas com colchetes e linhas vazias. Você precisa executar esse comando em cada região na qual tenha instâncias.
aws ec2 describe-instances \ --query "Reservations[*].Instances[].SecurityGroups[].GroupId" | sed 's/[][]//g;/^$/d' | sort | uniq -c | sort -nr
O seguinte é um exemplo de saída.
27 "sg-01dd3383691d02f42",
10 "sg-08c77cc910c0b3b2c",
2 "sg-00f4e409629f1a42d",
Para obter as regras de entrada de um grupo de segurança
Use o comando describe-security-group-rules a seguir para exibir as regras do grupo de segurança especificado em que IsEgress é false.
aws ec2 describe-security-group-rules \ --filters Name=group-id,Values=sg-01dd3383691d02f42\ --query 'SecurityGroupRules[?IsEgress==`false`]'
O seguinte é um exemplo de saída. A primeira regra é a de entrada padrão, que permite tráfego de entrada proveniente de todos os recursos atribuídos a esse grupo de segurança. A outra regra permite tráfego SSH proveniente dos endereços IP na lista de prefixos especificada. Para descrever os blocos CIDR em uma lista de prefixos, use o 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"
}
]
Para obter as regras de saída de um grupo de segurança
Use o comando describe-security-group-rules a seguir para exibir as regras do grupo de segurança especificado em que IsEgress é true.
aws ec2 describe-security-group-rules \ --filters Name=group-id,Values=sg-01dd3383691d02f42\ --query 'SecurityGroupRules[?IsEgress==`true`]'
O seguinte é um exemplo de saída. Ele contém somente a regra de saída padrão, que permite todo o tráfego IPv4 de saída.
[
{
"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"
}
]
Dados do usuário
Ao inicializar uma instância do EC2, é possível transmitir um script shell para a instância usando dados do usuário. Observe que os dados do usuário são codificados em base64, portanto, é necessário decodificá-los para ler o script.
Por que isso é importante
Se você estiver executando comandos na inicialização como parte da configuração das instâncias, talvez seja necessário realizar as mesmas tarefas ao configurar servidores com funcionalidades equivalentes.
Para visualizar os dados decodificados do usuário de uma instância
Use o comando describe-instance-attribute a seguir. O comando base64 decodifica os dados do usuário.
aws ec2 describe-instance-attribute \ --instance-idi-1234567890abcdef0\ --attribute userData \ --output text \ --query "UserData.Value" | base64 --decode
O seguinte é um exemplo de saída.
#!/bin/bash
yum update -y
service httpd start
chkconfig httpd on
Recursos relacionados
Estas são as características adicionais das instâncias do EC2:
Você pode verificar se está usando os seguintes recursos para inicializar instâncias do EC2 ou distribuir o tráfego entre as instâncias do EC2: