DNS 이름 조회를 위한 JVM TTL 설정 - AWS SDK for Java 1.x

The AWS SDK for Java 1.x는 2024년 7월 31일부터 유지 관리 모드로 전환되었으며 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초로 JVM을 구성하는 것이 좋습니다. 이렇게 하면 리소스의 IP 주소가 변경될 때 애플리케이션이 DNS를 다시 쿼리하여 리소스의 새 IP 주소를 수신하고 사용할 수 있습니다.

일부 Java 구성에서는 JVM이 다시 시작될 때까지 DNS 항목을 새로 고치지 않도록 JVM 기본 TTL이 설정되기도 합니다. 따라서 애플리케이션이 실행되는 동안 AWS 리소스의 IP 주소가 변경되면 JVM을 수동으로 다시 시작하고 캐시된 IP 정보가 새로 고쳐질 때까지 해당 리소스를 사용할 수 없습니다. 이 경우 캐시된 IP 정보를 정기적으로 새로 고치도록 JVM의 TTL을 설정해야 합니다.

JVM TTL을 설정하는 방법

JVM의 TTL을 수정하려면 networkaddress.cache.ttl 보안 속성 값을 설정하고 Java 8용 $JAVA_HOME/jre/lib/security/java.security 파일 또는 Java 11 이상의 $JAVA_HOME/conf/security/java.security 파일에서 networkaddress.cache.ttl 속성을 설정합니다.

다음은 5초로 설정된 TTL 캐시를 보여주는 java.security 파일의 코드 조각입니다.

# # This is the "master security properties file". # # An alternate java.security properties file may be specified ... # 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 ...

환경 변수로 표시되는 JVM에서 실행되는 모든 애플리케이션은$JAVA_HOME이 설정을 사용합니다.