Usar endereços IP elásticos no Amazon EC2 - AWS SDK for Java 1.x

O AWS SDK for Java 1.x chegou end-of-support em 31 de dezembro de 2025. Recomendamos que você migre para o AWS SDK for Java 2.x para 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á.

Usar endereços IP elásticos no Amazon EC2

Atenção

Estamos aposentando o EC2-Classic em 15 de agosto de 2022. É recomendável migrar do EC2-Classic para uma VPC. Consulte mais informações na publicação de blog EC2-Classic Networking is Retiring – Here's How to Prepare.

Como alocar um endereço IP elástico

Para usar um endereço IP elástico, você primeiro aloca um para sua conta e o associa à instância ou a uma interface de rede.

Para alocar um endereço IP elástico, chame o método allocateAddress do AmazonEC2Client com um objeto AllocateAddressRequest contendo o tipo de rede (EC2 ou VPC clássico).

O AllocateAddressResult retornado contém um ID de alocação que é possível usar para associar o endereço a uma instância, passando o ID de alocação e o ID de instância em um AssociateAddressRequest para o método associateAddress do AmazonEC2Client.

Importações

import com.amazonaws.services.ec2.AmazonEC2; import com.amazonaws.services.ec2.AmazonEC2ClientBuilder; import com.amazonaws.services.ec2.model.AllocateAddressRequest; import com.amazonaws.services.ec2.model.AllocateAddressResult; import com.amazonaws.services.ec2.model.AssociateAddressRequest; import com.amazonaws.services.ec2.model.AssociateAddressResult; import com.amazonaws.services.ec2.model.DomainType;

Código da

final AmazonEC2 ec2 = AmazonEC2ClientBuilder.defaultClient(); AllocateAddressRequest allocate_request = new AllocateAddressRequest() .withDomain(DomainType.Vpc); AllocateAddressResult allocate_response = ec2.allocateAddress(allocate_request); String allocation_id = allocate_response.getAllocationId(); AssociateAddressRequest associate_request = new AssociateAddressRequest() .withInstanceId(instance_id) .withAllocationId(allocation_id); AssociateAddressResult associate_response = ec2.associateAddress(associate_request);

Consulte o exemplo completo.

Descrever endereços IP elásticos

Para listar os endereços IP elásticos atribuídos à conta, chame o método describeAddresses do AmazonEC2Client. Ele retorna um DescribeAddressesResult que você pode usar para obter uma lista de objetos Address que representam os endereços IP elásticos na conta.

Importações

import com.amazonaws.services.ec2.AmazonEC2; import com.amazonaws.services.ec2.AmazonEC2ClientBuilder; import com.amazonaws.services.ec2.model.Address; import com.amazonaws.services.ec2.model.DescribeAddressesResult;

Código da

final AmazonEC2 ec2 = AmazonEC2ClientBuilder.defaultClient(); DescribeAddressesResult response = ec2.describeAddresses(); for(Address address : response.getAddresses()) { System.out.printf( "Found address with public IP %s, " + "domain %s, " + "allocation id %s " + "and NIC id %s", address.getPublicIp(), address.getDomain(), address.getAllocationId(), address.getNetworkInterfaceId()); }

Consulte o exemplo completo.

Como liberar um endereço IP elástico

Para liberar um endereço IP elástico, chame o método releaseAddress do AmazonEC2Client, passando um ReleaseAddressRequest contendo o ID de alocação do endereço IP elástico que você deseja liberar.

Importações

import com.amazonaws.services.ec2.AmazonEC2; import com.amazonaws.services.ec2.AmazonEC2ClientBuilder; import com.amazonaws.services.ec2.model.ReleaseAddressRequest; import com.amazonaws.services.ec2.model.ReleaseAddressResult;

Código da

final AmazonEC2 ec2 = AmazonEC2ClientBuilder.defaultClient(); ReleaseAddressRequest request = new ReleaseAddressRequest() .withAllocationId(alloc_id); ReleaseAddressResult response = ec2.releaseAddress(request);

Depois que você liberar um endereço IP elástico, ele será liberado para o grupo de endereços IP da AWS e poderá estar indisponível em seguida. Não se esqueça de atualizar os registros DNS e todos os servidores ou dispositivos que se comunicam com o endereço. Se tentar liberar um endereço IP elástico já liberado, você receberá um erro AuthFailure se o endereço já estiver alocado para outra Conta da AWS.

Se você estiver usando o EC2-Classic ou uma VPC padrão, liberar um endereço IP elástico o desassociará automaticamente de qualquer instância a qual esteja associada. Para desassociar um endereço IP elástico sem liberá-lo, use o método disassociateAddress do AmazonEC2Client.

Se estiver usando uma VPC não padrão, você deverá usar disassociateAddress para desassociar o endereço IP elástico antes de tentar liberá-lo. Do contrário, o Amazon EC2 retornará um erro (InvalidIPAddress.InUse).

Consulte o exemplo completo.

Mais informações