Consul์˜ ์˜ˆ๋ฅผ ์‚ฌ์šฉํ•˜์—ฌ ๋ถ„์‚ฐ ์‹œ์Šคํ…œ์—์„œ ์„œ๋น„์Šค ๊ฒ€์ƒ‰. ์•Œ๋ ‰์‚ฐ๋” ์‹œ๊ฐ€์ฒดํ”„

Consul์„ ์˜ˆ๋กœ ๋“ค์–ด Alexander Sigachev์˜ ๋ถ„์‚ฐ ์‹œ์Šคํ…œ์—์„œ์˜ ์„œ๋น„์Šค ๊ฒ€์ƒ‰ ๋ณด๊ณ ์„œ ์‚ฌ๋ณธ์„ ์ฝ์–ด ๋ณด์‹œ๊ธฐ ๋ฐ”๋ž๋‹ˆ๋‹ค.

Service Discovery๋Š” ์ตœ์†Œํ•œ์˜ ๋น„์šฉ์œผ๋กœ ์ƒˆ๋กœ์šด ์• ํ”Œ๋ฆฌ์ผ€์ด์…˜์„ ๊ธฐ์กด ํ™˜๊ฒฝ์— ์—ฐ๊ฒฐํ•  ์ˆ˜ ์žˆ๋„๋ก ๋งŒ๋“ค์–ด์กŒ์Šต๋‹ˆ๋‹ค. ์„œ๋น„์Šค ๊ฒ€์ƒ‰์„ ์‚ฌ์šฉํ•˜๋ฉด ๋„์ปค ์ปจํ…Œ์ด๋„ˆ๋‚˜ ๊ฐ€์ƒ ์„œ๋น„์Šค๋ฅผ ์‹คํ–‰ ์ค‘์ธ ํ™˜๊ฒฝ์—์„œ ์ตœ๋Œ€ํ•œ ๋ถ„๋ฆฌํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค.

๋ชจ๋‘๋ฅผ ํ™˜์˜ํ•ฉ๋‹ˆ๋‹ค! ์ €๋Š” Alexander Sigachev์ด๊ณ  Inventos์—์„œ ์ผํ•ฉ๋‹ˆ๋‹ค. ์˜ค๋Š˜์€ Service Discovery์™€ ๊ฐ™์€ ๊ฐœ๋…์„ ์†Œ๊ฐœํ•˜๊ฒ ์Šต๋‹ˆ๋‹ค. Consul์„ ์˜ˆ๋กœ ๋“ค์–ด Service Discovery๋ฅผ ์‚ดํŽด๋ณด๊ฒ ์Šต๋‹ˆ๋‹ค.

Consul์˜ ์˜ˆ๋ฅผ ์‚ฌ์šฉํ•˜์—ฌ ๋ถ„์‚ฐ ์‹œ์Šคํ…œ์—์„œ ์„œ๋น„์Šค ๊ฒ€์ƒ‰. ์•Œ๋ ‰์‚ฐ๋” ์‹œ๊ฐ€์ฒดํ”„

Service Discovery๋Š” ์–ด๋–ค ๋ฌธ์ œ๋ฅผ ํ•ด๊ฒฐํ•ฉ๋‹ˆ๊นŒ? Service Discovery๋Š” ์ตœ์†Œํ•œ์˜ ๋น„์šฉ์œผ๋กœ ์ƒˆ๋กœ์šด ์• ํ”Œ๋ฆฌ์ผ€์ด์…˜์„ ๊ธฐ์กด ํ™˜๊ฒฝ์— ์—ฐ๊ฒฐํ•  ์ˆ˜ ์žˆ๋„๋ก ๋งŒ๋“ค์–ด์กŒ์Šต๋‹ˆ๋‹ค. ์„œ๋น„์Šค ๊ฒ€์ƒ‰์„ ์‚ฌ์šฉํ•˜๋ฉด ๋„์ปค ์ปจํ…Œ์ด๋„ˆ๋‚˜ ๊ฐ€์ƒ ์„œ๋น„์Šค๋ฅผ ์‹คํ–‰ ์ค‘์ธ ํ™˜๊ฒฝ์—์„œ ์ตœ๋Œ€ํ•œ ๋ถ„๋ฆฌํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค.

๊ทธ๊ฒƒ์€ ์–ด๋–ป๊ฒŒ ์ƒ๊ฒผ๋‚˜์š”? ์›น์˜ ์ „ํ˜•์ ์ธ ์˜ˆ์—์„œ ์ด๋Š” ์‚ฌ์šฉ์ž์˜ ์š”์ฒญ์„ ์ˆ˜๋ฝํ•˜๋Š” ํ”„๋ŸฐํŠธ ์—”๋“œ์ž…๋‹ˆ๋‹ค. ๊ทธ๋Ÿฐ ๋‹ค์Œ ์ด๋ฅผ ๋ฐฑ์—”๋“œ๋กœ ๋ผ์šฐํŒ…ํ•ฉ๋‹ˆ๋‹ค. ์ด ์˜ˆ์‹œ์—์„œ ์ด ๋ถ€ํ•˜ ๋ถ„์‚ฐ ์žฅ์น˜๋Š” ๋‘ ๋ฐฑ์—”๋“œ์˜ ๊ท ํ˜•์„ ์กฐ์ •ํ•ฉ๋‹ˆ๋‹ค.

Consul์˜ ์˜ˆ๋ฅผ ์‚ฌ์šฉํ•˜์—ฌ ๋ถ„์‚ฐ ์‹œ์Šคํ…œ์—์„œ ์„œ๋น„์Šค ๊ฒ€์ƒ‰. ์•Œ๋ ‰์‚ฐ๋” ์‹œ๊ฐ€์ฒดํ”„

์—ฌ๊ธฐ์„œ๋Š” ์• ํ”Œ๋ฆฌ์ผ€์ด์…˜์˜ ์„ธ ๋ฒˆ์งธ ์ธ์Šคํ„ด์Šค๋ฅผ ์‹œ์ž‘ํ•˜๋Š” ๊ฒƒ์„ ๋ณผ ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค. ๋”ฐ๋ผ์„œ ์• ํ”Œ๋ฆฌ์ผ€์ด์…˜์ด ์‹œ์ž‘๋˜๋ฉด Service Discovery์— ๋“ฑ๋ก๋ฉ๋‹ˆ๋‹ค. ์„œ๋น„์Šค ๊ฒ€์ƒ‰์€ ๋กœ๋“œ ๋ฐธ๋Ÿฐ์„œ์— ์•Œ๋ฆฝ๋‹ˆ๋‹ค. ๋กœ๋“œ ๋ฐธ๋Ÿฐ์„œ๋Š” ๊ตฌ์„ฑ์„ ์ž๋™์œผ๋กœ ๋ณ€๊ฒฝํ•˜๊ณ  ์ƒˆ ๋ฐฑ์—”๋“œ๊ฐ€ ์ž‘๋™๋ฉ๋‹ˆ๋‹ค. ์ด๋Ÿฌํ•œ ๋ฐฉ์‹์œผ๋กœ ๋ฐฑ์—”๋“œ๋ฅผ ์ถ”๊ฐ€ํ•˜๊ฑฐ๋‚˜ ๋ฐ˜๋Œ€๋กœ ์ž‘์—…์—์„œ ์ œ์™ธํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค.

Consul์˜ ์˜ˆ๋ฅผ ์‚ฌ์šฉํ•˜์—ฌ ๋ถ„์‚ฐ ์‹œ์Šคํ…œ์—์„œ ์„œ๋น„์Šค ๊ฒ€์ƒ‰. ์•Œ๋ ‰์‚ฐ๋” ์‹œ๊ฐ€์ฒดํ”„

Service Discovery๋กœ ํŽธ๋ฆฌํ•˜๊ฒŒ ์ˆ˜ํ–‰ํ•  ์ˆ˜ ์žˆ๋Š” ๋˜ ๋‹ค๋ฅธ ์ž‘์—…์€ ๋ฌด์—‡์ž…๋‹ˆ๊นŒ? ์„œ๋น„์Šค ๊ฒ€์ƒ‰์€ nginx ๊ตฌ์„ฑ, ์ธ์ฆ์„œ ๋ฐ ํ™œ์„ฑ ๋ฐฑ์—”๋“œ ์„œ๋ฒ„ ๋ชฉ๋ก์„ ์ €์žฅํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค.

Consul์˜ ์˜ˆ๋ฅผ ์‚ฌ์šฉํ•˜์—ฌ ๋ถ„์‚ฐ ์‹œ์Šคํ…œ์—์„œ ์„œ๋น„์Šค ๊ฒ€์ƒ‰. ์•Œ๋ ‰์‚ฐ๋” ์‹œ๊ฐ€์ฒดํ”„Service Discovery๋ฅผ ์‚ฌ์šฉํ•˜๋ฉด ์˜ค๋ฅ˜๋ฅผ ๊ฐ์ง€ํ•˜๊ณ  ๊ฐ์ง€ํ•  ์ˆ˜๋„ ์žˆ์Šต๋‹ˆ๋‹ค. ์˜ค๋ฅ˜๋ฅผ ๊ฐ์ง€ํ•˜๊ธฐ ์œ„ํ•œ ๊ฐ€๋Šฅํ•œ ์ฒด๊ณ„๋Š” ๋ฌด์—‡์ž…๋‹ˆ๊นŒ?

  • ์šฐ๋ฆฌ๊ฐ€ ๊ฐœ๋ฐœํ•œ ์ด ์• ํ”Œ๋ฆฌ์ผ€์ด์…˜์€ Service Discovery์— ์•„์ง ์ž‘๋™ ์ค‘์ž„์„ ์ž๋™์œผ๋กœ ์•Œ๋ฆฝ๋‹ˆ๋‹ค.
  • ์„œ๋น„์Šค ๊ฒ€์ƒ‰์€ ์• ํ”Œ๋ฆฌ์ผ€์ด์…˜์˜ ๊ฐ€์šฉ์„ฑ์„ ํด๋งํ•ฉ๋‹ˆ๋‹ค.
  • ๋˜๋Š” ์• ํ”Œ๋ฆฌ์ผ€์ด์…˜์˜ ๊ฐ€์šฉ์„ฑ์„ ํ™•์ธํ•˜๊ณ  ์„œ๋น„์Šค ๊ฒ€์ƒ‰์— ๋ชจ๋“  ๊ฒƒ์ด ์ •์ƒ์ด๊ณ  ์ž‘๋™ํ•  ์ˆ˜ ์žˆ์Œ์„ ์•Œ๋ฆฌ๊ฑฐ๋‚˜ ๋ฐ˜๋Œ€๋กœ ๋ชจ๋“  ๊ฒƒ์ด ์ข‹์ง€ ์•Š์•„ ์ด ์• ํ”Œ๋ฆฌ์ผ€์ด์…˜ ์ธ์Šคํ„ด์Šค๋ฅผ ๋ฐธ๋Ÿฐ์‹ฑ์—์„œ ์ œ์™ธํ•ด์•ผ ํ•จ์„ ์•Œ๋ฆฌ๋Š” ํƒ€์‚ฌ ์Šคํฌ๋ฆฝํŠธ๋‚˜ ์• ํ”Œ๋ฆฌ์ผ€์ด์…˜์„ ์‚ฌ์šฉํ•ฉ๋‹ˆ๋‹ค.

๊ฐ ๊ตฌ์„ฑํ‘œ๋Š” ์šฐ๋ฆฌ๊ฐ€ ์‚ฌ์šฉํ•˜๋Š” ์†Œํ”„ํŠธ์›จ์–ด์— ๋”ฐ๋ผ ์‚ฌ์šฉ๋  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค. ์˜ˆ๋ฅผ ๋“ค์–ด, ๋ฐฉ๊ธˆ ์ƒˆ ํ”„๋กœ์ ํŠธ ๊ฐœ๋ฐœ์„ ์‹œ์ž‘ํ•œ ๋‹ค์Œ ์• ํ”Œ๋ฆฌ์ผ€์ด์…˜์ด ์„œ๋น„์Šค ๊ฒ€์ƒ‰์— ์•Œ๋ฆด ๋•Œ ์ฒด๊ณ„๋ฅผ ์‰ฝ๊ฒŒ ์ œ๊ณตํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค. ๋˜๋Š” Service Discovery๊ฐ€ ํ™•์ธํ•˜๊ณ  ์žˆ๋Š” ๊ฒƒ์„ ์—ฐ๊ฒฐํ•  ์ˆ˜๋„ ์žˆ์Šต๋‹ˆ๋‹ค.

์• ํ”Œ๋ฆฌ์ผ€์ด์…˜์„ ์ƒ์†๋ฐ›์•˜๊ฑฐ๋‚˜ ๋‹ค๋ฅธ ์‚ฌ๋žŒ์ด ๊ฐœ๋ฐœํ•œ ๊ฒฝ์šฐ ํ•ธ๋“ค๋Ÿฌ๋ฅผ ์ž‘์„ฑํ•  ๋•Œ ์„ธ ๋ฒˆ์งธ ์˜ต์…˜์ด ์ ํ•ฉํ•˜๋ฉฐ ์ด ๋ชจ๋“  ๊ฒƒ์ด ์ž๋™์œผ๋กœ ์ž‘์—…์— ํฌํ•จ๋ฉ๋‹ˆ๋‹ค.

Consul์˜ ์˜ˆ๋ฅผ ์‚ฌ์šฉํ•˜์—ฌ ๋ถ„์‚ฐ ์‹œ์Šคํ…œ์—์„œ ์„œ๋น„์Šค ๊ฒ€์ƒ‰. ์•Œ๋ ‰์‚ฐ๋” ์‹œ๊ฐ€์ฒดํ”„

์ด๊ฒƒ์€ ํ•˜๋‚˜์˜ ์˜ˆ์ž…๋‹ˆ๋‹ค. nginx ํ˜•ํƒœ์˜ ๋กœ๋“œ๋ฐธ๋Ÿฐ์„œ๊ฐ€ ์žฌ๋ถ€ํŒ…๋ฉ๋‹ˆ๋‹ค. ์ด๋Š” Consul๊ณผ ํ•จ๊ป˜ ์ œ๊ณต๋˜๋Š” ์„ ํƒ์  ์œ ํ‹ธ๋ฆฌํ‹ฐ์ž…๋‹ˆ๋‹ค. ์ด๊ฒƒ์€ ์˜์‚ฌ ํ…œํ”Œ๋ฆฟ์ž…๋‹ˆ๋‹ค. ์šฐ๋ฆฌ๋Š” ๊ทœ์น™์„ ์„ค๋ช…ํ•ฉ๋‹ˆ๋‹ค. ์šฐ๋ฆฌ๋Š” ํ…œํ”Œ๋ฆฟ(Golang ํ…œํ”Œ๋ฆฟ ์—”์ง„)์„ ์‚ฌ์šฉํ•˜๊ณ  ์žˆ๋‹ค๊ณ  ๋งํ•ฉ๋‹ˆ๋‹ค. ์ด๋ฒคํŠธ๊ฐ€ ๋ฐœ์ƒํ•˜๋ฉด ๋ณ€๊ฒฝ ์‚ฌํ•ญ์ด ๋ฐœ์ƒํ–ˆ๋‹ค๋Š” ์•Œ๋ฆผ์ด ๋‹ค์‹œ ์ƒ์„ฑ๋˜๊ณ  "reload" ๋ช…๋ น์ด Service Discovery๋กœ ์ „์†ก๋ฉ๋‹ˆ๋‹ค. ๊ฐ€์žฅ ๊ฐ„๋‹จํ•œ ์˜ˆ๋Š” ์ด๋ฒคํŠธ์— ์˜ํ•ด nginx๊ฐ€ ์žฌ๊ตฌ์„ฑ๋˜๊ณ  ๋‹ค์‹œ ์‹œ์ž‘๋˜๋Š” ๊ฒฝ์šฐ์ž…๋‹ˆ๋‹ค.

Consul์˜ ์˜ˆ๋ฅผ ์‚ฌ์šฉํ•˜์—ฌ ๋ถ„์‚ฐ ์‹œ์Šคํ…œ์—์„œ ์„œ๋น„์Šค ๊ฒ€์ƒ‰. ์•Œ๋ ‰์‚ฐ๋” ์‹œ๊ฐ€์ฒดํ”„

์˜์‚ฌ๋Š” ๋ฌด์—‡์ž…๋‹ˆ๊นŒ?

  • ์šฐ์„  ์„œ๋น„์Šค ๋””์Šค์ปค๋ฒ„๋ฆฌ(Service Discovery)์ž…๋‹ˆ๋‹ค.

  • ๊ฐ€์šฉ์„ฑ ํ™•์ธ ๋ฉ”์ปค๋‹ˆ์ฆ˜(์ƒํƒœ ํ™•์ธ)์ด ์žˆ์Šต๋‹ˆ๋‹ค.

  • KV ์Šคํ† ์–ด๋„ ์žˆ์Šต๋‹ˆ๋‹ค.

  • ๊ทธ๋ฆฌ๊ณ  Multi Datacenter๋ฅผ ํ™œ์šฉํ•˜๋Š” ๋Šฅ๋ ฅ์„ ๊ธฐ๋ฐ˜์œผ๋กœ ํ•ฉ๋‹ˆ๋‹ค.

์ด ๋ชจ๋“  ๊ฒƒ์ด ๋ฌด์—‡์— ์‚ฌ์šฉ๋  ์ˆ˜ ์žˆ์Šต๋‹ˆ๊นŒ? KV ์Šคํ† ์–ด์—๋Š” ์˜ˆ์ œ ๊ตฌ์„ฑ์„ ์ €์žฅํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค. Health Checking ์ง€์—ญ ์„œ๋น„์Šค๋ฅผ ํ™•์ธํ•˜๊ณ  ์•Œ๋ ค๋“œ๋ฆด ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค. Multi Datacenter๋ฅผ ์ด์šฉํ•˜์—ฌ ์„œ๋น„์Šค ๋งต์„ ๊ตฌ์ถ•ํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค. ์˜ˆ๋ฅผ ๋“ค์–ด, Amazon์€ ์—ฌ๋Ÿฌ ์˜์—ญ์„ ๋ณด์œ ํ•˜๊ณ  ๊ฐ€์žฅ ์ตœ์ ์˜ ๋ฐฉ์‹์œผ๋กœ ํŠธ๋ž˜ํ”ฝ์„ ๋ผ์šฐํŒ…ํ•˜๋ฏ€๋กœ ๋ฐ์ดํ„ฐ ์„ผํ„ฐ ๊ฐ„์— ๋ถˆํ•„์š”ํ•œ ์š”์ฒญ์ด ๋ฐœ์ƒํ•˜์ง€ ์•Š์œผ๋ฉฐ ๋กœ์ปฌ ํŠธ๋ž˜ํ”ฝ๊ณผ ๋ณ„๋„๋กœ ์š”๊ธˆ์ด ๋ถ€๊ณผ๋˜๋ฏ€๋กœ ์ง€์—ฐ ์‹œ๊ฐ„์ด ์ค„์–ด๋“ญ๋‹ˆ๋‹ค.

Consul์˜ ์˜ˆ๋ฅผ ์‚ฌ์šฉํ•˜์—ฌ ๋ถ„์‚ฐ ์‹œ์Šคํ…œ์—์„œ ์„œ๋น„์Šค ๊ฒ€์ƒ‰. ์•Œ๋ ‰์‚ฐ๋” ์‹œ๊ฐ€์ฒดํ”„

Consul์—์„œ ์‚ฌ์šฉ๋˜๋Š” ์šฉ์–ด์— ๋Œ€ํ•ด ์กฐ๊ธˆ ์•Œ์•„๋ณด๊ฒ ์Šต๋‹ˆ๋‹ค.

  • Consul์€ Go๋กœ ์ž‘์„ฑ๋œ ์„œ๋น„์Šค์ž…๋‹ˆ๋‹ค. Go ํ”„๋กœ๊ทธ๋žจ์˜ ์žฅ์  ์ค‘ ํ•˜๋‚˜๋Š” ๋ฐฉ๊ธˆ ๋‹ค์šด๋กœ๋“œํ•œ 1๊ฐœ์˜ ๋ฐ”์ด๋„ˆ๋ฆฌ ํŒŒ์ผ์ž…๋‹ˆ๋‹ค. ์–ด๋””์—์„œ๋‚˜ ์‹คํ–‰๋˜๋ฉฐ ์ข…์†์„ฑ์ด ์—†์Šต๋‹ˆ๋‹ค.
  • ๊ทธ๋Ÿฐ ๋‹ค์Œ ํ‚ค๋ฅผ ์‚ฌ์šฉํ•˜์—ฌ ํด๋ผ์ด์–ธํŠธ ๋ชจ๋“œ๋‚˜ ์„œ๋ฒ„ ๋ชจ๋“œ์—์„œ ์ด ์„œ๋น„์Šค๋ฅผ ์‹œ์ž‘ํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค.
  • ๋˜ํ•œ "๋ฐ์ดํ„ฐ ์„ผํ„ฐ" ์†์„ฑ์„ ์‚ฌ์šฉํ•˜๋ฉด ์ด ์„œ๋ฒ„๊ฐ€ ์†ํ•œ ๋ฐ์ดํ„ฐ ์„ผํ„ฐ์— ๋Œ€ํ•œ ํ”Œ๋ž˜๊ทธ๋ฅผ ์„ค์ •ํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค.
  • ํ•ฉ์˜ โ€“ ๋—๋ชฉ ํ”„๋กœํ† ์ฝœ์„ ๊ธฐ๋ฐ˜์œผ๋กœ ํ•ฉ๋‹ˆ๋‹ค. ๊ด€์‹ฌ ์žˆ๋Š” ๋ถ„์ด ๊ณ„์‹œ๋‹ค๋ฉด ์˜์‚ฌ ์›น์‚ฌ์ดํŠธ์—์„œ ์ด์— ๋Œ€ํ•œ ์ž์„ธํ•œ ๋‚ด์šฉ์„ ์ฝ์–ด๋ณด์‹ค ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค. ์ด๋Š” ๋ฆฌ๋”๋ฅผ ๊ฒฐ์ •ํ•˜๊ณ  ์–ด๋–ค ๋ˆ์ด ์œ ํšจํ•˜๊ณ  ์ ‘๊ทผ ๊ฐ€๋Šฅํ•œ ๊ฒƒ์œผ๋กœ ๊ฐ„์ฃผ๋˜๋Š”์ง€ ๊ฒฐ์ •ํ•  ์ˆ˜ ์žˆ๋Š” ํ”„๋กœํ† ์ฝœ์ž…๋‹ˆ๋‹ค.
  • ๊ฐ€์‹ญ(Gossip)์€ ๋…ธ๋“œ ๊ฐ„ ์ƒํ˜ธ ์ž‘์šฉ์„ ๊ฐ€๋Šฅํ•˜๊ฒŒ ํ•˜๋Š” ํ”„๋กœํ† ์ฝœ์ž…๋‹ˆ๋‹ค. ๊ฒŒ๋‹ค๊ฐ€ ์ด ์‹œ์Šคํ…œ์€ ๋ถ„์‚ฐ๋˜์–ด ์žˆ์Šต๋‹ˆ๋‹ค. ํ•˜๋‚˜์˜ ๋ฐ์ดํ„ฐ ์„ผํ„ฐ ๋‚ด์—์„œ ๋ชจ๋“  ๋…ธ๋“œ๋Š” ์ด์›ƒ ๋…ธ๋“œ์™€ ํ†ต์‹ ํ•ฉ๋‹ˆ๋‹ค. ๊ทธ๋ฆฌ๊ณ  ์ด์— ๋”ฐ๋ผ ํ˜„์žฌ ์ƒํƒœ์— ๋Œ€ํ•œ ์ •๋ณด๊ฐ€ ์„œ๋กœ์—๊ฒŒ ์ „์†ก๋œ๋‹ค. ์ด๊ฒƒ์€ ์ด์›ƒ ๊ฐ„์˜ ํ—˜๋‹ด์ด๋ผ๊ณ  ๋งํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค.
  • LAN Gossip โ€“ ๋™์ผํ•œ ๋ฐ์ดํ„ฐ ์„ผํ„ฐ ๋‚ด์˜ ์ด์›ƒ ๊ฐ„์˜ ๋กœ์ปฌ ๋ฐ์ดํ„ฐ ๊ตํ™˜.
  • WAN Gossip - ๋‘ ๋ฐ์ดํ„ฐ ์„ผํ„ฐ ๊ฐ„์— ์ •๋ณด๋ฅผ ๋™๊ธฐํ™”ํ•ด์•ผ ํ•  ๋•Œ ์‚ฌ์šฉ๋ฉ๋‹ˆ๋‹ค. ์„œ๋ฒ„๋กœ ํ‘œ์‹œ๋œ ๋…ธ๋“œ ๊ฐ„์— ์ •๋ณด๊ฐ€ ํ๋ฆ…๋‹ˆ๋‹ค.
  • RPC โ€“ ์„œ๋ฒ„์˜ ํด๋ผ์ด์–ธํŠธ๋ฅผ ํ†ตํ•ด ์š”์ฒญ์„ ์‹คํ–‰ํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค.

RPC์— ๋Œ€ํ•œ ์„ค๋ช…์ž…๋‹ˆ๋‹ค. Consul์ด ๊ฐ€์ƒ ๋จธ์‹ ์ด๋‚˜ ๋ฌผ๋ฆฌ์  ์„œ๋ฒ„์—์„œ ํด๋ผ์ด์–ธํŠธ๋กœ ์‹คํ–‰๋˜๊ณ  ์žˆ๋‹ค๊ณ  ๊ฐ€์ •ํ•ด ๋ณด๊ฒ ์Šต๋‹ˆ๋‹ค. ํ˜„์ง€์—์„œ ๊ทธ์—๊ฒŒ ์—ฐ๋ฝํ•ฉ๋‹ˆ๋‹ค. ๊ทธ๋Ÿฌ๋ฉด ๋กœ์ปฌ ํด๋ผ์ด์–ธํŠธ๊ฐ€ ์„œ๋ฒ„์— ์ •๋ณด๋ฅผ ์š”์ฒญํ•˜๊ณ  ๋™๊ธฐํ™”๋ฉ๋‹ˆ๋‹ค. ์„ค์ •์— ๋”ฐ๋ผ ๋กœ์ปฌ ์บ์‹œ์—์„œ ์ •๋ณด๋ฅผ ๊ฒ€์ƒ‰ํ•˜๊ฑฐ๋‚˜ ๋ฆฌ๋”, ์„œ๋ฒ„ ๋งˆ์Šคํ„ฐ์™€ ๋™๊ธฐํ™”ํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค.

์ด ๋‘ ๊ฐ€์ง€ ๊ณ„ํš์—๋Š” ์žฅ๋‹จ์ ์ด ์žˆ์Šต๋‹ˆ๋‹ค. ๋กœ์ปฌ ์บ์‹œ๋กœ ์ž‘์—…ํ•˜๋ฉด ์†๋„๊ฐ€ ๋น ๋ฆ…๋‹ˆ๋‹ค. ์„œ๋ฒ„์— ์ €์žฅ๋œ ๋ฐ์ดํ„ฐ๋กœ ์ž‘์—…ํ•˜๋Š” ๊ฒฝ์šฐ ์‹œ๊ฐ„์ด ๋” ๊ฑธ๋ฆฌ์ง€๋งŒ ๋” ๊ด€๋ จ์„ฑ์ด ๋†’์€ ์ •๋ณด๋ฅผ ์–ป์„ ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค.

Consul์˜ ์˜ˆ๋ฅผ ์‚ฌ์šฉํ•˜์—ฌ ๋ถ„์‚ฐ ์‹œ์Šคํ…œ์—์„œ ์„œ๋น„์Šค ๊ฒ€์ƒ‰. ์•Œ๋ ‰์‚ฐ๋” ์‹œ๊ฐ€์ฒดํ”„

์ด๊ฒƒ์„ ๊ทธ๋ž˜ํ”ฝ์œผ๋กœ ๋ฌ˜์‚ฌํ•˜๋ฉด ์ด๊ฒƒ์ด ์‚ฌ์ดํŠธ์˜ ๊ทธ๋ฆผ์ž…๋‹ˆ๋‹ค. ์šฐ๋ฆฌ๋Š” ์„ธ ๋ช…์˜ ๋งˆ์Šคํ„ฐ๊ฐ€ ์‹คํ–‰๋˜๊ณ  ์žˆ์Œ์„ ์•Œ ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค. ํ•˜๋‚˜๋Š” ๋ฆฌ๋”๋กœ์„œ ๋ณ„ํ‘œ๋กœ ํ‘œ์‹œ๋ฉ๋‹ˆ๋‹ค. ์ด ์˜ˆ์—๋Š” UDP/TCP๋ฅผ ํ†ตํ•ด ๋กœ์ปฌ๋กœ ์„œ๋กœ ์ •๋ณด๋ฅผ ๊ตํ™˜ํ•˜๋Š” ์„ธ ๊ฐœ์˜ ํด๋ผ์ด์–ธํŠธ๊ฐ€ ์žˆ์Šต๋‹ˆ๋‹ค. ๊ทธ๋ฆฌ๊ณ  ๋ฐ์ดํ„ฐ ์„ผํ„ฐ ๊ฐ„์˜ ์ •๋ณด๋Š” ์„œ๋ฒ„ ๊ฐ„์— ์ „์†ก๋ฉ๋‹ˆ๋‹ค. ์—ฌ๊ธฐ์„œ ํด๋ผ์ด์–ธํŠธ๋Š” ๋กœ์ปฌ๋กœ ์„œ๋กœ ์ƒํ˜ธ ์ž‘์šฉํ•ฉ๋‹ˆ๋‹ค.

Consul์˜ ์˜ˆ๋ฅผ ์‚ฌ์šฉํ•˜์—ฌ ๋ถ„์‚ฐ ์‹œ์Šคํ…œ์—์„œ ์„œ๋น„์Šค ๊ฒ€์ƒ‰. ์•Œ๋ ‰์‚ฐ๋” ์‹œ๊ฐ€์ฒดํ”„

Consul์€ ์–ด๋–ค API๋ฅผ ์ œ๊ณตํ•˜๋‚˜์š”? ์ •๋ณด๋ฅผ ์–ป๊ธฐ ์œ„ํ•ด Consul์—๋Š” ๋‘ ๊ฐ€์ง€ ์œ ํ˜•์˜ API๊ฐ€ ์žˆ์Šต๋‹ˆ๋‹ค.

์ด๊ฒƒ์ด DNS API์ž…๋‹ˆ๋‹ค. ๊ธฐ๋ณธ์ ์œผ๋กœ Consul์€ ํฌํŠธ 8600์—์„œ ์‹คํ–‰๋ฉ๋‹ˆ๋‹ค. ์š”์ฒญ ํ”„๋ก์‹œ๋ฅผ ๊ตฌ์„ฑํ•˜๊ณ  ๋กœ์ปฌ DNS๋ฅผ ํ†ตํ•ด ๋กœ์ปฌ ํ™•์ธ์„ ํ†ตํ•ด ์•ก์„ธ์Šค๋ฅผ ์ œ๊ณตํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค. ๋„๋ฉ”์ธ๋ณ„๋กœ ์ฟผ๋ฆฌํ•˜๊ณ  ์ด์— ๋Œ€ํ•œ ์‘๋‹ต์œผ๋กœ IP ์ฃผ์†Œ ์ •๋ณด๋ฅผ ๋ฐ›์„ ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค.

HTTP API - ๋˜๋Š” ํฌํŠธ 8500์˜ ํŠน์ • ์„œ๋น„์Šค์— ๋Œ€ํ•œ ์ •๋ณด๋ฅผ ๋กœ์ปฌ๋กœ ์š”์ฒญํ•˜๊ณ  JSON ์‘๋‹ต, ์„œ๋ฒ„์˜ IP, ํ˜ธ์ŠคํŠธ, ๋“ฑ๋ก๋œ ํฌํŠธ๋ฅผ ์ˆ˜์‹ ํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค. ๊ทธ๋ฆฌ๊ณ  ์ถ”๊ฐ€ ์ •๋ณด๋Š” ํ† ํฐ์„ ํ†ตํ•ด ์ „์†ก๋  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค.

Consul์˜ ์˜ˆ๋ฅผ ์‚ฌ์šฉํ•˜์—ฌ ๋ถ„์‚ฐ ์‹œ์Šคํ…œ์—์„œ ์„œ๋น„์Šค ๊ฒ€์ƒ‰. ์•Œ๋ ‰์‚ฐ๋” ์‹œ๊ฐ€์ฒดํ”„

Consul์„ ์‹คํ–‰ํ•˜๋ ค๋ฉด ๋ฌด์—‡์ด ํ•„์š”ํ•ฉ๋‹ˆ๊นŒ?

์ฒซ ๋ฒˆ์งธ ์˜ต์…˜์ธ ๊ฐœ๋ฐœ์ž ๋ชจ๋“œ์—์„œ๋Š” ์ด๊ฒƒ์ด ๊ฐœ๋ฐœ์ž ๋ชจ๋“œ๋ผ๋Š” ํ”Œ๋ž˜๊ทธ๋ฅผ ๋‚˜ํƒ€๋ƒ…๋‹ˆ๋‹ค. ์—์ด์ „ํŠธ๋Š” ์„œ๋ฒ„๋กœ ์‹œ์ž‘๋ฉ๋‹ˆ๋‹ค. ๊ทธ๋ฆฌ๊ณ  ์ „์ฒด ๊ธฐ๋Šฅ์„ ํ•˜๋‚˜์˜ ์‹œ์Šคํ…œ์—์„œ ๋…๋ฆฝ์ ์œผ๋กœ ์ˆ˜ํ–‰ํ•ฉ๋‹ˆ๋‹ค. ํŽธ๋ฆฌํ•˜๊ณ  ๋น ๋ฅด๋ฉฐ ์ฒ˜์Œ ์‹œ์ž‘ํ•  ๋•Œ ์ถ”๊ฐ€ ์„ค์ •์ด ๊ฑฐ์˜ ํ•„์š”ํ•˜์ง€ ์•Š์Šต๋‹ˆ๋‹ค.

๋‘ ๋ฒˆ์งธ ๋ชจ๋“œ๋Š” ํ”„๋กœ๋•์…˜ ์ถœ์‹œ์ž…๋‹ˆ๋‹ค. ์—ฌ๊ธฐ์„œ ์‹œ์ž‘์ด ์กฐ๊ธˆ ๋ณต์žกํ•ด์ง‘๋‹ˆ๋‹ค. ์˜์‚ฌ ๋ฒ„์ „์ด ์—†๋‹ค๋ฉด ์ฒซ ๋ฒˆ์งธ ๋จธ์‹ ์„ ๋ถ€ํŠธ์ŠคํŠธ๋žฉ์œผ๋กœ ๊ฐ€์ ธ์™€์•ผ ํ•ฉ๋‹ˆ๋‹ค. ์ฆ‰, ๋ฆฌ๋”์˜ ์ฑ…์ž„์„ ๋งก๊ฒŒ ๋  ์ด ๋จธ์‹ ์ž…๋‹ˆ๋‹ค. ์ด๋ฅผ ๋ฐœ์ƒ์‹œํ‚จ ๋‹ค์Œ ์„œ๋ฒ„์˜ ๋‘ ๋ฒˆ์งธ ์ธ์Šคํ„ด์Šค๋ฅผ ๋ฐœ์ƒ์‹œ์ผœ ๋งˆ์Šคํ„ฐ๊ฐ€ ์žˆ๋Š” ์œ„์น˜์— ๋Œ€ํ•œ ์ •๋ณด๋ฅผ ์ „๋‹ฌํ•ฉ๋‹ˆ๋‹ค. ์šฐ๋ฆฌ๋Š” ์„ธ ๋ฒˆ์งธ๋ฅผ ํ‚ค์›๋‹ˆ๋‹ค. ์„ธ ๋Œ€์˜ ๋จธ์‹ ์„ ๊ฐ€๋™ํ•œ ํ›„ ์‹คํ–‰ ์ค‘์ธ ๋ถ€ํŠธ์ŠคํŠธ๋žฉ์˜ ์ฒซ ๋ฒˆ์งธ ๋จธ์‹ ์—์„œ ์ผ๋ฐ˜ ๋ชจ๋“œ๋กœ ๋‹ค์‹œ ์‹œ์ž‘ํ•ฉ๋‹ˆ๋‹ค. ๋ฐ์ดํ„ฐ๊ฐ€ ๋™๊ธฐํ™”๋˜์—ˆ์œผ๋ฉฐ ์ดˆ๊ธฐ ํด๋Ÿฌ์Šคํ„ฐ๊ฐ€ ์ด๋ฏธ ์‹คํ–‰ ์ค‘์ž…๋‹ˆ๋‹ค.

์„œ๋ฒ„ ๋ชจ๋“œ์—์„œ๋Š” XNUMX~XNUMX๊ฐœ์˜ ์ธ์Šคํ„ด์Šค๋ฅผ ์‹คํ–‰ํ•˜๋Š” ๊ฒƒ์ด ์ข‹์Šต๋‹ˆ๋‹ค. ์ด๋Š” ์„œ๋ฒ„ ์ˆ˜๊ฐ€ ์ฆ๊ฐ€ํ•˜๋ฉด ์„œ๋ฒ„ ๊ฐ„์˜ ์ •๋ณด ๋™๊ธฐํ™” ์‹œ๊ฐ„์ด ๋Š˜์–ด๋‚˜๊ธฐ ๋•Œ๋ฌธ์ž…๋‹ˆ๋‹ค. ์ฟผ๋Ÿผ์„ ๋ณด์žฅํ•˜๋ ค๋ฉด ๋…ธ๋“œ ์ˆ˜๊ฐ€ ํ™€์ˆ˜์—ฌ์•ผ ํ•ฉ๋‹ˆ๋‹ค.

Consul์˜ ์˜ˆ๋ฅผ ์‚ฌ์šฉํ•˜์—ฌ ๋ถ„์‚ฐ ์‹œ์Šคํ…œ์—์„œ ์„œ๋น„์Šค ๊ฒ€์ƒ‰. ์•Œ๋ ‰์‚ฐ๋” ์‹œ๊ฐ€์ฒดํ”„

๊ฑด๊ฐ•๊ฒ€์ง„์€ ์–ด๋–ป๊ฒŒ ์ œ๊ณต๋˜๋‚˜์š”? Consul ๊ตฌ์„ฑ ๋””๋ ‰ํ„ฐ๋ฆฌ์— Json ํ˜•์‹์œผ๋กœ ํ™•์ธ ๊ทœ์น™์„ ์ž‘์„ฑํ•ฉ๋‹ˆ๋‹ค. ์ฒซ ๋ฒˆ์งธ ์˜ต์…˜์€ ์ด ์˜ˆ์—์„œ google.com ๋„๋ฉ”์ธ์˜ ๊ฐ€์šฉ์„ฑ์ž…๋‹ˆ๋‹ค. ๊ทธ๋ฆฌ๊ณ  ์šฐ๋ฆฌ๋Š” ์ด ๊ฒ€์‚ฌ๋ฅผ 30์ดˆ ๊ฐ„๊ฒฉ์œผ๋กœ ์ˆ˜ํ–‰ํ•ด์•ผ ํ•œ๋‹ค๊ณ  ๋งํ•ฉ๋‹ˆ๋‹ค. ์ด ๋ฐฉ๋ฒ•์œผ๋กœ ๋…ธ๋“œ๊ฐ€ ์™ธ๋ถ€ ๋„คํŠธ์›Œํฌ์— ์•ก์„ธ์Šคํ•  ์ˆ˜ ์žˆ๋Š”์ง€ ํ™•์ธํ•ฉ๋‹ˆ๋‹ค.

๋‘ ๋ฒˆ์งธ ์˜ต์…˜์€ ์ž์‹ ์„ ํ™•์ธํ•˜๋Š” ๊ฒƒ์ž…๋‹ˆ๋‹ค. ์ผ๋ฐ˜ ์ปฌ์„ ์‚ฌ์šฉํ•˜์—ฌ 10์ดˆ ๊ฐ„๊ฒฉ์œผ๋กœ ์ง€์ •๋œ ํฌํŠธ์—์„œ localhost๋ฅผ ํ˜ธ์ถœํ•ฉ๋‹ˆ๋‹ค.

์ด๋Ÿฌํ•œ ๊ฒ€์‚ฌ๋Š” ์š”์•ฝ๋˜์–ด ์„œ๋น„์Šค ๊ฒ€์ƒ‰์œผ๋กœ ์ „์†ก๋ฉ๋‹ˆ๋‹ค. ๊ฐ€์šฉ์„ฑ์— ๋”ฐ๋ผ ์ด๋Ÿฌํ•œ ๋…ธ๋“œ๋Š” ์ œ์™ธ๋˜๊ฑฐ๋‚˜ ์‚ฌ์šฉ ๊ฐ€๋Šฅํ•˜๊ณ  ์˜ฌ๋ฐ”๋ฅด๊ฒŒ ์ž‘๋™ํ•˜๋Š” ์‹œ์Šคํ…œ ๋ชฉ๋ก์— ๋‚˜ํƒ€๋‚ฉ๋‹ˆ๋‹ค.

Consul์˜ ์˜ˆ๋ฅผ ์‚ฌ์šฉํ•˜์—ฌ ๋ถ„์‚ฐ ์‹œ์Šคํ…œ์—์„œ ์„œ๋น„์Šค ๊ฒ€์ƒ‰. ์•Œ๋ ‰์‚ฐ๋” ์‹œ๊ฐ€์ฒดํ”„

Consul์€ ๋˜ํ•œ ๋ณ„๋„์˜ ํ”Œ๋ž˜๊ทธ๋กœ ์‹คํ–‰๋˜์–ด ์ปดํ“จํ„ฐ์—์„œ ์‚ฌ์šฉํ•  ์ˆ˜ ์žˆ๋Š” UI ์ธํ„ฐํŽ˜์ด์Šค๋ฅผ ์ œ๊ณตํ•ฉ๋‹ˆ๋‹ค. ์ด๋ฅผ ํ†ตํ•ด ์ •๋ณด๋ฅผ ๋ณผ ์ˆ˜ ์žˆ์œผ๋ฉฐ ์ผ๋ถ€ ๋‚ด์šฉ์„ ๋ณ€๊ฒฝํ•  ์ˆ˜๋„ ์žˆ์Šต๋‹ˆ๋‹ค.

์ด ์˜ˆ์—์„œ๋Š” "์„œ๋น„์Šค" ํƒญ์ด ์—ด๋ ค ์žˆ์Šต๋‹ˆ๋‹ค. ์„ธ ๊ฐ€์ง€ ์„œ๋น„์Šค๊ฐ€ ์‹คํ–‰๋˜๊ณ  ์žˆ๋Š” ๊ฒƒ์œผ๋กœ ํ‘œ์‹œ๋˜๋ฉฐ ๊ทธ ์ค‘ ํ•˜๋‚˜๋Š” Consul์ž…๋‹ˆ๋‹ค. ์ˆ˜ํ–‰๋œ ๊ฒ€์‚ฌ ์ˆ˜์ž…๋‹ˆ๋‹ค. ๊ทธ๋ฆฌ๊ณ  ๊ธฐ๊ณ„๊ฐ€ ์œ„์น˜ํ•œ ์„ธ ๊ฐœ์˜ ๋ฐ์ดํ„ฐ ์„ผํ„ฐ๊ฐ€ ์žˆ์Šต๋‹ˆ๋‹ค.

Consul์˜ ์˜ˆ๋ฅผ ์‚ฌ์šฉํ•˜์—ฌ ๋ถ„์‚ฐ ์‹œ์Šคํ…œ์—์„œ ์„œ๋น„์Šค ๊ฒ€์ƒ‰. ์•Œ๋ ‰์‚ฐ๋” ์‹œ๊ฐ€์ฒดํ”„

์ด๋Š” ๋…ธ๋“œ ํƒญ์˜ ์˜ˆ์ž…๋‹ˆ๋‹ค. ๋ฐ์ดํ„ฐ ์„ผํ„ฐ์™€ ๊ด€๋ จ๋œ ๋ณตํ•ฉ ์ด๋ฆ„์ด ์žˆ์Œ์„ ์•Œ ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค. ๋˜ํ•œ ์‹คํ–‰ ์ค‘์ธ ์„œ๋น„์Šค๋„ ํ‘œ์‹œ๋ฉ๋‹ˆ๋‹ค. ์ฆ‰, ์„ค์ •๋œ ํƒœ๊ทธ๊ฐ€ ์—†์Œ์„ ์•Œ ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค. ์ด๋Ÿฌํ•œ ์ถ”๊ฐ€ ํƒœ๊ทธ๋Š” ๊ฐœ๋ฐœ์ž๊ฐ€ ์ถ”๊ฐ€ ๋งค๊ฐœ๋ณ€์ˆ˜๋ฅผ ์ง€์ •ํ•˜๋Š” ๋ฐ ์‚ฌ์šฉํ•  ์ˆ˜ ์žˆ๋Š” ์ผ๋ถ€ ์ •๋ณด๋ฅผ ์ œ๊ณตํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค.

๋””์Šคํฌ ์ƒํƒœ ๋ฐ ํ‰๊ท  ๋ถ€ํ•˜์— ๋Œ€ํ•œ ์ •๋ณด๋ฅผ Consul์— ์ „์†กํ•  ์ˆ˜๋„ ์žˆ์Šต๋‹ˆ๋‹ค.

์งˆ๋ฌธ

์งˆ๋ฌธ: Docker ์ปจํ…Œ์ด๋„ˆ๊ฐ€ ์žˆ๋Š”๋ฐ Consul์—์„œ ์–ด๋–ป๊ฒŒ ์‚ฌ์šฉํ•˜๋‚˜์š”?

๋‹ต๋ณ€: Docker ์ปจํ…Œ์ด๋„ˆ์—๋Š” ์—ฌ๋Ÿฌ ๊ฐ€์ง€ ์ ‘๊ทผ ๋ฐฉ์‹์ด ์žˆ์Šต๋‹ˆ๋‹ค. ๊ฐ€์žฅ ์ผ๋ฐ˜์ ์ธ ๋ฐฉ๋ฒ• ์ค‘ ํ•˜๋‚˜๋Š” ๋“ฑ๋ก์„ ๋‹ด๋‹นํ•˜๋Š” ํƒ€์‚ฌ ๋„์ปค ์ปจํ…Œ์ด๋„ˆ๋ฅผ ์‚ฌ์šฉํ•˜๋Š” ๊ฒƒ์ž…๋‹ˆ๋‹ค. ์‹œ์ž‘ ์‹œ docker ์†Œ์ผ“์ด ์ „๋‹ฌ๋ฉ๋‹ˆ๋‹ค. ๋ชจ๋“  ์ปจํ…Œ์ด๋„ˆ ๋“ฑ๋ก ๋ฐ ๊ฒŒ์‹œ ์ทจ์†Œ ์ด๋ฒคํŠธ๋Š” Consul์— ๊ธฐ๋ก๋ฉ๋‹ˆ๋‹ค.

์งˆ๋ฌธ: ๊ทธ๋Ÿฌ๋ฉด Consul ์ž์ฒด๊ฐ€ Docker ์ปจํ…Œ์ด๋„ˆ๋ฅผ ์‹œ์ž‘ํ•ฉ๋‹ˆ๊นŒ?

๋Œ€๋‹ต: ์•„๋‹ˆ์š”. ์šฐ๋ฆฌ๋Š” ๋„์ปค ์ปจํ…Œ์ด๋„ˆ๋ฅผ ์‹คํ–‰ํ•˜๊ณ  ์žˆ์Šต๋‹ˆ๋‹ค. ๊ทธ๋ฆฌ๊ณ  ๊ตฌ์„ฑํ•  ๋•Œ ์šฐ๋ฆฌ๋Š” ๊ทธ๋Ÿฌํ•œ ์†Œ์ผ“์„ ๋“ฃ์Šต๋‹ˆ๋‹ค. ์ด๋Š” ์šฐ๋ฆฌ๊ฐ€ ๊ฐ€์ง€๊ณ  ์žˆ๋Š” ์œ„์น˜์™€ ํ•ญ๋ชฉ์— ๋Œ€ํ•œ ์ •๋ณด๋ฅผ ์—…๋กœ๋“œํ•  ๋•Œ ์ธ์ฆ์„œ๋ฅผ ์‚ฌ์šฉํ•˜์—ฌ ์ž‘์—…ํ•˜๋Š” ๋ฐฉ๋ฒ•๊ณผ ๊ฑฐ์˜ ๋™์ผํ•ฉ๋‹ˆ๋‹ค.

์งˆ๋ฌธ: Service Discovery์— ์—ฐ๊ฒฐํ•˜๋ ค๋Š” Docker ์ปจํ…Œ์ด๋„ˆ ๋‚ด๋ถ€์—๋Š” Consul์— ๋ฐ์ดํ„ฐ๋ฅผ ๋ณด๋‚ผ ์ˆ˜ ์žˆ๋Š” ์ผ์ข…์˜ ๋กœ์ง์ด ์žˆ์–ด์•ผ ํ•œ๋‹ค๋Š” ๊ฒƒ์ด ๋ฐํ˜€์กŒ์Šต๋‹ˆ๋‹ค.

๋‹ต๋ณ€: ๊ทธ๋ ‡์ง€ ์•Š์Šต๋‹ˆ๋‹ค. ์‹œ์ž‘๋˜๋ฉด ํ™˜๊ฒฝ ๋ณ€์ˆ˜๋ฅผ ํ†ตํ•ด ๋ณ€์ˆ˜๋ฅผ ์ „๋‹ฌํ•ฉ๋‹ˆ๋‹ค. ์„œ๋น„์Šค ์ด๋ฆ„, ์„œ๋น„์Šค ํฌํŠธ๋ฅผ ๊ฐ€์ •ํ•ด ๋ณด๊ฒ ์Šต๋‹ˆ๋‹ค. ๋“ฑ๋ก๋ถ€๋Š” ์ด ์ •๋ณด๋ฅผ ๋“ฃ๊ณ  ์ด๋ฅผ Consul์— ์ž…๋ ฅํ•ฉ๋‹ˆ๋‹ค.

์งˆ๋ฌธ: UI์— ๊ด€ํ•ด ๋˜ ๋‹ค๋ฅธ ์งˆ๋ฌธ์ด ์žˆ์Šต๋‹ˆ๋‹ค. ์˜ˆ๋ฅผ ๋“ค์–ด ํ”„๋กœ๋•์…˜ ์„œ๋ฒ„์— UI๋ฅผ ๋ฐฐํฌํ–ˆ์Šต๋‹ˆ๋‹ค. ๋ณด์•ˆ์€ ์–ด๋–ป์Šต๋‹ˆ๊นŒ? ๋ฐ์ดํ„ฐ๋Š” ์–ด๋””์— ์ €์žฅ๋˜๋‚˜์š”? ์–ด๋–ป๊ฒŒ๋“  ๋ฐ์ดํ„ฐ๋ฅผ ์ถ•์ ํ•˜๋Š” ๊ฒƒ์ด ๊ฐ€๋Šฅํ•ฉ๋‹ˆ๊นŒ?

๋‹ต๋ณ€: UI์—๋Š” ๋ฐ์ดํ„ฐ๋ฒ ์ด์Šค์™€ ์„œ๋น„์Šค ๊ฒ€์ƒ‰์˜ ๋ฐ์ดํ„ฐ๊ฐ€ ์žˆ์Šต๋‹ˆ๋‹ค. ์šฐ๋ฆฌ๋Š” ์„ค์ •์—์„œ ๋น„๋ฐ€๋ฒˆํ˜ธ๋ฅผ ์ง์ ‘ ์„ค์ •ํ–ˆ์Šต๋‹ˆ๋‹ค.

์งˆ๋ฌธ: ์ด ๋‚ด์šฉ์„ ์ธํ„ฐ๋„ท์— ๊ฒŒ์‹œํ•  ์ˆ˜ ์žˆ๋‚˜์š”?

๋‹ต๋ณ€: ๊ธฐ๋ณธ์ ์œผ๋กœ Consul์€ localhost์—์„œ ์‹œ์ž‘๋ฉ๋‹ˆ๋‹ค. ์ธํ„ฐ๋„ท์— ๊ฒŒ์‹œํ•˜๋ ค๋ฉด ์ผ์ข…์˜ ํ”„๋ก์‹œ๋ฅผ ์„ค์น˜ํ•ด์•ผ ํ•ฉ๋‹ˆ๋‹ค. ์šฐ๋ฆฌ๋Š” ์ž์ฒด ์•ˆ์ „ ๊ทœ์น™์— ๋Œ€ํ•œ ์ฑ…์ž„์ด ์žˆ์Šต๋‹ˆ๋‹ค.

์งˆ๋ฌธ: ๊ธฐ๋ณธ์ ์œผ๋กœ ๊ณผ๊ฑฐ ๋ฐ์ดํ„ฐ๋ฅผ ์ œ๊ณตํ•ฉ๋‹ˆ๊นŒ? ๊ฑด๊ฐ•๊ฒ€์ง„์— ๋Œ€ํ•œ ํ†ต๊ณ„๋ฅผ ๋ณด๋Š” ๊ฒƒ์€ ํฅ๋ฏธ๋กญ์Šต๋‹ˆ๋‹ค. ์„œ๋ฒ„๊ฐ€ ์ž์ฃผ ์‹คํŒจํ•˜๋Š” ๊ฒฝ์šฐ ๋ฌธ์ œ๋ฅผ ์ง„๋‹จํ•  ์ˆ˜๋„ ์žˆ์Šต๋‹ˆ๋‹ค.

๋‹ต๋ณ€: ๊ฑฐ๊ธฐ์— ์ˆ˜ํ‘œ ์„ธ๋ถ€์ •๋ณด๊ฐ€ ์žˆ๋Š”์ง€ ์ž˜ ๋ชจ๋ฅด๊ฒ ์Šต๋‹ˆ๋‹ค.

์งˆ๋ฌธ: ํ˜„์žฌ ์ƒํƒœ๋Š” ์—ญํ•™๋งŒํผ ์ค‘์š”ํ•˜์ง€ ์•Š์Šต๋‹ˆ๋‹ค.

๋‹ต๋ณ€: ๋ถ„์„์„ ์œ„ํ•ด โ€“ ๊ทธ๋ ‡์Šต๋‹ˆ๋‹ค.

์งˆ๋ฌธ: Consul docker์— Service Discovery๋ฅผ ์‚ฌ์šฉํ•˜์ง€ ์•Š๋Š” ๊ฒƒ์ด ๋” ๋‚ซ์Šต๋‹ˆ๊นŒ?

๋‹ต๋ณ€: ์‚ฌ์šฉ์„ ๊ถŒ์žฅํ•˜์ง€ ์•Š์Šต๋‹ˆ๋‹ค. ๋ณด๊ณ ์„œ์˜ ๋ชฉ์ ์€ ๊ทธ๋Ÿฌํ•œ ๊ฐœ๋…์ด ๋ฌด์—‡์ธ์ง€ ์†Œ๊ฐœํ•˜๋Š” ๊ฒƒ์ž…๋‹ˆ๋‹ค. ์ œ ์ƒ๊ฐ์—๋Š” ์—ญ์‚ฌ์ ์œผ๋กœ ์ฒซ ๋ฒˆ์งธ ๋ฒ„์ „์ด ๋‚˜์™”์Šต๋‹ˆ๋‹ค. ์ด์ œ ์ด ๋ชจ๋“  ๊ฒƒ์„ ๋‚ด๋ถ€์— ํฌํ•จํ•˜๋Š” Kubernetes์™€ ๊ฐ™์€ ๋” ์™„์ „ํ•œ ์†”๋ฃจ์…˜์ด ์ด๋ฏธ ์žˆ์Šต๋‹ˆ๋‹ค. Kubernetes Service Discovery์˜ ์ผ๋ถ€๋กœ Etcd๋ณด๋‹ค ์—ด๋“ฑํ•ฉ๋‹ˆ๋‹ค. ํ•˜์ง€๋งŒ ๋‚˜๋Š” ์˜์‚ฌ๋งŒํผ ์ต์ˆ™ํ•˜์ง€ ์•Š์Šต๋‹ˆ๋‹ค. ๊ทธ๋ž˜์„œ Consul์„ ์˜ˆ๋กœ ๋“ค์–ด Service Discovery๋ฅผ ๋งŒ๋“ค์–ด ๋ณด๊ธฐ๋กœ ํ–ˆ์Šต๋‹ˆ๋‹ค.

์งˆ๋ฌธ: ๋ฆฌ๋” ์„œ๋ฒ„๋ฅผ ์‚ฌ์šฉํ•˜๋Š” ๋ฐฉ์‹์€ ์ „์ฒด์ ์œผ๋กœ ์• ํ”Œ๋ฆฌ์ผ€์ด์…˜ ์‹œ์ž‘ ์†๋„๋ฅผ ๋Šฆ์ถ”์ง€ ์•Š์Šต๋‹ˆ๊นŒ? ๊ทธ๋ฆฌ๊ณ  ์ด ์ง€๋„์ž๊ฐ€ ๊ฑฐ์ง“๋ง์„ ํ•˜๊ณ  ์žˆ๋‹ค๋ฉด ์˜์‚ฌ๋Š” ์–ด๋–ป๊ฒŒ ์ƒˆ๋กœ์šด ์ง€๋„์ž๋ฅผ ๊ฒฐ์ •ํ•ฉ๋‹ˆ๊นŒ?

๋‹ต๋ณ€: ์ „์ฒด ํ”„๋กœํ† ์ฝœ์ด ์„ค๋ช…๋˜์–ด ์žˆ์Šต๋‹ˆ๋‹ค. ๊ด€์‹ฌ์ด ์žˆ์œผ์‹œ๋ฉด ์ฝ์–ด๋ณด์‹ค ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค.

์งˆ๋ฌธ: Consul์€ ์šฐ๋ฆฌ๋ฅผ ์œ„ํ•œ ์™„์ „ํ•œ ์„œ๋ฒ„ ์—ญํ• ์„ ํ•˜๋ฉฐ ๋ชจ๋“  ์š”์ฒญ์ด ์ด๋ฅผ ํ†ตํ•ด ์ „๋‹ฌ๋ฉ๋‹ˆ๊นŒ?

๋‹ต๋ณ€: ๋ณธ๊ฒฉ์ ์ธ ์„œ๋ฒ„ ์—ญํ• ์„ ํ•˜๋Š” ๊ฒƒ์ด ์•„๋‹ˆ๋ผ ํŠน์ • ์˜์—ญ์„ ๋Œ€์‹ ํ•ฉ๋‹ˆ๋‹ค. ์ผ๋ฐ˜์ ์œผ๋กœ service.consul๋กœ ๋๋‚ฉ๋‹ˆ๋‹ค. ๊ทธ๋Ÿฐ ๋‹ค์Œ ๋…ผ๋ฆฌ์ ์œผ๋กœ ์ง„ํ–‰ํ•ฉ๋‹ˆ๋‹ค. ์šฐ๋ฆฌ๋Š” ํ”„๋กœ๋•์…˜์—์„œ ๋„๋ฉ”์ธ ์ด๋ฆ„์„ ์‚ฌ์šฉํ•˜์ง€ ์•Š๊ณ  DNS๋ฅผ ์‚ฌ์šฉํ•˜์—ฌ ์ž‘์—…ํ•˜๋Š” ๊ฒฝ์šฐ ์ผ๋ฐ˜์ ์œผ๋กœ ์„œ๋ฒ„ ์บ์‹ฑ ๋’ค์— ์ˆจ๊ฒจ์ ธ ์žˆ๋Š” ๋‚ด๋ถ€ ์ธํ”„๋ผ๋ฅผ ์‚ฌ์šฉํ•ฉ๋‹ˆ๋‹ค.

์งˆ๋ฌธ: ์ฆ‰, ๋ฐ์ดํ„ฐ๋ฒ ์ด์Šค์— ์•ก์„ธ์Šคํ•˜๋ ค๋ฉด ์–ด๋–ค ๊ฒฝ์šฐ์—๋„ Consul์„ ๋Œ์–ด์™€ ์ด ๋ฐ์ดํ„ฐ๋ฒ ์ด์Šค๋ฅผ ๋จผ์ € ์ฐพ์•„์•ผ ํ•ฉ๋‹ˆ๋‹ค. ๊ทธ๋ ‡์ฃ ?

๋Œ€๋‹ต: ๊ทธ๋ ‡์Šต๋‹ˆ๋‹ค. DNS๋ฅผ ์‚ฌ์šฉํ•˜์—ฌ ์ž‘์—…ํ•˜๋Š” ๊ฒฝ์šฐ DNS ์ด๋ฆ„์„ ์‚ฌ์šฉํ•  ๋•Œ Consul์ด ์—†๋Š” ๊ฒƒ๊ณผ ๋™์ผํ•˜๊ฒŒ ์ž‘๋™ํ•ฉ๋‹ˆ๋‹ค. ์ผ๋ฐ˜์ ์œผ๋กœ ์ตœ์‹  ์‘์šฉ ํ”„๋กœ๊ทธ๋žจ์€ ๋ชจ๋“  ์š”์ฒญ์—์„œ ๋„๋ฉ”์ธ ์ด๋ฆ„์„ ๊ฐ€์ ธ์˜ค์ง€ ์•Š์Šต๋‹ˆ๋‹ค. ์—ฐ๊ฒฐ์„ ์„ค์น˜ํ•˜๋ฉด ๋ชจ๋“  ๊ฒƒ์ด ์ž‘๋™ํ•˜๊ณ  ๊ฐ€๊นŒ์šด ์‹œ์ผ ๋‚ด์— ์‹ค์ œ๋กœ ์‚ฌ์šฉํ•˜์ง€ ์•Š๊ธฐ ๋•Œ๋ฌธ์ž…๋‹ˆ๋‹ค. ์—ฐ๊ฒฐ์ด ๋Š์–ด์ง€๋ฉด ๊ทธ๋ ‡์Šต๋‹ˆ๋‹ค. ๊ธฐ์ง€๊ฐ€ ์–ด๋””์— ์žˆ๋Š”์ง€ ๋‹ค์‹œ ๋ฌป๊ณ  ๊ทธ๊ณณ์œผ๋กœ ์ด๋™ํ•ฉ๋‹ˆ๋‹ค.

Hashicorp ์ œํ’ˆ ์ฑ„ํŒ… โ€” Hashicorp ์‚ฌ์šฉ์ž ์ฑ„ํŒ…: Consul, Nomad, Terraform

PS ๊ฑด๊ฐ•๊ฒ€์ง„ ๊ด€๋ จ. Consul์€ Kubernetes์™€ ๋งˆ์ฐฌ๊ฐ€์ง€๋กœ ์ฝ”๋“œ ์ƒํƒœ๋ฅผ ๊ธฐ๋ฐ˜์œผ๋กœ ์„œ๋น„์Šค์˜ ์ƒ์กด ๊ฐ€๋Šฅ์„ฑ ์ƒํƒœ๋ฅผ ํ™•์ธํ•˜๊ธฐ ์œ„ํ•ด ๋™์ผํ•œ ์‹œ์Šคํ…œ์„ ์‚ฌ์šฉํ•ฉ๋‹ˆ๋‹ค.

200 OK for healthy
503 Service Unavailable for unhealthy

์ถœ์ฒ˜ :
https://www.consul.io/docs/agent/checks.html
https://kubernetes.io/docs/tasks/configure-pod-container/configure-liveness-readiness-startup-probes/
https://thoslin.github.io/microservice-health-check-in-kubernetes/

์ถœ์ฒ˜ : habr.com

์ฝ”๋ฉ˜ํŠธ๋ฅผ ์ถ”๊ฐ€