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

LaAWS SDK for JavaScript versión 3 (v3) es una reescritura de la versión 2 con algunas funciones nuevas y excelentes, incluida la arquitectura modular. Para obtener más información, consulte la Guía para desarrolladores de la versiónAWS SDK for JavaScript 3.

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 suAWSaccount. 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 de en las que haya direcciones IP elásticas. Los módulos de Node.js usan el SDK para JavaScript para administrar direcciones IP elásticas mediante estos métodos de la clase de cliente de Amazon EC2:

Para obtener más información acerca de direcciones IP elásticas en Amazon EC2, consulteDirecciones IP elásticasen laGuía del usuario de Amazon EC2 para instancias de LinuxoDirecciones IP elásticasen laGuía del usuario de Amazon EC2 para instancias de Windows.

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 unAWS.EC2objeto de servicio. 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. A continuación, llama adescribeAddressesdel objeto de servicio 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 con 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 unAWS.EC2objeto de servicio. 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 aallocateAddressdel objeto de servicio 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, como elAllocationIdde la dirección recién asignada y elInstanceIdde la instancia Amazon EC2. A continuación, llama aassociateAddressesdel objeto de servicio 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 unAWS.EC2objeto de servicio. 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 areleaseAddressdel objeto de servicio 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.