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

AWS SDK for Java 1.x는 2024년 7월 31일부터 유지 관리 모드로 전환되었으며 2025년 12월 31end-of-support일에 도달할 예정입니다. 새로운 기능, 가용성 개선 사항 및 보안 업데이트를 AWS SDK for Java 2.x 계속 받으려면 로 마이그레이션하는 것이 좋습니다.

기계 번역으로 제공되는 번역입니다. 제공된 번역과 원본 영어의 내용이 상충하는 경우에는 영어 버전이 우선합니다.

DNS 이름 조회를 JVM TTL 위한 설정

Java 가상 머신(JVM)은 DNS 이름 조회를 캐시합니다. 가 호스트 이름을 IP 주소로 JVM 확인하면 time-to-live ()라고 하는 지정된 기간 동안 IP 주소를 캐싱합니다TTL.

AWS 리소스는 가끔 변경되는 DNS 이름 항목을 사용하기 때문에 JVM를 5초의 TTL 값으로 구성하는 것이 좋습니다. 이렇게 하면 리소스의 IP 주소가 변경되면 애플리케이션이 를 다시 쿼리하여 리소스의 새 IP 주소를 수신하고 사용할 수 있습니다DNS.

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

를 설정하는 방법 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 속성을 설정합니다.

다음은 TTL 캐시가 5초로 설정된 것을 보여주는 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 이 설정을 사용합니다.