AWS SDK for Java
開発者ガイド

クライアント側の設定

AWS SDK for Java を使用すると、デフォルトのクライアント設定を変更できます。これは、次のことを行う場合に役立ちます。

  • プロキシを使用したインターネットへの接続

  • HTTP トランスポートの設定 (接続タイムアウトやリクエスト再試行など) の変更

  • TCP ソケットバッファのサイズに関するヒントの指定

プロキシ設定

クライアントオブジェクトを構築する場合、オプションの ClientConfiguration オブジェクトを渡して、クライアントの設定をカスタマイズできます。

プロキシサーバーを使用してインターネットに接続する場合は、ClientConfiguration オブジェクトを使用して、プロキシサーバーの設定 (プロキシホスト、ポート、ユーザー名やパスワード) を指定する必要があります。

HTTP トランスポートの設定

ClientConfiguration オブジェクトを使用して、複数の HTTP トランスポートオプションを設定できます。不定期に新しいオプションが追加されます。取得または設定できるオプションの一覧を確認するには、AWS SDK for Java API Reference を参照してください。

注記

設定可能な各値には、定数によって定義されるデフォルト値があります。ClientConfiguration の定数値の一覧については、『AWS SDK for Java API Reference』の「定数フィールドの値」を参照してください。

最大接続数

ClientConfiguration.setMaxConnections メソッドを使用して、開くことができる HTTP 接続の最大数を設定できます。

重要

同時トランザクション数に最大接続数を設定します。接続の競合およびパフォーマンスの低下を回避します。デフォルトの最大接続値については、『AWS SDK for Java API Reference』の「定数フィールドの値」を参照してください。

タイムアウトとエラー処理

HTTP 接続でのタイムアウトとエラー処理に関連するオプションを設定できます。

  • 接続タイムアウト

    接続タイムアウトは、接続を確立するまでに HTTP 接続が待機する時間 (ミリ秒単位) です。デフォルトは 10,000 ミリ秒です。

    この値を自分で設定するには、ClientConfiguration.setConnectionTimeout メソッドを使用します。

  • 接続有効期限 (TTL)

    デフォルトで、SDK は HTTP 接続を可能な限り長い時間再利用しようとします。サービスが停止したサーバーに対して接続が確立される失敗の状況では、有限の TTL がアプリケーション復旧に役立つ場合があります。たとえば、15 分の TTL を設定すると、接続先のサーバーで問題が発生しても 15 分以内に別のサーバーに再接続できます。

    HTTP 接続の TTL を設定するには、ClientConfiguration.setConnectionTTL メソッドを使用します。

  • エラーの最大再試行回数

    デフォルトの再試行可能なエラーの最大再試行回数は 3 です。別の値を設定するには、ClientConfiguration.setMaxErrorRetry メソッドを使用します。

ローカルアドレス

HTTP クライアントのバインド先となるローカルアドレスを設定するには、ClientConfiguration.setLocalAddress を使用します。

TCP ソケットバッファのサイズに関するヒント

低レベルの TCP パラメーターを調整する必要がある上級ユーザーは、ClientConfiguration オブジェクトを使用して、TCP バッファサイズに関するヒントを追加で設定できます。ほとんどのユーザーはこれらの値を微調整する必要はありません。これらの値は上級ユーザー向けの値です。

アプリケーションに最適な TCP バッファサイズは、ネットワークやオペレーティングシステムの設定と機能に大きく依存します。たとえば、最新のオペレーティングシステムのほとんどでは、TCP バッファサイズを自動的にチューニングするロジックが組み込まれています。このロジックは TCP 接続のパフォーマンスに大きな影響を与える可能性があります。自動チューニングロジックでバッファサイズを最適化するために、TCP 接続を長い時間開いたままにしておくためです。

バッファサイズを大きくすると (2 MB など)、リモートサーバーでその情報の受信を確認しなくてもオペレーティングシステムでメモリにバッファできるデータが多くなるため、ネットワークのレイテンシーが高い場合に役立ちます。

これはヒントのみです。そのヒントを採用するかどうかはオペレーティングシステムが決定します。このオプションを使用する場合、ユーザーはオペレーティングシステムで設定されている制限とデフォルト値を必ず確認する必要があります。ほとんどのオペレーティングシステムでは、最大 TCP バッファサイズの制限が設定されており、最大 TCP バッファサイズの制限を明示的に引き上げない限り、その制限を超えることはできません。

TCP バッファサイズおよびオペレーティングシステムに固有の TCP 設定を指定するために、次を含む多数のリソースが利用できます。