๋ด๊ฐ ๋ง๋ ์๋น์ค๋ ๊ธฐ๋ณธ์ ์ผ๋ก DNS ๊ธฐ๋ฐ์ผ๋ก ์๋น์ค๋ฅผ ๋ค ํ๊ณ ์๋ค. account.yangs.internal , search.yangs.internal, mariadb.yangs.internal ๋ฑ๋ฑ..
์๋น์ค์ค์ ๋ฌธ์ ๊ฐ ์๊ธฐ๊ฑฐ๋ ๊ตฌ์ฑ ๋ณ๊ฒฝ์ผ๋ก ์ธํ์ฌ ํน์ ์๋ง์กด ๋ด๋ถ์ ์ด์๊ฐ ์๊ธฐ๋ฉด DNS์ IP๋ฅผ ์ค์์นญํด์ HAํ๋ ํํ๋ก ์ด์์ค์ด์๋ค.
์ด๋๋ ์ DB์ ์ฅ์ ๊ฐ ๋ฐ์ํ์ฌ, ์๋์ผ๋ก IP๊ฐ ๋ณ๊ฒฝ๋์๋๋ฐ Application ๋ ๋ฒจ์์ ์ ํ์ด ์งํ์ด ์๋์ด์ ์ฌ๊ธฐ๋์ผ๋ก ํด๊ฒฐ ํ ๊ธฐ์ต์ด ์๋ค.
DNS ์๋ฒ ์ค์ ๋ฌธ์ ์ธ๊ฐ ๋ดค๋๋ฐ, DNS์๋ฒ์ ๋ฌธ์ ๊ฐ ์๋ JAVA ํด๋ผ์ด์ธํธ ์ DNS Cache ์ ์ฑ ์ผ๋ก ์ธํ์ฌ ๋ฐ์ํ ์ด์์๋ค.
์ค๋์ ๊ทธ ์ด์ผ๊ธฐ๋ฅผ ํด๋ณด๋ ค๊ณ ํ๋ค.
DNS ๊ณต๊ฒฉ์ ๋ฐฉ์งํ๊ธฐ ์ํ JAVA์ ์ ์ฑ
JVM์ ๋ฒ์ ์ ๋ฐ๋ผ ๋ค๋ฅด๊ธด ํ์ง๋ง 1.6 ์ด์ ์ ๊ฒฝ์ฐ๋ Default๋ก Forever 1.6 ์ดํ ๋ฒ์ ์ ๋ํด์๋ 30์ด DNS Cache ์ ์ฑ ์ด ๋ค์ด๊ฐ๋ค๊ณ ํ๋ค.
๊ทธ ์ด์ ๋ก๋ DNS ๊ณต๊ฒฉ์ ๋ง๊ธฐ ์ํด์ ๋ผ๊ณ ์ด์ผ๊ธฐ ํ๋ค.
์ฌ์ค ์์ ์๋ IP๊ฐ ์ ๋ฐ๋๋์ผ์ด ์์์ผ๋ ๋ณ๋ก ๋ฌธ์ ๊ฐ ์์์๊ฒ๊ฐ์ง๋ง ์์ฆ ๊ฐ์ ์ํฉ์์๋ ์กฐ๊ธ ๋ฌธ์ ๊ฐ ์๋ ์ ์ฑ ์ด ์๋๊ฐ ์ถ๋ค.
Google์ reCAPTCH ๋ฌธ์์์๋ JAVA Application์ ํตํด ๊ฐ๋ฐ ํ ๋ DNS Cache์ ๋ํ ๋ฌธ์ ๋ฅผ ์ธ๊ธํ๊ณ ์๋ค.
JAVA์ DNS Cache ์ ์ฑ
์๋ก ์์ ๊ฐ๋จํ๊ฒ JAVA์ DNS Cache ์ ์ฑ ์ ๋ํด์ ์ด์ผ๊ธฐ ํ์ง๋ง, ํ๋ฒ ๋ ์ง๊ณ ๊ฐ๋ ๋๋์ผ๋ก ์ ๋ฆฌํด๋ณธ๋ค.
SecurityManager์ ์กด์ฌ ์ฌ๋ถ๋ก ์กฐ๊ธ์ฉ ๋ฌ๋ผ์ง๋๋ฐ SecurityManager๊ฐ ์กด์ฌ ํ ๊ฒฝ์ฐ๋ ๋ณด์์์ ์ด์ ๋ก Application์ด ์ผ์ง๋์ Cache๋ฅผ ๋ง๋ฃ์ํค์ง ์๊ณ , SecurityManager๊ฐ ์กด์ฌํ์ง ์์๊ฒฝ์ฐ, 30์ด๊ฐ Cacheํ๋๊ฒ ๊ธฐ๋ณธ๊ฐ์ด๋ค.
์ด Cache ์ ์ฑ ๋ณ๊ฒฝ ํ ์ ์๋๊ฐ?
๋น์ฐํ ๋ฐฉ๋ฒ์ ์๋ค. JAVA์์๋ ์๋์ ๊ฐ์ด 2๊ฐ์ง ๋ฐฉ๋ฒ์ ์ ์ํ๋ค
- Java ์ค์ ํ์ผ์์ ๋ด์ฉ ๋ณ๊ฒฝ
$JAVA_HOME/jre/lib/security/java.security ์ ํ์ผ์ ์ด์ด networkaddress.cache.ttl ๋ผ๋ ํค๋ฅผ ์์ ํด์ฃผ๋ฉด ๋๋ค.
๋ณ๊ฒฝ์ ์ํ๋ ๊ฒฝ์ฐ ์ฃผ์์ ํ๊ณ ์ํ๋ ์๊ฐ์ ์ ๋ ฅํด์ฃผ๋ฉด ๋๋ค ๊ธฐ์ค ์๊ฐ์ sec์ด๋ค.
networkaddress.cache.ttl=0
2. SecurityManager๋ฅผ ํตํ ์ค์
์ฌ์ค 1๋ฒ ์ ์ฑ ์ผ๋ก ์ ์ฒด ๋ณ๊ฒฝ์ ํด์ฃผ๋ฉด ๋๊ธดํ์ง๋ง, ์ฌ๋ฌ๊ฐ์ง ์ฌ์ ์ผ๋ก ์ธํ์ฌ ํน์ ์ดํ๋ฆฌ์ผ์ด์ ๋ง ์์ ํด์ค์ผ ํ๋ ๊ฒฝ์ฐ๊ฐ ์๋ค.
๊ทธ ๊ฒฝ์ฐ์๋ Application initialize ๊ณผ์ ์ ์๋์ ๊ฐ์ด ์ค์ ํด์ฃผ๋๋ก ํ์
java.security.Security.setProperty(“networkaddress.cache.ttl” , “60”);
๋์ ๊ฒฝ์ฐ๋ ์ฐ๋ฆฌ DNS ์๋ฒ๋ฅผ ๋ฏฟ๊ธดํ์ง๋ง.. ํน์ ๋ชจ๋ฅด๋ ์ํฉ์ ๋๋นํ์ฌ 60์ด๋ก ์ง์ ํ์ฌ ์ฌ์ฉ์ค์ด๋ค.
๋ง์น๋ฉฐ
Cloud ํํ์ IP๊ฐ ์์ฃผ ๋ณ๊ฒฝ๋๋ ์๋ฒ๊ฐ ๋ง์์ง๊ณ , MSA์ ๊ฐ์ ์ํฉ์์ ์ฌ๋ฌ ์๋ฒ๋ก ์ชผ๊ฐ์ง๋ฉด์ IP๊ฐ ์๋ DNS ๊ธฐ๋ฐ ์์ฒญ์ด ๋ง์์ง๋ฉด ํ๋ฒ์ฏค์ ๊ฒช๋ ์ด์ ์ผ ๊ฒ ์ด๋ค.
๋ค๋ฅธ ์ฌ๋๋ค์ ์ด๋ฐ ์ด์๊ฐ ์๊ฒผ์๋ ์ด๊ธ์ ๋ณด๊ณ ๋ ๋ฉ๋ถํ๊ธฐ๋ฅผ ๋ฐ๋ผ๋ฉฐ ์ด ๊ธ์ ๋ง์น๋ค.
๋ถ๋ก1. Python์์๋ ์ด๋ป๊ฒ ํ๊ณ ์์ง?
์ด ์ด์๋ฅผ ๋ง๋ฌด๋ฆฌ ํ๋ ์์ ์ ๊ณผ์ฐ ๋ค๋ฅธ์ธ์ด๋ค์ ์ด๋ค์์ผ๋ก ํ๊ณ ์์๊น ์๊ฐ์ด ๋ค์๊ณ , ์์ฆ ํซํ๋ค๊ณ ํ๋ Python์ ์ด๋ป๊ฒ ์ฒ๋ฆฌํ๋์ง ์ฐพ์๋ณด์๋ค.
์ด์ง ์ถฉ๊ฒฉ์ด์๋ค. ์ธ์ด Level์์ ์์ DNS Cache๋ฅผ ์์ ํ์ง ์๋๋ค๋ ์๋ฏธ๋ค. ๋ฌผ๋ก ์ง๊ธ JAVA DNS Cache์ด์์ ๋ํด ์ด์ผ๊ธฐ ํ๋ฉด์ ๊ธ ํ์ธ์ ํ์ ํด์ ์ด๋ฐ ์ด์ผ๊ธฐ๋ฅผ ํ๋ฉด ์๋๊ธดํ์ง๋ง ๊ทธ๋ฅ ์กฐ๊ธ ์ถฉ๊ฒฉ์ด๋ค.
๊ฒฐ๋ก ์ ์ผ๋ก ๋ณด๋ฉด ์์ฒญ ๊ฑด ๋ง๋ค DNS Lookup ํ๋ ์๊ฐ๋์์ ๋ ์ดํด์๋ ๊น๊ณ ๊ฐ๋ค๋ ๋ป์ด๋ค. ์ด๋ฐ๊ฑด ๋ฆฌ๋ ์ค NSCD ๊ฐ์ ๋ฐ๋ชฌ์ ๊น์์ ํด๊ฒฐ ํ ์ ์๊ธด ํ์ง๋ง ์กฐ๊ธ ์ถฉ๊ฒฉ์ด๊ธดํ๋ค.
๋๊ธ