DNS ์ด๋ฆ„ ๋ณ€ํ™˜

์ด ๋ฌธ์„œ๋Š” Envoy๋ฅผ ์‚ฌ์šฉํ•˜๋Š” Cloud Service Mesh ๋ฐ ์ „๋‹ฌ ๊ทœ์น™์„ ํฌํ•จํ•œ ์ด์ „ ๋ถ€ํ•˜ ๋ถ„์‚ฐ API์— ์ ์šฉ๋ฉ๋‹ˆ๋‹ค.

์ด ๋ฌธ์„œ์—์„œ๋Š” ์ „๋‹ฌ ๊ทœ์น™์˜ ๊ฐ€์ƒ IP ์ฃผ์†Œ์™€ ์ „๋‹ฌ ๊ทœ์น™์ด ์„œ๋น„์Šค์— ์—ฐ๊ฒฐ๋˜๋Š” ๋ฐฉ์‹์„ ์„ค๋ช…ํ•ฉ๋‹ˆ๋‹ค. ๋˜ํ•œ Cloud Service Mesh ์„œ๋น„์Šค ๋ฉ”์‹œ์—์„œ ์„œ๋น„์Šค ๊ฐ„ ํ†ต์‹ ์— ์‚ฌ์šฉ๋˜๋Š” DNS๋ฅผ ๊ณ„ํšํ•˜๊ณ  ๊ตฌ์„ฑํ•˜๋Š” ๋ฐฉ๋ฒ•๋„ ์„ค๋ช…ํ•ฉ๋‹ˆ๋‹ค.

์ด ์˜ˆ์‹œ์—์„œ๋Š” ์„œ๋กœ ํ†ต์‹ ํ•˜๋Š” ์„ธ ์„œ๋น„์Šค์ธ service-a, service-b, service-c๊ฐ€ ์žˆ๋‹ค๊ณ  ๊ฐ€์ •ํ•ด ๋ณด๊ฒ ์Šต๋‹ˆ๋‹ค. ๊ฐœ๋ฐœ์ž๋Š” ์„œ๋น„์Šค ๊ฐ„ ํ†ต์‹ ์„ ์œ„ํ•ด ์ฝ”๋“œ์—์„œ ์ •๊ทœํ™”๋œ ๋„๋ฉ”์ธ ์ด๋ฆ„์„ ์‚ฌ์šฉํ•˜๋Š” ๊ฒฝ์šฐ๊ฐ€ ๋งŽ์Šต๋‹ˆ๋‹ค. ๋„๋ฉ”์ธ ์ด๋ฆ„์ด example.com์ธ ๊ฒฝ์šฐ ์„ธ ๊ฐ€์ง€ ์„œ๋น„์Šค๊ฐ€ ๋‹ค์Œ๊ณผ ๊ฐ™์ด ํ‘œ์‹œ๋  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค.

  • service-a.example.com
  • service-b.example.com
  • service-c.example.com

์„œ๋น„์Šค ๋ฉ”์‹œ๋ฅผ ๋งŒ๋“ค๊ธฐ ์œ„ํ•ด Cloud Service Mesh ๋ฆฌ์†Œ์Šค๋ฅผ ๊ตฌ์„ฑํ•  ๋•Œ๋Š” ๊ฐ ์„œ๋น„์Šค์— ์ „๋‹ฌ ๊ทœ์น™์„ ๊ตฌ์„ฑํ•ฉ๋‹ˆ๋‹ค. ์ „๋‹ฌ ๊ทœ์น™์€ ๋Œ€์ƒ ์„œ๋น„์Šค์˜ IP:Port ์Œ์„ ๋‚˜ํƒ€๋ƒ…๋‹ˆ๋‹ค. Envoy ์‚ฌ์ด๋“œ์นด ํ”„๋ก์‹œ์—์„œ ์ด๊ทธ๋ ˆ์Šค ํŠธ๋ž˜ํ”ฝ์„ ๊ฐ€๋กœ์ฑ„๋ ค๋ฉด ๋Œ€์ƒ IP ์ฃผ์†Œ๊ฐ€ ์ „๋‹ฌ ๊ทœ์น™๊ณผ ์—ฐ๊ฒฐ๋œ IP ์ฃผ์†Œ์™€ ์ผ์น˜ํ•ด์•ผ ํ•ฉ๋‹ˆ๋‹ค. ๋”ฐ๋ผ์„œ ๊ฐ ์„œ๋น„์Šค์— IP ์ฃผ์†Œ๋ฅผ ํ”„๋กœ๋น„์ €๋‹ํ•ด์•ผ ํ•ฉ๋‹ˆ๋‹ค. ์˜ˆ๋ฅผ ๋“ค๋ฉด ๋‹ค์Œ๊ณผ ๊ฐ™์Šต๋‹ˆ๋‹ค.

  • service-a.example.com์˜ IP ์ฃผ์†Œ๋Š” 10.0.0.100์ž…๋‹ˆ๋‹ค.
  • service-b.example.com์˜ IP ์ฃผ์†Œ๋Š” 10.0.0.101์ž…๋‹ˆ๋‹ค.
  • service-c.example.com์˜ IP ์ฃผ์†Œ๋Š” 10.0.0.102์ž…๋‹ˆ๋‹ค.

์ƒ์‘ํ•˜๋Š” Cloud Service Mesh ๊ตฌ์„ฑ์—๋Š” ๊ฐ๊ฐ 80 ํฌํŠธ๋ฅผ ์‚ฌ์šฉํ•˜๋Š” ์„ธ ๊ฐ€์ง€ ์ „๋‹ฌ ๊ทœ์น™(FR1, FR2, FR3)์ด ์žˆ์Šต๋‹ˆ๋‹ค.

  • FR1์˜ IP ์ฃผ์†Œ๋Š” service-a.example.com๊ณผ ์—ฐ๊ด€๋œ 10.0.0.100:80์ž…๋‹ˆ๋‹ค.
  • FR2์˜ IP ์ฃผ์†Œ๋Š” service-b.example.com๊ณผ ์—ฐ๊ด€๋œ 10.0.0.101:80์ž…๋‹ˆ๋‹ค.
  • FR3์˜ IP ์ฃผ์†Œ๋Š” service-c.example.com๊ณผ ์—ฐ๊ด€๋œ 10.0.0.102:80์ž…๋‹ˆ๋‹ค.

service-a๊ฐ€ ์ •๊ทœํ™”๋œ ๋„๋ฉ”์ธ ์ด๋ฆ„(FQDN) service-b.example.com์„ ์‚ฌ์šฉํ•˜์—ฌ service-b๋ฅผ ํ˜ธ์ถœํ•˜๋ฉด ๋‹ค์Œ๊ณผ ๊ฐ™์€ ์„ธ ๊ฐ€์ง€ ์ƒํ™ฉ์ด ๋ฐœ์ƒํ•ฉ๋‹ˆ๋‹ค.

  1. service-a๋Š” ๋จผ์ € service-b.example.com์— ๋Œ€ํ•œ DNS ์กฐํšŒ๋ฅผ ์ˆ˜ํ–‰ํ•˜์—ฌ service-b์˜ IP ์ฃผ์†Œ๋ฅผ ํ™•์ธํ•ฉ๋‹ˆ๋‹ค.
  2. ๋„๋ฉ”์ธ์ด service-b์˜ ์ „๋‹ฌ ๊ทœ์น™์— ๊ตฌ์„ฑ๋œ IP ์ฃผ์†Œ์™€ ์ผ์น˜ํ•˜๋Š” 10.0.0.101๋กœ ํ™•์ธ๋ฉ๋‹ˆ๋‹ค.
  3. ์ด์ œ Envoy ํ”„๋ก์‹œ๊ฐ€ ํŠธ๋ž˜ํ”ฝ์„ ๊ฐ€๋กœ์ฑ„ NEG ๋˜๋Š” MIG์™€ ๊ด€๊ณ„์—†์ด service-b์˜ ๋ฐฑ์—”๋“œ๊ฐ€ ์žˆ๋Š” ๋ฐฑ์—”๋“œ ์„œ๋น„์Šค๋กœ ๋ผ์šฐํŒ…ํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค.

Cloud DNS ๊ด€๋ฆฌํ˜• ๋น„๊ณต๊ฐœ ์˜์—ญ์„ ๊ตฌ์„ฑํ•˜์—ฌ ์„œ๋น„์Šค์˜ ๋ฆฌ์†Œ์Šค ๋ ˆ์ฝ”๋“œ๋ฅผ ํ˜ธ์ŠคํŒ…ํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค.