

La versión 2 de AWS SDK para JavaScript ha llegado al final del soporte. Se recomienda que migre a [AWS SDK para JavaScript v3](https://docs.aws.amazon.com//sdk-for-javascript/v3/developer-guide/). Para ver detalles e información adicionales sobre cómo realizar la migración, consulte este [anuncio](https://aws.amazon.com/blogs//developer/announcing-end-of-support-for-aws-sdk-for-javascript-v2/).

# Reutilización de conexiones con Keep-Alive en Node.js
<a name="node-reusing-connections"></a>

De forma predeterminada, el agente HTTP/HTTPS predeterminado de Node.js crea una nueva conexión TCP para cada nueva solicitud. Para evitar el costo que supone establecer una nueva conexión, puede reutilizar una conexión existente.

En el caso de las operaciones de corta duración, como las consultas de DynamoDB, la sobrecarga en latencia de la configuración de una conexión TCP puede ser mayor que la propia operación. Además, dado que el [cifrado en reposo](https://docs.aws.amazon.com/amazondynamodb/latest/developerguide/encryption.howitworks.html) de DynamoDB está integrado con [AWS KMS](https://docs.aws.amazon.com/amazondynamodb/latest/developerguide/encryption.howitworks.html), pueden producirse latencias desde la base de datos al tener que restablecer nuevas entradas de caché de AWS KMS para cada operación.

La forma más fácil de configurar SDK para JavaScript para que reutilice las conexiones TCP es establecer la variable de entorno ` AWS_NODEJS_CONNECTION_REUSE_ENABLED` en `1`. Esta característica se añadió en la versión [2.463.0](https://github.com/aws/aws-sdk-js/blob/master/CHANGELOG.md#24630).

También puede definir la propiedad `keepAlive` de un agente HTTP o HTTPS establecido en `true`, tal y como se muestra en el siguiente ejemplo.

```
const AWS = require('aws-sdk');
// http or https
const http = require('http');
const agent = new http.Agent({
  keepAlive: true, 
// Infinity is read as 50 sockets
  maxSockets: Infinity
});

AWS.config.update({
  httpOptions: {
    agent
  }
});
```

En el siguiente ejemplo, se muestra cómo se establece `keepAlive` únicamente para un cliente de DynamoDB:

```
const AWS = require('aws-sdk')
// http or https
const https = require('https');
const agent = new https.Agent({
  keepAlive: true
});

const dynamodb = new AWS.DynamoDB({
  httpOptions: {
    agent
  }
});
```

Si `keepAlive` está habilitado, también puede establecer el retraso inicial de los paquetes TCP Keep-Alive con `keepAliveMsecs`, que de forma predeterminada es 1000ms. Consulte la [documentación de Node.js](https://nodejs.org/api/http.html) para obtener más detalles.