DAX クライアントの設定 - Amazon DynamoDB

DAX クライアントの設定

DAX クラスターは、さまざまな DAX SDK を使用してアクセスできるインタスタンスベースのクラスターです。各 SDK は、特定のアプリケーション要件を満たすために、requestTimeout や接続などの設定可能なオプションを開発者に提供します。

DAX クライアントを設定する場合、クライアントアプリケーションのスケール、特にクライアントインスタンスと DAX サーバーインスタンスの比率 (最大 11) が主な考慮事項です。大規模なクライアントインスタンスフリートは、DAX サーバーインスタンスへの多数の接続を生成し、負担をかける可能性があります。このガイドでは、DAX クライアント設定のベストプラクティスの概要を説明します。

ベストプラクティス

  1. クライアントインスタンス – シングルトンクライアントインスタンスを実装して、リクエスト間でインスタンスを再利用します。実装の詳細については、「ステップ 4: サンプルアプリケーションの実行」を参照してください。

  2. リクエストタイムアウト – アップストリームシステムのレイテンシーを最小限に抑えるために、アプリケーションでは多くの場合、リクエストタイムアウトを短くする必要がありますが、タイムアウトを低く設定しすぎると問題が発生する可能性があります。タイムアウトが短いと、DAX サーバーで一時的なレイテンシーのスパイクが発生した場合に、サーバーインスタンスへの頻繁な再接続がトリガーされる可能性があります。タイムアウトが発生すると、DAX クライアントは既存のサーバーノード接続を終了し、新しいサーバーノード接続を確立します。接続の確立には大量のリソース消費が必要になるため、多数の連続した接続により DAX サーバーが過負荷になる可能性があります。次の構成を推奨します。

    • デフォルトのリクエストタイムアウト設定の維持。

    • 短いタイムアウトが必要な場合は、低いタイムアウト値で個別のアプリケーションスレッドを実装し、指数バックオフによる再試行メカニズムを含めます。

  3. 接続タイムアウト – ほとんどのアプリケーションでは、デフォルトの接続タイムアウト設定を維持することをお勧めします。

  4. 同時接続 – JavaV2 などの特定の SDK では、DAX サーバーへの同時接続を調整できます。主な考慮事項:

    • DAX サーバーインスタンスは、最大 40,000 の同時接続を処理できます。

    • デフォルト設定は、ほとんどのユースケースに適しています。

    • 大規模なクライアントインスタンスと多数の同時接続が組み合わさると、サーバーが過負荷になる可能性があります。

    • 同時接続値が低いほど、サーバー過負荷のリスクが軽減されます。

    • パフォーマンス計算の例:

      • リクエストレイテンシーが 1 ミリ秒であるとすると、各接続は理論的に 1,000 リクエスト/秒を処理できます。

      • 3 ノードクラスターの場合、すべてのノードに接続する 1 つのクライアントインスタンスで 3,000 リクエスト/秒を処理できます。

      • 接続数が 10 の場合、クライアントは約 30,000 リクエスト/秒を処理できます。

        推奨事項 – 低い同時接続設定で開始し、予想される本番ワークロードパターンを使用して、パフォーマンステストを通じて検証します。