곧 AWS SDK for JavaScript(v2)에 대한 지원이 종료될 예정임을 알려드립니다
Node.js에서 연결 유지를 이용해 연결 재사용
기본적으로 기본 Node.js HTTP/HTTPS 에이전트는 모든 새 요청에 대해 새로운 TCP 연결을 생성합니다. 새 연결 설정 비용이 발생하지 않게 하려면 기존 연결을 재사용하면 됩니다.
DynamoDB 쿼리와 같은 수명이 짧은 작업의 경우, TCP 연결 설정의 대기 시간 오버헤드가 작업 자체보다 클 수 있습니다. 또한 DynamoDB 유휴 시 암호화는 AWS KMS와 통합되므로 각 작업에 대해 새 AWS KMS 캐시 항목을 다시 설정해야 하는 데이터베이스에서 지연 시간이 발생할 수 있습니다.
TCP 연결을 재사용하도록 SDK for JavaScript를 구성하는 가장 쉬운 방법은
AWS_NODEJS_CONNECTION_REUSE_ENABLED
환경 변수를 1
로 설정하는 것입니다. 이 기능은 2.463.0
또는 다음 예와 같이 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 설명서