Esta documentação é somente para a versão 1 da AWS CLI. Para obter a documentação relacionada à AWS CLI versão 2, consulte o Guia do usuário da versão 2.
Você pode usar a AWS Command Line Interface (AWS CLI) para iniciar, listar e excluir instâncias do Amazon Elastic Compute Cloud (Amazon EC2). Se iniciar uma instância que não esteja no nível gratuito da AWS, você será cobrado depois de iniciar a instância e cobrado pelo tempo que a instância estiver em execução, mesmo que ela permaneça inativa.
nota
Para obter exemplos de outros comandos, consulte o AWS CLIGuia de referência da .
Tópicos
Pré-requisitos
Para executar os comandos ec2
neste tópico, você precisa:
Instale e configure a AWS CLI. Para ter mais informações, consulte Instalar, atualizar e desinstalar a AWS CLI e Autenticação e credenciais de acesso para a AWS CLI.
-
Defina suas permissões do IAM para permitir acesso ao Amazon EC2. Para obter mais informações sobre permissões do IAM para Amazon EC2, consulte Políticas do IAM para Amazon EC2 no Guia do usuário do Amazon EC2.
-
Crie um par de chaves e um grupo de segurança.
-
Selecione uma Imagem de máquina da Amazon (AMI) e anote o ID da AMI. Para obter mais informações, consulte Descobrir uma AMI adequada no Guia do usuário do Amazon EC2.
Executar sua instância
Para iniciar uma instância do Amazon EC2 usando a AMI selecionada, use o comando aws ec2
run-instances
. É possível iniciar a instância em uma nuvem privada virtual (VPC).
Inicialmente, a instância será exibida no estado pending
, mas mudará para o estado running
depois de alguns minutos.
O exemplo a seguir mostra como iniciar uma instância t2.micro
na sub-rede especificada de uma VPC. Substitua os valores dos parâmetros em itálico
pelos seus próprios.
$
aws ec2 run-instances --image-id
ami-xxxxxxxx
--count 1 --instance-type t2.micro --key-nameMyKeyPair
--security-group-idssg-903004f8
--subnet-idsubnet-6e7f829e
{ "OwnerId": "123456789012", "ReservationId": "r-5875ca20", "Groups": [ { "GroupName": "my-sg", "GroupId": "sg-903004f8" } ], "Instances": [ { "Monitoring": { "State": "disabled" }, "PublicDnsName": null, "Platform": "windows", "State": { "Code": 0, "Name": "pending" }, "EbsOptimized": false, "LaunchTime": "2013-07-19T02:42:39.000Z", "PrivateIpAddress": "10.0.1.114", "ProductCodes": [], "VpcId": "vpc-1a2b3c4d", "InstanceId": "i-5203422c", "ImageId": "ami-173d747e", "PrivateDnsName": "ip-10-0-1-114.ec2.internal", "KeyName": "MyKeyPair", "SecurityGroups": [ { "GroupName": "my-sg", "GroupId": "sg-903004f8" } ], "ClientToken": null, "SubnetId": "subnet-6e7f829e", "InstanceType": "t2.micro", "NetworkInterfaces": [ { "Status": "in-use", "SourceDestCheck": true, "VpcId": "vpc-1a2b3c4d", "Description": "Primary network interface", "NetworkInterfaceId": "eni-a7edb1c9", "PrivateIpAddresses": [ { "PrivateDnsName": "ip-10-0-1-114.ec2.internal", "Primary": true, "PrivateIpAddress": "10.0.1.114" } ], "PrivateDnsName": "ip-10-0-1-114.ec2.internal", "Attachment": { "Status": "attached", "DeviceIndex": 0, "DeleteOnTermination": true, "AttachmentId": "eni-attach-52193138", "AttachTime": "2013-07-19T02:42:39.000Z" }, "Groups": [ { "GroupName": "my-sg", "GroupId": "sg-903004f8" } ], "SubnetId": "subnet-6e7f829e", "OwnerId": "123456789012", "PrivateIpAddress": "10.0.1.114" } ], "SourceDestCheck": true, "Placement": { "Tenancy": "default", "GroupName": null, "AvailabilityZone": "us-west-2b" }, "Hypervisor": "xen", "BlockDeviceMappings": [ { "DeviceName": "/dev/sda1", "Ebs": { "Status": "attached", "DeleteOnTermination": true, "VolumeId": "vol-877166c8", "AttachTime": "2013-07-19T02:42:39.000Z" } } ], "Architecture": "x86_64", "StateReason": { "Message": "pending", "Code": "pending" }, "RootDeviceName": "/dev/sda1", "VirtualizationType": "hvm", "RootDeviceType": "ebs", "Tags": [ { "Value": "MyInstance", "Key": "Name" } ], "AmiLaunchIndex": 0 } ] }
Adicionar um dispositivo de blocos à instância
Cada instância lançada tem um volume do dispositivo root associados. Use o mapeamento de dispositivos de blocos para especificar volumes adicionais do Amazon Elastic Block Store (Amazon EBS) ou volumes de armazenamento de instâncias para anexar a uma instância quando ela for iniciada.
Para adicionar um dispositivo de blocos em sua instância, especifique a opção --block-device-mappings
ao usar run-instances
.
O exemplo de parâmetro a seguir provisiona um volume do Amazon EBS padrão de 20 GB e o mapeia em sua instância usando o identificador /dev/sdf
.
--block-device-mappings "[{\"DeviceName\":\"
/dev/sdf
\",\"Ebs\":{\"VolumeSize\":20
,\"DeleteOnTermination\":false}}]"
O exemplo a seguir adiciona um volume do Amazon EBS mapeado em /dev/sdf
com base em um snapshot existente. Um snapshot representa uma imagem que é carregada no volume para você. Ao especificar um snapshot, não é necessário especificar um tamanho de volume; ele será grande o suficiente para armazenar sua imagem. No entanto, se você especificar um tamanho, ele deverá ser maior que ou igual ao tamanho do snapshot.
--block-device-mappings "[{\"DeviceName\":\"
/dev/sdf
\",\"Ebs\":{\"SnapshotId\":\"snap-a1b2c3d4
\"}}]"
O exemplo a seguir adiciona dois volumes à sua instância. O número de volumes disponíveis para sua instância depende do seu tipo de instância.
--block-device-mappings "[{\"DeviceName\":\"
/dev/sdf
\",\"VirtualName\":\"ephemeral0
\"},{\"DeviceName\":\"/dev/sdg
\",\"VirtualName\":\"ephemeral1
\"}]"
O exemplo a seguir cria o mapeamento (/dev/sdj
), mas não provisiona um volume para a instância.
--block-device-mappings "[{\"DeviceName\":\"
/dev/sdj
\",\"NoDevice\":\"\"}]"
Para obter mais informações, consulte Mapeamento de dispositivos de blocos no Guia do usuário do Amazon EC2.
Adicionar uma etiqueta à instância
Uma etiqueta é um rótulo atribuído a um recurso da AWS. Permite adicionar metadados aos seus recursos que você pode usar para diversas finalidades. Para obter mais informações, consulte Marcar seus recursos no Guia do usuário do Amazon EC2.
O exemplo a seguir mostra como adicionar uma etiqueta com o nome da chave “Name
” e o valor “MyInstance
” à instância especificada com o comando aws ec2
create-tags
.
$
aws ec2 create-tags --resources
i-5203422c
--tags Key=Name
,Value=MyInstance
Conecte-se à sua instância
Durante a execução da instância, é possível se conectar a ela e usá-la da mesma forma que você usaria um computador. Para obter mais informações, consulte Conectar-se à instância do Linux usando SSH no Guia do usuário do Amazon EC2.
Listar as instâncias
Use o AWS CLI para listar suas instâncias e visualizar informações sobre elas. Liste todas as suas instâncias, ou filtre os resultados de acordo com as instâncias de interesse.
Os exemplos a seguir mostram como usar o comando aws ec2
describe-instances
.
O comando a seguir relaciona todas as suas instâncias.
$
aws ec2 describe-instances
O comando a seguir filtra a lista apenas para suas instâncias t2.micro
e mostra apenas os valores InstanceId
para cada correspondência.
$
aws ec2 describe-instances --filters "Name=instance-type,Values=t2.micro" --query "Reservations[].Instances[].InstanceId"
[ "i-05e998023d9c69f9a" ]
O comando a seguir lista todas as suas instâncias que tem a etiqueta Name=MyInstance
.
$
aws ec2 describe-instances --filters "Name=tag:
Name
,Values=MyInstance
"
O comando a seguir relaciona as instâncias que foram executadas usando qualquer uma das seguintes AMIs: ami-x0123456
, ami-y0123456
e ami-z0123456
.
$
aws ec2 describe-instances --filters "Name=image-id,Values=
ami-x0123456
,ami-y0123456
,ami-z0123456
"
Excluir sua instância
O encerramento de uma instância significa excluí-la. Você não pode se reconectar com uma instância depois de tê-la encerrado.
Assim que o estado da instância de mudar para shutting-down
ou para terminated
, não há mais custos para essa instância. Se você desejar se reconectar a ela mais tarde, use stop-instances em vez de terminate-instances
. Para obter mais informações, consulte Encerramento de instâncias no Guia do usuário do Amazon EC2.
Para excluir uma instância, use o comando aws ec2
terminate-instances
.
$
aws ec2 terminate-instances --instance-ids
i-5203422c
{ "TerminatingInstances": [ { "InstanceId": "i-5203422c", "CurrentState": { "Code": 32, "Name": "shutting-down" }, "PreviousState": { "Code": 16, "Name": "running" } } ] }
Referências
Referência da AWS CLI:
Outra referência:
-
Para visualizar e contribuir para o SDK da AWS e exemplos de código da AWS CLI, consulte o Repositório de exemplos de código da AWS
no GitHub.