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

곧 출시될 end-of-support AWS SDK for Java (v1) 버전을 발표했습니다. AWS SDK for Java V2로 마이그레이션하실 것을 권장합니다. 마이그레이션 날짜, 추가 세부 정보 및 방법에 대한 자세한 내용은 링크된 공지 사항을 참조하세요.

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

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

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

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 보안 속성 값을 설정하고 자바 8의 경우 파일 또는 자바 11 이상의 경우 파일에서 networkaddress.cache.ttl 속성을 설정합니다. $JAVA_HOME/jre/lib/security/java.security $JAVA_HOME/conf/security/java.security

다음은 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 ...

$JAVA_HOME환경 변수로 표시되는 JVM에서 실행되는 모든 응용 프로그램은 이 설정을 사용합니다.