Gerenciar instâncias do Amazon EC2 - AWS SDK for Java 1.x

O AWS SDK for Java 1.x entrou no modo de manutenção em 31 de julho de 2024 e chegará end-of-supportem 31 de dezembro de 2025. Recomendamos que você migre para o AWS SDK for Java 2.xpara continuar recebendo novos recursos, melhorias de disponibilidade e atualizações de segurança.

As traduções são geradas por tradução automática. Em caso de conflito entre o conteúdo da tradução e da versão original em inglês, a versão em inglês prevalecerá.

Gerenciar instâncias do Amazon EC2

Criar uma instância

Crie uma instância do Amazon EC2 chamando o método runInstances do AmazonEC2Client, fornecendo um RunInstancesRequest contendo a imagem de máquina da Amazon (AMI) a ser usada e um tipo de instância.

Importações

import com.amazonaws.services.ec2.AmazonEC2ClientBuilder; import com.amazonaws.services.ec2.model.InstanceType; import com.amazonaws.services.ec2.model.RunInstancesRequest; import com.amazonaws.services.ec2.model.RunInstancesResult; import com.amazonaws.services.ec2.model.Tag;

Código

RunInstancesRequest run_request = new RunInstancesRequest() .withImageId(ami_id) .withInstanceType(InstanceType.T1Micro) .withMaxCount(1) .withMinCount(1); RunInstancesResult run_response = ec2.runInstances(run_request); String reservation_id = run_response.getReservation().getInstances().get(0).getInstanceId();

Consulte o exemplo completo.

Iniciar uma instância

Para iniciar uma instância do Amazon EC2, chame o método startInstances do AmazonEC2Client, fornecendo um StartInstancesRequest contendo o ID da instância para iniciar.

Importações

import com.amazonaws.services.ec2.AmazonEC2; import com.amazonaws.services.ec2.AmazonEC2ClientBuilder; import com.amazonaws.services.ec2.model.StartInstancesRequest;

Código

final AmazonEC2 ec2 = AmazonEC2ClientBuilder.defaultClient(); StartInstancesRequest request = new StartInstancesRequest() .withInstanceIds(instance_id); ec2.startInstances(request);

Consulte o exemplo completo.

Interromper uma instância

Para interromper uma instância do Amazon EC2, chame o método stopInstances do AmazonEC2Client, fornecendo um StopInstancesRequest contendo o ID da instância para interromper.

Importações

import com.amazonaws.services.ec2.AmazonEC2; import com.amazonaws.services.ec2.AmazonEC2ClientBuilder; import com.amazonaws.services.ec2.model.StopInstancesRequest;

Código

final AmazonEC2 ec2 = AmazonEC2ClientBuilder.defaultClient(); StopInstancesRequest request = new StopInstancesRequest() .withInstanceIds(instance_id); ec2.stopInstances(request);

Consulte o exemplo completo.

Como reinicializar uma instância

Para reinicializar uma instância do Amazon EC2, chame o método rebootInstances do AmazonEC2Client, fornecendo um RebootInstancesRequest contendo o ID da instância para reinicializar.

Importações

import com.amazonaws.services.ec2.AmazonEC2; import com.amazonaws.services.ec2.AmazonEC2ClientBuilder; import com.amazonaws.services.ec2.model.RebootInstancesRequest; import com.amazonaws.services.ec2.model.RebootInstancesResult;

Código

final AmazonEC2 ec2 = AmazonEC2ClientBuilder.defaultClient(); RebootInstancesRequest request = new RebootInstancesRequest() .withInstanceIds(instance_id); RebootInstancesResult response = ec2.rebootInstances(request);

Consulte o exemplo completo.

Descrever instâncias

Para listar as instâncias, crie um DescribeInstancesRequest e chame o método describeInstances do AmazonEC2Client. Isso retornará um objeto DescribeInstancesResult que você pode usar para listar as instâncias do Amazon EC2 para a conta e a região.

As instâncias são agrupadas por reserva. Cada reserva corresponde à chamada a startInstances que iniciou a instância. Para listar as instâncias, você deve primeiro chamar a classe DescribeInstancesResult getReservations' method, and then call `getInstances em cada objeto Reservation retornado.

Importações

import com.amazonaws.services.ec2.AmazonEC2; import com.amazonaws.services.ec2.AmazonEC2ClientBuilder; import com.amazonaws.services.ec2.model.DescribeInstancesRequest; import com.amazonaws.services.ec2.model.DescribeInstancesResult; import com.amazonaws.services.ec2.model.Instance; import com.amazonaws.services.ec2.model.Reservation;

Código

final AmazonEC2 ec2 = AmazonEC2ClientBuilder.defaultClient(); boolean done = false; DescribeInstancesRequest request = new DescribeInstancesRequest(); while(!done) { DescribeInstancesResult response = ec2.describeInstances(request); for(Reservation reservation : response.getReservations()) { for(Instance instance : reservation.getInstances()) { System.out.printf( "Found instance with id %s, " + "AMI %s, " + "type %s, " + "state %s " + "and monitoring state %s", instance.getInstanceId(), instance.getImageId(), instance.getInstanceType(), instance.getState().getName(), instance.getMonitoring().getState()); } } request.setNextToken(response.getNextToken()); if(response.getNextToken() == null) { done = true; } }

Os resultados são paginados. É possível obter mais resultados passando o valor retornado do método getNextToken do objeto resultante para o método setNextToken do objeto de solicitação original e usando o mesmo objeto de solicitação na próxima chamada para describeInstances.

Consulte o exemplo completo.

Monitorar uma instância

Você pode monitorar diversos aspectos das instâncias do Amazon EC2, como utilização de CPU e rede, memória disponível e espaço em disco restante. Para saber mais sobre monitoramento de instância, consulte Monitoramento do Amazon EC2 no Guia do Usuário do Amazon EC2 para instâncias do Linux.

Para iniciar o monitoramento de uma instância, você deve criar um MonitorInstancesRequest com o ID da instância para monitorar e passá-lo para o método monitorInstances do AmazonEC2Client.

Importações

import com.amazonaws.services.ec2.AmazonEC2; import com.amazonaws.services.ec2.AmazonEC2ClientBuilder; import com.amazonaws.services.ec2.model.MonitorInstancesRequest;

Código

final AmazonEC2 ec2 = AmazonEC2ClientBuilder.defaultClient(); MonitorInstancesRequest request = new MonitorInstancesRequest() .withInstanceIds(instance_id); ec2.monitorInstances(request);

Consulte o exemplo completo.

Interromper monitoramento de instâncias

Para interromper o monitoramento de uma instância, crie um UnmonitorInstancesRequest com o ID da instância para interromper o monitoramento e passá-lo para o método unmonitorInstances do AmazonEC2Client.

Importações

import com.amazonaws.services.ec2.AmazonEC2; import com.amazonaws.services.ec2.AmazonEC2ClientBuilder; import com.amazonaws.services.ec2.model.UnmonitorInstancesRequest;

Código

final AmazonEC2 ec2 = AmazonEC2ClientBuilder.defaultClient(); UnmonitorInstancesRequest request = new UnmonitorInstancesRequest() .withInstanceIds(instance_id); ec2.unmonitorInstances(request);

Consulte o exemplo completo.

Mais informações