Node.js での maxSockets の設定 - AWS SDK for JavaScript

AWS SDK for JavaScript v2 のサポート終了が間近に迫っていることが発表されています。AWS SDK for JavaScript v3 に移行することをお勧めします。日付、その他の詳細、移行方法については、リンク先の発表内容を参照してください。

Node.js での maxSockets の設定

Node.js では、オリジンあたりの最大接続数を設定できます。 maxSockets が設定されている場合、低レベルの HTTP クライアントはリクエストをキューに入れ、利用可能になったときに、ソケットに割り当てます。

これにより、一度に特定のオリジンへの同時リクエスト数の上限を設定できます。この値を小さくすると、受信したスロットリングエラーまたはタイムアウトエラーの数を減らすことができます。ただし、ソケットが使用可能になるまでリクエストがキューに入れられるため、メモリ使用量も増加する可能性があります。

次の例では、作成したすべてのサービスオブジェクトに maxSockets を設定する方法を示しています。この例では、サービスエンドポイントごとに最大 25 の同時接続が可能です。

var AWS = require('aws-sdk'); var https = require('https'); var agent = new https.Agent({ maxSockets: 25 }); AWS.config.update({ httpOptions:{ agent: agent } });

同じことをサービスごとに行うことができます。

var AWS = require('aws-sdk'); var https = require('https'); var agent = new https.Agent({ maxSockets: 25 }); var dynamodb = new AWS.DynamoDB({ apiVersion: '2012-08-10' httpOptions:{ agent: agent } });

デフォルトの https を使用する場合、SDK は globalAgent から maxSockets 値を取ります。maxSockets 値が定義されていない場合、または Infinity の場合、SDK は maxSockets 値を 50 と見なします。

Node.js で maxSockets を設定する方法の詳細については、「Node.js のオンラインドキュメント」を参照してください。