Uso de direcciones IP elásticas en Amazon EC2 - AWS SDK for Java 1.x

La AWS SDK for Java 1.x se alcanzó end-of-support el 31 de diciembre de 2025. Le recomendamos que migre a AWS SDK for Java 2.x para seguir recibiendo nuevas características, mejoras de disponibilidad y actualizaciones de seguridad.

Las traducciones son generadas a través de traducción automática. En caso de conflicto entre la traducción y la version original de inglés, prevalecerá la version en inglés.

Uso de direcciones IP elásticas en Amazon EC2

aviso

Vamos a retirar EC2-Classic el 15 de agosto de 2022. Le recomendamos que migre de EC2-Classic a una VPC. Para obtener más información, consulte la entrada del blog EC2-Classic-Classic Networking is Retiring – Here's How to Prepare.

Asignación de una dirección IP elástica

Para utilizar una dirección IP elástica, primero asigne una a su cuenta y, a continuación, asóciela a su instancia o a una interfaz de red.

Para asignar una dirección IP elástica, llame al método allocateAddress del cliente AmazonEC2Client con un objeto AllocateAddressRequest que contenga el tipo de red (EC2 clásico o VPC).

El AllocateAddressResult devuelto contiene un ID de asignación que puede utilizar para asociar la dirección a una instancia, pasando el ID de asignación y el ID de instancia en un objeto AssociateAddressRequest al método associateAddress de AmazonEC2Client.

Importaciones

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 de

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 el ejemplo completo

Descripción de direcciones IP elásticas

Para listar las direcciones IP elásticas asignadas a su cuenta, llame al método describeAddresses de AmazonEC2Client. Este método devuelve un objeto DescribeAddressesResult que puede utilizar para obtener una lista de objetos Address que representan las direcciones IP elásticas de su cuenta.

Importaciones

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 de

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 el ejemplo completo

Liberación de una dirección IP elástica

Para liberar una dirección IP elástica, llame al método releaseAddress de AmazonEC2Client pasando un objeto ReleaseAddressRequest que contenga el ID de asignación de la dirección IP elástica que quiere liberar.

Importaciones

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 de

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

Tras liberar una dirección IP elástica, esta se libera del grupo de direcciones IP de AWS y puede que no esté disponible para usarla más adelante. Asegúrese de actualizar sus registros DNS y los servidores o dispositivos que se comunican con la dirección. Si intenta liberar una dirección IP elástica que ya ha liberado, obtendrá un error AuthFailure si la dirección ya se ha asignado a otra cuenta de Cuenta de AWS.

Si utiliza EC2-Classic o una VPC predeterminada, al liberar una dirección IP elástica esta se desvincula automáticamente de cualquier instancia a la que esté asociada. Para desvincular una dirección IP elástica sin liberarla, utilice el método disassociateAddress de AmazonEC2Client.

Si utiliza una VPC distinta de la predeterminada, debe usar disassociateAddress para desvincular la dirección IP elástica antes de intentar liberarla. De lo contrario, Amazon EC2 devuelve un error (InvalidIPAddress.InUse).

Consulte el ejemplo completo

Más información