Uso de direcciones IP elásticas en Amazon EC2 - AWS SDK for JavaScript

Anunciamos la próxima AWS SDK for JavaScript versión end-of-support para la versión 2. Le recomendamos que migre a la AWS SDK for JavaScript versión 3. Para ver las fechas, los detalles adicionales y la información sobre cómo realizar la migración, consulte el anuncio enlazado.

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

JavaScript code example that applies to Node.js execution

Este ejemplo de código de Node.js muestra:

  • Cómo recuperar descripciones de sus direcciones IP elásticas.

  • Cómo asignar y liberar una dirección IP elástica.

  • Cómo asociar una dirección IP elástica a una instancia de Amazon EC2.

El escenario

Una dirección IP elástica es una dirección IP estática que se ha diseñado para la informática en la nube dinámica. Una dirección IP elástica se asocia a su cuenta de AWS. Se trata de una dirección IP pública a la que se puede obtener acceso desde Internet. Si la instancia no tiene una dirección IP pública, puede asociar una dirección IP elástica (EIP) a la instancia para habilitar la comunicación con Internet.

En este ejemplo, va a utilizar una serie de módulos de Node.js para realizar varias operaciones de Amazon EC2 en las que haya direcciones IP elásticas. Los módulos de Node.js usan el SDK para JavaScript para gestionar direcciones IP elásticas usando estos métodos de clase de cliente de Amazon EC2:

Para obtener más información acerca de las direcciones IP elásticas en Amazon EC2, consulte Direcciones IP elásticas en la Guía del usuario de instancias de Linux de Amazon EC2 o Direcciones IP elásticas en la Guía del usuario de instancias de Windows de Amazon EC2.

Tareas previas necesarias

Para configurar y ejecutar este ejemplo, primero debe completar las tareas siguientes:

Descripción de direcciones IP elásticas

Cree un módulo de Node.js con el nombre de archivo ec2_describeaddresses.js. Asegúrese de configurar el SDK tal y como se ha indicado anteriormente. Para acceder a Amazon EC2, cree un objeto de servicio de AWS.EC2. Cree un objeto JSON para transferirlo como parámetros como el filtro de las direcciones que devuelven las direcciones en su VPC. Para recuperar las descripciones de todas las direcciones IP elásticas, omita un filtro del JSON de parámetros. Luego llame al método describeAddresses del objeto de servicio de Amazon EC2.

// Load the AWS SDK for Node.js var AWS = require("aws-sdk"); // Set the region AWS.config.update({ region: "REGION" }); // Create EC2 service object var ec2 = new AWS.EC2({ apiVersion: "2016-11-15" }); var params = { Filters: [{ Name: "domain", Values: ["vpc"] }], }; // Retrieve Elastic IP address descriptions ec2.describeAddresses(params, function (err, data) { if (err) { console.log("Error", err); } else { console.log("Success", JSON.stringify(data.Addresses)); } });

Para ejecutar el ejemplo, escriba lo siguiente en la línea de comandos.

node ec2_describeaddresses.js

Este código de muestra se puede encontrar aquí en GitHub.

Asignación y asociación de una dirección IP elástica a una instancia de Amazon EC2

Cree un módulo de Node.js con el nombre de archivo ec2_allocateaddress.js. Asegúrese de configurar el SDK tal y como se ha indicado anteriormente. Para acceder a Amazon EC2, cree un objeto de servicio de AWS.EC2. Cree un objeto JSON para los parámetros que se utilizan para asignar una dirección IP elástica, que en este caso especifica que el Domain es una VPC. Llame al método allocateAddress del objeto de servicio de Amazon EC2.

Si la llamada se realiza correctamente, el parámetro data a la función de devolución de llamada tiene una propiedad AllocationId que identifica la dirección IP elástica asignada.

Cree un objeto JSON para los parámetros que se usan para asociar una dirección IP elástica a una instancia de Amazon EC2, incluido el AllocationId de la dirección recién asignada y el InstanceId de la instancia de Amazon EC2. Luego llame al método associateAddresses del objeto de servicio de Amazon EC2.

// Load the AWS SDK for Node.js var AWS = require("aws-sdk"); // Set the region AWS.config.update({ region: "REGION" }); // Create EC2 service object var ec2 = new AWS.EC2({ apiVersion: "2016-11-15" }); var paramsAllocateAddress = { Domain: "vpc", }; // Allocate the Elastic IP address ec2.allocateAddress(paramsAllocateAddress, function (err, data) { if (err) { console.log("Address Not Allocated", err); } else { console.log("Address allocated:", data.AllocationId); var paramsAssociateAddress = { AllocationId: data.AllocationId, InstanceId: "INSTANCE_ID", }; // Associate the new Elastic IP address with an EC2 instance ec2.associateAddress(paramsAssociateAddress, function (err, data) { if (err) { console.log("Address Not Associated", err); } else { console.log("Address associated:", data.AssociationId); } }); } });

Para ejecutar el ejemplo, escriba lo siguiente en la línea de comandos.

node ec2_allocateaddress.js

Este código de muestra se puede encontrar aquí en GitHub.

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

Cree un módulo de Node.js con el nombre de archivo ec2_releaseaddress.js. Asegúrese de configurar el SDK tal y como se ha indicado anteriormente. Para acceder a Amazon EC2, cree un objeto de servicio de AWS.EC2. Cree un objeto JSON para los parámetros que se usan para liberar una dirección IP elástica, que en este caso especifica el AllocationId de la dirección IP elástica. La liberación de una dirección IP elástica también la desvincula de cualquier instancia de Amazon EC2. Llame al método releaseAddress del objeto de servicio de Amazon EC2.

// Load the AWS SDK for Node.js var AWS = require("aws-sdk"); // Set the region AWS.config.update({ region: "REGION" }); // Create EC2 service object var ec2 = new AWS.EC2({ apiVersion: "2016-11-15" }); var paramsReleaseAddress = { AllocationId: "ALLOCATION_ID", }; // Disassociate the Elastic IP address from EC2 instance ec2.releaseAddress(paramsReleaseAddress, function (err, data) { if (err) { console.log("Error", err); } else { console.log("Address released"); } });

Para ejecutar el ejemplo, escriba lo siguiente en la línea de comandos.

node ec2_releaseaddress.js

Este código de muestra se puede encontrar aquí en GitHub.