

AWS SDK for JavaScript v2가 지원 종료에 도달했습니다. [AWS SDK for JavaScript v3](https://docs.aws.amazon.com//sdk-for-javascript/v3/developer-guide/)로 마이그레이션하실 것을 권장합니다. 마이그레이션 방법에 대한 자세한 내용은 해당 [공지 사항](https://aws.amazon.com/blogs//developer/announcing-end-of-support-for-aws-sdk-for-javascript-v2/)을 참조하세요.

# Node.js에서 연결 유지를 이용해 연결 재사용
<a name="node-reusing-connections"></a>

기본적으로 기본 Node.js HTTP/HTTPS 에이전트는 모든 새 요청에 대해 새로운 TCP 연결을 생성합니다. 새 연결 설정 비용이 발생하지 않게 하려면 기존 연결을 재사용하면 됩니다.

DynamoDB 쿼리와 같은 수명이 짧은 작업의 경우, TCP 연결 설정의 대기 시간 오버헤드가 작업 자체보다 클 수 있습니다. 또한 DynamoDB [유휴 시 암호화](https://docs.aws.amazon.com/amazondynamodb/latest/developerguide/encryption.howitworks.html)는 [AWS KMS](https://docs.aws.amazon.com/amazondynamodb/latest/developerguide/encryption.howitworks.html)와 통합되므로 각 작업에 대해 새 AWS KMS 캐시 항목을 다시 설정해야 하는 데이터베이스에서 지연 시간이 발생할 수 있습니다.

TCP 연결을 재사용하도록 SDK for JavaScript를 구성하는 가장 쉬운 방법은 ` AWS_NODEJS_CONNECTION_REUSE_ENABLED` 환경 변수를 `1`로 설정하는 것입니다. 이 기능은 [2.463.0](https://github.com/aws/aws-sdk-js/blob/master/CHANGELOG.md#24630) 릴리스에 추가되었습니다.

또는 다음 예와 같이 HTTP 또는 HTTPS 에이전트의 `keepAlive` 속성을 `true`로 설정할 수 있습니다.

```
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
  }
});
```

다음 예에서는 DynamoDB 클라이언트에 대해서만 `keepAlive`를 설정하는 방법을 보여줍니다.

```
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
  }
});
```

`keepAlive`가 활성화된 경우 기본값이 1000ms인 `keepAliveMsecs`를 사용하여 TCP 연결 유지 패킷에 대한 초기 지연을 설정할 수도 있습니다. 자세한 내용은 [Node.js 설명서](https://nodejs.org/api/http.html)를 참조하세요.