Node.js で keep-alive を使用して接続を再利用する - AWS SDK for JavaScript

AWS SDK for JavaScript V3 API リファレンスガイドでは、 AWS SDK for JavaScript バージョン3 (V3) のすべての API オペレーションについて詳しく説明します。

翻訳は機械翻訳により提供されています。提供された翻訳内容と英語版の間で齟齬、不一致または矛盾がある場合、英語版が優先します。

Node.js で keep-alive を使用して接続を再利用する

デフォルトの Node.js HTTP/HTTPS エージェントは新しいリクエストがあるたびに新しい TCP 接続を作成します。新しい接続を確立するコストを回避するために、 はデフォルトで TCP 接続を AWS SDK for JavaScript 再利用します。

Amazon DynamoDB クエリなどの短期間のオペレーションでは、TCP 接続を設定する際のレイテンシーのオーバーヘッドが、オペレーション自体よりも大きくなる可能性があります。さらに、保管時の DynamoDB 暗号化は と統合されているためAWS KMS、データベースからのレイテンシーがオペレーションごとに新しい AWS KMS キャッシュエントリを再確立しなければならない場合があります。 https://docs.aws.amazon.com/amazondynamodb/latest/developerguide/encryption.howitworks.html

TCP 接続を再利用しない場合は、DynamoDB クライアントの次の例に示すように、サービスごとのクライアントベースkeepAliveで でこれらの接続をライブで再利用することを無効にできます。

import { DynamoDBClient } from "@aws-sdk/client-dynamodb"; import { NodeHttpHandler } from "@smithy/node-http-handler"; import { Agent } from "https"; const dynamodbClient = new DynamoDBClient({ requestHandler: new NodeHttpHandler({ httpsAgent: new Agent({ keepAlive: false }) }) });

keepAliveが有効になっている場合、TCPキープアライブパケットの初期遅延をkeepAliveMsecsに設定することもできます。これは、デフォルトでは1000ミリ秒(ms)です。詳細については、Node.js のドキュメントを参照してください。