๋ณธ๋ฌธ ๋ฐ”๋กœ๊ฐ€๊ธฐ
๐Ÿ’ป ๋ฐฑ์—”๋“œ ๊ฐœ๋ฐœ

MSA ๊ณ ๊ตฐ๋ถ„ํˆฌ๊ธฐ — (1) JAVA์˜ DNS Cache ์ด์Šˆ ํ•ด๊ฒฐ๊ธฐ

by YangsDev 2020. 1. 6.

 

๋‚ด๊ฐ€ ๋งŒ๋“  ์„œ๋น„์Šค๋Š” ๊ธฐ๋ณธ์ ์œผ๋กœ 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์— ๋Œ€ํ•œ ๋ฌธ์ œ๋ฅผ ์–ธ๊ธ‰ํ•˜๊ณ  ์žˆ๋‹ค.

 

Using reCAPTCHA with Java/JSP  |  Google Developers

Important: Version 1.0 of the reCAPTCHA API is no longer supported, please upgrade to Version 2.0. Learn more The reCAPTCHA Java Library provides a simple way to place a CAPTCHA on your Java-based website, helping you stop bots from abusing it. The library

developers.google.com

JAVA์˜ DNS Cache ์ •์ฑ…

์„œ๋ก ์—์„œ ๊ฐ„๋‹จํ•˜๊ฒŒ JAVA์˜ DNS Cache ์ •์ฑ…์— ๋Œ€ํ•ด์„œ ์ด์•ผ๊ธฐ ํ–ˆ์ง€๋งŒ, ํ•œ๋ฒˆ ๋” ์งš๊ณ  ๊ฐ€๋Š” ๋Š๋‚Œ์œผ๋กœ ์ •๋ฆฌํ•ด๋ณธ๋‹ค.

SecurityManager์˜ ์กด์žฌ ์—ฌ๋ถ€๋กœ ์กฐ๊ธˆ์”ฉ ๋‹ฌ๋ผ์ง€๋Š”๋ฐ SecurityManager๊ฐ€ ์กด์žฌ ํ•  ๊ฒฝ์šฐ๋Š” ๋ณด์•ˆ์ƒ์˜ ์ด์œ ๋กœ Application์ด ์ผœ์ง„๋™์•ˆ Cache๋ฅผ ๋งŒ๋ฃŒ์‹œํ‚ค์ง€ ์•Š๊ณ , SecurityManager๊ฐ€ ์กด์žฌํ•˜์ง€ ์•Š์„๊ฒฝ์šฐ, 30์ดˆ๊ฐ„ Cacheํ•˜๋Š”๊ฒŒ ๊ธฐ๋ณธ๊ฐ’์ด๋‹ค.

์ด Cache ์ •์ฑ… ๋ณ€๊ฒฝ ํ•  ์ˆ˜ ์—†๋Š”๊ฐ€?

๋‹น์—ฐํžˆ ๋ฐฉ๋ฒ•์€ ์žˆ๋‹ค. JAVA์—์„œ๋Š” ์•„๋ž˜์™€ ๊ฐ™์ด 2๊ฐ€์ง€ ๋ฐฉ๋ฒ•์„ ์ œ์‹œํ•œ๋‹ค

  1. 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์—์„œ๋Š” ์–ด๋–ป๊ฒŒ ํ•˜๊ณ ์žˆ์ง€?

 

[์ž… ๊ฐœ๋ฐœ] I don’t know DNS Caching

ํ์Œ, ์ž… ๊ฐœ๋ฐœ ์ „๋ฌธ๊ฐ€ CharSyam  ์ž…๋‹ˆ๋‹ค. ๋‚˜๋ฆ„ ์ž… ๊ฐœ๋ฐœ์„ ์˜ค๋ž˜ํ•ด๋ณด๊ธด ํ•˜๊ณ , DNS ํ”„๋กœํ† ์ฝœ๋„ ์ง์ ‘ ๊ตฌํ˜„ํ•ด๋ณด๊ณ , Dynamic DNS๋ฅผ Zookeeper ๊ธฐ๋ฐ˜์œผ๋กœ ๋งŒ๋“ค์–ด๋ณด๊ธฐ๋„ ํ•ด์„œ ์ž˜ ์•ˆ๋‹ค๊ณ (์ด๋ ‡๊ฒŒ ์ ๊ณ  ์‹ค์ œ๋กœ๋Š” ์ผ๋„ ๋ชจ๋ฅธ๋‹ค๊ณ  ์ฝ์œผ์‹œ๋ฉด ๋ฉ๋‹ˆ๋‹ค.) ์ƒ๊ฐํ–ˆ๋Š”๋ฐ… ์ œ ์ƒ์‹์„ ๊นจ๋Š” ์ผ์ด ๋ฐœ์ƒํ–ˆ์Šต๋‹ˆ๋‹ค.(๋‹ค๋ฅธ ๋ถ„๋“ค์˜ ์ƒ์‹์ด ์•„๋‹ˆ๋ผ ์ œ ์ƒ์‹์ด๋‹ˆ …

charsyam.wordpress.com

์ด ์ด์Šˆ๋ฅผ ๋งˆ๋ฌด๋ฆฌ ํ•˜๋˜ ์‹œ์ ์— ๊ณผ์—ฐ ๋‹ค๋ฅธ์–ธ์–ด๋“ค์€ ์–ด๋–ค์‹์œผ๋กœ ํ•˜๊ณ  ์žˆ์„๊นŒ ์ƒ๊ฐ์ด ๋“ค์—ˆ๊ณ , ์š”์ฆ˜ ํ•ซํ•˜๋‹ค๊ณ  ํ•˜๋Š” Python์€ ์–ด๋–ป๊ฒŒ ์ฒ˜๋ฆฌํ•˜๋Š”์ง€ ์ฐพ์•„๋ณด์•˜๋‹ค.

 

์‚ด์ง ์ถฉ๊ฒฉ์ด์—ˆ๋‹ค. ์–ธ์–ด Level์—์„œ ์•„์˜ˆ DNS Cache๋ฅผ ์•„์˜ˆ ํ•˜์ง€ ์•Š๋Š”๋‹ค๋Š” ์˜๋ฏธ๋‹ค. ๋ฌผ๋ก  ์ง€๊ธˆ JAVA DNS Cache์ด์Šˆ์— ๋Œ€ํ•ด ์ด์•ผ๊ธฐ ํ•˜๋ฉด์„œ ๊ธ‰ ํƒœ์„ธ์ „ํ™˜์„ ํ•ด์„œ ์ด๋Ÿฐ ์ด์•ผ๊ธฐ๋ฅผ ํ•˜๋ฉด ์•ˆ๋˜๊ธดํ•˜์ง€๋งŒ ๊ทธ๋ƒฅ ์กฐ๊ธˆ ์ถฉ๊ฒฉ์ด๋‹ค.

๊ฒฐ๋ก ์ ์œผ๋กœ ๋ณด๋ฉด ์š”์ฒญ ๊ฑด ๋งˆ๋‹ค DNS Lookup ํ•˜๋Š” ์‹œ๊ฐ„๋™์•ˆ์˜ ๋ ˆ์ดํ„ด์‹œ๋Š” ๊น”๊ณ ๊ฐ„๋‹ค๋Š” ๋œป์ด๋‹ค. ์ด๋Ÿฐ๊ฑด ๋ฆฌ๋ˆ…์Šค NSCD ๊ฐ™์€ ๋ฐ๋ชฌ์„ ๊น”์•„์„œ ํ•ด๊ฒฐ ํ•  ์ˆ˜ ์žˆ๊ธด ํ•˜์ง€๋งŒ ์กฐ๊ธˆ ์ถฉ๊ฒฉ์ด๊ธดํ–ˆ๋‹ค.

์ฐธ๊ณ  ๋ฌธํ—Œ

๋Œ“๊ธ€