AWS SDK for Java 1.x は 2025 年 12 月 31 日にend-of-supportしました。新しい機能、可用性の向上、セキュリティ更新のために、AWS SDK for Java 2.x に移行することをお勧めします。
翻訳は機械翻訳により提供されています。提供された翻訳内容と英語版の間で齟齬、不一致または矛盾がある場合、英語版が優先します。
DNS 名参照用の JVM TTL を設定する
Java 仮想マシン (JVM) は DNS 名参照をキャッシュします。JVM がホスト名を IP アドレスに変換するとき、time-to-live (TTL) と呼ばれる指定期間 IP アドレスをキャッシュします。
AWS リソースは DNS 名エントリを使用するため、TTL 値を 5 秒に設定することをお勧めします。これにより、リソースの IP アドレスが変更されたときに、アプリケーションは DNS に対して再度クエリを実行することで、リソースの新しい IP アドレスを取得し、使用できるようになります。
一部の Java 設定では JVM のデフォルトの TTL が設定されるため、JVM が再起動されるまで、DNS エントリが更新されることはありません。したがって、アプリケーションの実行中に AWS リソースの IP アドレスが変更された場合、JVM を手動で再起動し、キャッシュされた IP 情報が更新されるまで、そのリソースを使用することはできません。この場合、キャッシュされた IP 情報が定期的に更新されるように JVM の TTL を設定することが極めて重要です。
JVM TTL を設定する方法
JVM の TTL を変更するには、networkaddress.cache.ttlnetworkaddress.cache.ttl はセキュリティプロパティであり、システムプロパティではありません。つまり、-Dコマンドラインフラグで設定することはできません。
オプション 1: アプリケーションでプログラムで設定する
AWS SDK クライアントが作成される前、およびネットワークリクエストが行われる前に、アプリケーション起動のjava.security.Security.setProperty()
import java.security.Security; public class MyApplication { public static void main(String[] args) { Security.setProperty("networkaddress.cache.ttl", "5"); // ... create SDK clients and run application } }
オプション 2: java.security ファイルで設定する
Java 8 の場合は $JAVA_HOME/jre/lib/security/java.security ファイル、Java 11 以降の場合は $JAVA_HOME/conf/security/java.security ファイルで networkaddress.cache.ttlプロパティを設定します。
以下は、TTL キャッシュが 5 秒に設定された java.security ファイルからのスニペットです。
# # The Java-level namelookup cache policy for successful lookups: # # any negative value: caching forever # any positive value: the number of seconds to cache an address for # zero: do not cache # ...networkaddress.cache.ttl=5...
$JAVA_HOME 環境変数で表される JVM で実行されるすべてのアプリケーションは、この設定を使用します。
オプション 3: JDK システムプロパティのフォールバックを使用する (コマンドライン)
セキュリティ設定またはコードを変更できない場合は、JDK システムプロパティを使用できます。セキュリティプロパティが定義されていない場合、これらはフォールバックとして機能します。
sun.net.inetaddr.ttl– 正常なルックアップを制御する (正の TTL)sun.net.inetaddr.negative.ttl– 失敗したルックアップを制御する (負の TTL)
java -Dsun.net.inetaddr.ttl=5 -Dsun.net.inetaddr.negative.ttl=1 -jar myapp.jar
注記
これらは、「Oracle Java 8 Networking Properties