๊ณ ๊ธ‰ ํŠธ๋ž˜ํ”ฝ ๊ด€๋ฆฌ ๊ฐœ์š”

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

Cloud Service Mesh๋Š” ํŠธ๋ž˜ํ”ฝ ์ฒ˜๋ฆฌ ๋ฐฉ๋ฒ•์„ ์„ธ๋ถ€์ ์œผ๋กœ ์ œ์–ดํ•  ์ˆ˜ ์žˆ๋Š” ๊ณ ๊ธ‰ ํŠธ๋ž˜ํ”ฝ ๊ด€๋ฆฌ ๊ธฐ๋Šฅ์„ ์ œ๊ณตํ•ฉ๋‹ˆ๋‹ค. Cloud Service Mesh์—์„œ๋Š” ๋‹ค์Œ ์‚ฌ์šฉ ์‚ฌ๋ก€๊ฐ€ ์ง€์›๋ฉ๋‹ˆ๋‹ค.

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

์ด๋Ÿฌํ•œ ๊ณ ๊ธ‰ ํŠธ๋ž˜ํ”ฝ ๊ด€๋ฆฌ ๊ธฐ๋Šฅ์„ ์‚ฌ์šฉํ•˜๋ฉด ๊ฐ€์šฉ์„ฑ ๋ฐ ์„ฑ๋Šฅ ๋ชฉํ‘œ๋ฅผ ์ถฉ์กฑํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค. ์ด๋Ÿฌํ•œ ์‚ฌ์šฉ ์‚ฌ๋ก€์— Cloud Service Mesh๋ฅผ ์‚ฌ์šฉํ•  ๋•Œ์˜ ์ด์  ์ค‘ ํ•˜๋‚˜๋Š” ์• ํ”Œ๋ฆฌ์ผ€์ด์…˜ ์ฝ”๋“œ๋ฅผ ์ˆ˜์ •ํ•  ํ•„์š” ์—†์ด ํŠธ๋ž˜ํ”ฝ ๊ด€๋ฆฌ ๋ฐฉ๋ฒ•์„ ์—…๋ฐ์ดํŠธํ•  ์ˆ˜ ์žˆ๋‹ค๋Š” ์ ์ž…๋‹ˆ๋‹ค.

Cloud Service Mesh ์„œ๋น„์Šค ๋ฉ”์‹œ์˜ ํŠธ๋ž˜ํ”ฝ ๊ด€๋ฆฌ์—๋Š” ๋‹ค์Œ ๋ฆฌ์†Œ์Šค๊ฐ€ ์‚ฌ์šฉ๋ฉ๋‹ˆ๋‹ค.

  • Mesh ๋ฆฌ์†Œ์Šค๋Š” ์„œ๋น„์Šค ๋ฉ”์‹œ๋ฅผ ์‹๋ณ„ํ•˜๊ณ  ํŠธ๋ž˜ํ”ฝ ์ „๋‹ฌ ๋ฐ ์ •์ฑ… ์ ์šฉ์„ ๋‹ด๋‹นํ•˜๋Š” ๊ตฌ์„ฑ์š”์†Œ๋ฅผ ๋‚˜ํƒ€๋ƒ…๋‹ˆ๋‹ค. Mesh ๋ฆฌ์†Œ์Šค๋Š” ๋˜ํ•œ ํŠธ๋ž˜ํ”ฝ ๊ฐ€๋กœ์ฑ„๊ธฐ ํฌํŠธ๋ฅผ ์‹๋ณ„ํ•ฉ๋‹ˆ๋‹ค.
  • Gateway ๋ฆฌ์†Œ์Šค๋Š” ์ค‘๊ฐ„ ํ”„๋ก์‹œ๋ฅผ ์‹๋ณ„ํ•˜๋ฉฐ IP ์ฃผ์†Œ:ํฌํŠธ ์Œ ๋ชฉ๋ก์—์„œ ๋ฆฌ์Šจํ•˜๊ณ , ํŠธ๋ž˜ํ”ฝ์„ ์ „๋‹ฌํ•˜๊ณ , ์ •์ฑ…์„ ์ ์šฉํ•˜๋Š” ๊ตฌ์„ฑ์š”์†Œ๋ฅผ ๋‚˜ํƒ€๋ƒ…๋‹ˆ๋‹ค.
  • Route ๋ฆฌ์†Œ์Šค๋Š” ์—ฌ๋Ÿฌ ์œ ํ˜• ์ค‘ ํ•˜๋‚˜์ผ ์ˆ˜ ์žˆ์œผ๋ฉฐ ๋ฉ”์‹œ์— ๋Œ€ํ•œ ํŠธ๋ž˜ํ”ฝ ๋ผ์šฐํŒ… ์ •๋ณด๋ฅผ ํฌํ•จํ•ฉ๋‹ˆ๋‹ค. Route ๋ฆฌ์†Œ์Šค๋Š” ํด๋ผ์ด์–ธํŠธ๊ฐ€ ๋ฐฑ์—”๋“œ ์„œ๋น„์Šค๋กœ ํŠธ๋ž˜ํ”ฝ์„ ๋ผ์šฐํŒ…ํ•˜๋Š” ๋ฐ ์‚ฌ์šฉํ•  ์ˆ˜ ์žˆ๋Š” ํ˜ธ์ŠคํŠธ ์ด๋ฆ„๊ณผ ํฌํŠธ๋ฅผ ์‹๋ณ„ํ•ฉ๋‹ˆ๋‹ค. ๋‹ค์Œ์€ Route ๋ฆฌ์†Œ์Šค์˜ ์—ฌ๋Ÿฌ ์œ ํ˜•์ž…๋‹ˆ๋‹ค.
    • HTTPRoute๋Š” Envoy ํ”„๋ก์‹œ๋ฅผ ์‚ฌ์šฉํ•˜๋Š” ๋ฉ”์‹œ์—์„œ๋งŒ ์‚ฌ์šฉํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค. HTTPRoute ๋ฆฌ์†Œ์Šค๋ฅผ ์‚ฌ์šฉํ•˜์—ฌ HTTP ์š”์ฒญ์„ ์ „์†กํ•˜๋„๋ก Envoy ํ”„๋ก์‹œ๋ฅผ ๊ตฌ์„ฑํ•  ๋•Œ๋Š” ์ด ๋ฌธ์„œ์˜ ๋ชจ๋“  ๊ธฐ๋Šฅ์„ ์‚ฌ์šฉํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค.
    • TCPRoute๋Š” Envoy ํ”„๋ก์‹œ๋ฅผ ์‚ฌ์šฉํ•˜๋Š” ๋ฉ”์‹œ์—์„œ๋งŒ ์‚ฌ์šฉํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค.
    • TLSRoute๋Š” Envoy ํ”„๋ก์‹œ๋ฅผ ์‚ฌ์šฉํ•˜๋Š” ๋ฉ”์‹œ์—์„œ๋งŒ ์‚ฌ์šฉํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค.
    • GRPCRoute๋Š” Envoy ์‚ฌ์ด๋“œ์นด ํ”„๋ก์‹œ ๋ฐ ํ”„๋ก์‹œ๋ฆฌ์Šค gRPC๋ฅผ ์‚ฌ์šฉํ•˜๋Š” ๋ฉ”์‹œ์—์„œ ์‚ฌ์šฉํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค. Cloud Service Mesh์™€ ํ•จ๊ป˜ ํ”„๋ก์‹œ๋ฆฌ์Šค gRPC ์„œ๋น„์Šค ๋˜๋Š” ์• ํ”Œ๋ฆฌ์ผ€์ด์…˜์„ ์‚ฌ์šฉํ•˜๋ฉด ์ด ๋ฌธ์„œ์— ์„ค๋ช…๋œ ์ผ๋ถ€ ๊ธฐ๋Šฅ์„ ์‚ฌ์šฉํ•  ์ˆ˜ ์—†์Šต๋‹ˆ๋‹ค.
  • ๋ฐฑ์—”๋“œ ์„œ๋น„์Šค๋Š” Route ๋ฆฌ์†Œ์Šค์™€ ์—ฐ๊ฒฐ๋ฉ๋‹ˆ๋‹ค.

๊ตฌ์„ฑ

๊ณ ๊ธ‰ ํŠธ๋ž˜ํ”ฝ ๊ด€๋ฆฌ๋ฅผ ๊ตฌ์„ฑํ•˜๋ ค๋ฉด Cloud Service Mesh๋ฅผ ์„ค์ •ํ•  ๋•Œ ์‚ฌ์šฉํ•˜๋Š” ๋™์ผํ•œ Route ๋ฐ ๋ฐฑ์—”๋“œ ์„œ๋น„์Šค ๋ฆฌ์†Œ์Šค๋ฅผ ์‚ฌ์šฉํ•ฉ๋‹ˆ๋‹ค. Cloud Service Mesh๋Š” ๊ฒฐ๊ณผ์ ์œผ๋กœ ์„ค์ •๋œ ๊ณ ๊ธ‰ ํŠธ๋ž˜ํ”ฝ ๊ด€๋ฆฌ ์ •์ฑ…์„ ์ ์šฉํ•˜๋„๋ก Envoy ํ”„๋ก์‹œ์™€ ํ”„๋ก์‹œ๋ฆฌ์Šค gRPC ์• ํ”Œ๋ฆฌ์ผ€์ด์…˜์„ ๊ตฌ์„ฑํ•ฉ๋‹ˆ๋‹ค.

๊ฐœ๋žต์ ์œผ๋กœ ๋‹ค์Œ์„ ์ˆ˜ํ–‰ํ•ฉ๋‹ˆ๋‹ค.

  1. ์„œ๋น„์Šค ๋ฉ”์‹œ๋ฅผ ์‹๋ณ„ํ•˜๋„๋ก Mesh ๋ฆฌ์†Œ์Šค๋ฅผ ๊ตฌ์„ฑํ•ฉ๋‹ˆ๋‹ค.
  2. ์•„์›ƒ๋ฐ”์šด๋“œ ์š”์ฒญ์˜ ํŠน์„ฑ์— ๋‹ค๋ผ ๋‹ค์Œ์„ ์ˆ˜ํ–‰ํ•˜๋„๋ก Route ๋ฆฌ์†Œ์Šค๋ฅผ ๊ตฌ์„ฑํ•ฉ๋‹ˆ๋‹ค.

    1. ์š”์ฒญ์ด ๋ผ์šฐํŒ…๋  ๋ฐฑ์—”๋“œ ์„œ๋น„์Šค๋ฅผ ์„ ํƒํ•ฉ๋‹ˆ๋‹ค.

    2. ์›ํ•˜๋Š” ๊ฒฝ์šฐ ์ถ”๊ฐ€ ์ž‘์—…์„ ์ˆ˜ํ–‰ํ•ฉ๋‹ˆ๋‹ค.

  3. ๋Œ€์ƒ ์„œ๋น„์Šค๊ฐ€ ์„ ํƒ๋œ ํ›„์— ๋ฐฑ์—”๋“œ ๋ฐ ์—”๋“œํฌ์ธํŠธ์— ํŠธ๋ž˜ํ”ฝ์ด ๋ถ„์‚ฐ๋˜๋Š” ๋ฐฉ์‹์„ ์ œ์–ดํ•˜๋„๋ก ๋ฐฑ์—”๋“œ ์„œ๋น„์Šค๋ฅผ ๊ตฌ์„ฑํ•ฉ๋‹ˆ๋‹ค.

ํŠธ๋ž˜ํ”ฝ ๋ผ์šฐํŒ… ๋ฐ ์ž‘์—…

Cloud Service Mesh์—์„œ ํŠธ๋ž˜ํ”ฝ์€ Mesh ๋ฆฌ์†Œ์Šค, Route ๋ฆฌ์†Œ์Šค, ๋ฐฑ์—”๋“œ ์„œ๋น„์Šค ๋ฆฌ์†Œ์Šค์˜ ๊ฐ’์— ๋”ฐ๋ผ ๋ผ์šฐํŒ…๋ฉ๋‹ˆ๋‹ค. ๋ผ์šฐํŒ… ๋ฐ ์ž‘์—…๊ณผ ๊ด€๋ จ๋œ ๋ชจ๋“  ๊ณ ๊ธ‰ ํŠธ๋ž˜ํ”ฝ ๊ด€๋ฆฌ ๊ธฐ๋Šฅ์€ Route ๊ฐ์ฒด๋ฅผ ์‚ฌ์šฉํ•˜์—ฌ ๊ตฌ์„ฑ๋ฉ๋‹ˆ๋‹ค.

๋‹ค์Œ ์„น์…˜์—์„œ๋Š” Route ๊ฐ์ฒด์—์„œ ์„ค์ •ํ•  ์ˆ˜ ์žˆ๋Š” ๊ณ ๊ธ‰ ํŠธ๋ž˜ํ”ฝ ๊ด€๋ฆฌ ๊ธฐ๋Šฅ์— ๋Œ€ํ•ด ์„ค๋ช…ํ•ฉ๋‹ˆ๋‹ค.

์š”์ฒญ ์ฒ˜๋ฆฌ

ํด๋ผ์ด์–ธํŠธ๊ฐ€ ์š”์ฒญ์„ ์ „์†กํ•˜๋ฉด ์š”์ฒญ์€ ๋‹ค์Œ ๋‹จ๊ณ„์— ์„ค๋ช…๋œ ๋Œ€๋กœ ์ฒ˜๋ฆฌ๋ฉ๋‹ˆ๋‹ค.

  1. ์š”์ฒญ์€ ๋‹ค์Œ๊ณผ ๊ฐ™์ด ํŠน์ • Route ๋ฆฌ์†Œ์Šค์™€ ๋น„๊ต๋ฉ๋‹ˆ๋‹ค.

    • Envoy๋ฅผ ์‚ฌ์šฉํ•˜๋Š” ๊ฒฝ์šฐ:
      • ๊ฐ HTTPRoute ๋˜๋Š” GRPCRoute ๋ฆฌ์†Œ์Šค์˜ hostnames ํ•„๋“œ์— ๋”ฐ๋ผ HTTP ์š”์ฒญ์˜ ํ˜ธ์ŠคํŠธ ํ—ค๋”๋ฅผ ๋น„๊ตํ•ด์„œ ์š”์ฒญ์— ์˜ฌ๋ฐ”๋ฅธ Route ๋ฆฌ์†Œ์Šค๋ฅผ ์„ ํƒํ•ฉ๋‹ˆ๋‹ค. HTTPRoute ๋ฐ GRPCRoute ๋ฆฌ์†Œ์Šค์—๋งŒ hostnames ํ•„๋“œ๊ฐ€ ํฌํ•จ๋ฉ๋‹ˆ๋‹ค.
      • IP ์ฃผ์†Œ๋ฅผ ๋น„๊ตํ•ด์„œ TCPPRoute๋ฅผ ์‚ฌ์šฉํ•˜์—ฌ TCP ํŠธ๋ž˜ํ”ฝ์„ ๋ผ์šฐํŒ…ํ•ฉ๋‹ˆ๋‹ค.
      • SNI ๋ฐ ALPN์€ TLSRoute๋ฅผ ์‚ฌ์šฉํ•˜๋Š” TLS ํŒจ์Šค ์Šค๋ฃจ์— ์‚ฌ์šฉ๋ฉ๋‹ˆ๋‹ค.
      • HTTPRoute ๋ฐ GRPCRoute ๋ฆฌ์†Œ์Šค๋Š” Mesh์™€ ์—ฐ๊ฒฐ๋ฉ๋‹ˆ๋‹ค. ๋˜๋Š” Gateway์— ๊ณ ์œ ํ•œ ํ˜ธ์ŠคํŠธ ์ด๋ฆ„์ด ์žˆ์–ด์•ผ ํ•ฉ๋‹ˆ๋‹ค. ํ˜ธ์ŠคํŠธ ์ด๋ฆ„์ด ์ถฉ๋Œํ•˜๋Š” ์—ฌ๋Ÿฌ ๊ฒฝ๋กœ๋ฅผ ์—ฐ๊ฒฐํ•˜๋ ค๊ณ  ์‹œ๋„ํ•˜๋ฉด ๊ตฌ์„ฑ์ด ๊ฑฐ๋ถ€๋ฉ๋‹ˆ๋‹ค.
      • ๋งˆ์ฐฌ๊ฐ€์ง€๋กœ TCPRoute์˜ IP:Port ํ•„๋“œ๊ฐ€ ๊ณ ์œ ํ•ด์•ผ ํ•ฉ๋‹ˆ๋‹ค. ๊ทธ๋ ‡์ง€ ์•Š์œผ๋ฉด ๊ตฌ์„ฑ์ด ๊ฑฐ๋ถ€๋ฉ๋‹ˆ๋‹ค.
      • ๋งˆ์ฐฌ๊ฐ€์ง€๋กœ SNI ๋ฐ ALPN์ด TLSRoute์— ๋Œ€ํ•ด ๊ณ ์œ ํ•ด์•ผ ํ•ฉ๋‹ˆ๋‹ค.
      • a.example.com ๋ฐ *.example.com๊ณผ ๊ฐ™์€ ๊ฒน์น˜๋Š” ํ˜ธ์ŠคํŠธ ์ด๋ฆ„์ด ์žˆ์œผ๋ฉด ์š”์ฒญ์ด ๊ฒฝ๋กœ๋ฅผ ๋ณด๋‹ค ์„ธ๋ถ€์ ์œผ๋กœ ๋น„๊ตํ•ฉ๋‹ˆ๋‹ค.
    • ํ”„๋ก์‹œ๋ฆฌ์Šค gRPC๋ฅผ ์‚ฌ์šฉํ•˜๋Š” ๊ฒฝ์šฐ:
      • ํ”„๋ก์‹œ๋ฆฌ์Šค gRPC ํด๋ผ์ด์–ธํŠธ๋Š” xds ์ด๋ฆ„ ๋ณ€ํ™˜ ์Šคํ‚ค๋งˆ๋ฅผ ์‚ฌ์šฉํ•ฉ๋‹ˆ๋‹ค. Cloud Service Mesh์— ์š”์ฒญ์„ ์ „์†กํ•˜์—ฌ ๋Œ€์ƒ URI์—์„œ hostname[:port]๋ฅผ ํ™•์ธํ•ฉ๋‹ˆ๋‹ค.
      • GRPCRoute ์‘๋‹ต์˜ ํฌํŠธ๋งŒ ๋Œ€์ƒ URI์˜ ํฌํŠธ(์˜ˆ: xds:///example.hostname:8080)์™€ ๋น„๊ต๋ฉ๋‹ˆ๋‹ค. ๋Œ€์ƒ URI๋Š” GRPCRoute์˜ hostnames ํ•„๋“œ์— ์žˆ๋Š” ๋ฌธ์ž์—ด๊ณผ ์ •ํ™•ํ•˜๊ฒŒ ์ผ์น˜ํ•ด์•ผ ํ•ฉ๋‹ˆ๋‹ค.
  2. Route ๋ฆฌ์†Œ์Šค์—๋Š” ์ถ”๊ฐ€ ๋ผ์šฐํŒ… ์ •๋ณด ๋ฐ ๊ทœ์น™์ด ํฌํ•จ๋  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค.

  3. ๋Œ€์ƒ ๋ฐฑ์—”๋“œ ์„œ๋น„์Šค๋ฅผ ์„ ํƒํ•œ ํ›„ ๋ฐฑ์—”๋“œ ์„œ๋น„์Šค ๋ฆฌ์†Œ์Šค์˜ ๊ตฌ์„ฑ์— ๋”ฐ๋ผ ์ด ๋Œ€์ƒ ๋ฐฑ์—”๋“œ ์„œ๋น„์Šค์˜ ๋ฐฑ์—”๋“œ ๋˜๋Š” ์—”๋“œํฌ์ธํŠธ ๊ฐ„์— ํŠธ๋ž˜ํ”ฝ์ด ๋ถ„์‚ฐ๋ฉ๋‹ˆ๋‹ค.

๋‘ ๋ฒˆ์งธ ๋‹จ๊ณ„๋Š” ๋‹ค์Œ ํ˜ธ์ŠคํŠธ ๋ฐ ๊ฒฝ๋กœ์— ๊ธฐ๋ฐ˜ํ•œ ๋‹จ์ˆœ ๋ผ์šฐํŒ… ์„น์…˜์—์„œ ์„ค๋ช…ํ•ฉ๋‹ˆ๋‹ค. ์„ธ ๋ฒˆ์งธ ๋‹จ๊ณ„๋Š” ๊ณ ๊ธ‰ ๋ผ์šฐํŒ… ๋ฐ ์ž‘์—…์—์„œ ์„ค๋ช…ํ•ฉ๋‹ˆ๋‹ค.

ํ˜ธ์ŠคํŠธ ๋ฐ ๊ฒฝ๋กœ์— ๊ธฐ๋ฐ˜ํ•œ ๋‹จ์ˆœ ๋ผ์šฐํŒ…

Cloud Service Mesh๋Š” ๊ฐ„์†Œํ™”๋œ ๋ผ์šฐํŒ… ์Šคํ‚ค๋งˆ์™€ ๊ณ ๊ธ‰ ์Šคํ‚ค๋งˆ๋ฅผ ์ง€์›ํ•ฉ๋‹ˆ๋‹ค. ๋‹จ์ˆœ ์Šคํ‚ค๋งˆ์—์„œ ํ˜ธ์ŠคํŠธ ๋ฐ ๊ฒฝ๋กœ(์„ ํƒ์‚ฌํ•ญ)๋ฅผ ์ง€์ •ํ•ฉ๋‹ˆ๋‹ค. ์š”์ฒญ์˜ ํ˜ธ์ŠคํŠธ ๋ฐ ๊ฒฝ๋กœ๋ฅผ ํ‰๊ฐ€ํ•˜์—ฌ ํ•ด๋‹น ์š”์ฒญ์ด ๋ผ์šฐํŒ…๋œ ๋ฐฑ์—”๋“œ ์„œ๋น„์Šค๋ฅผ ๊ฒฐ์ •ํ•ฉ๋‹ˆ๋‹ค.

  • ์š”์ฒญ ํ˜ธ์ŠคํŠธ๋Š” URL์˜ ๋„๋ฉ”์ธ ์ด๋ฆ„ ๋ถ€๋ถ„์ž…๋‹ˆ๋‹ค. ์˜ˆ๋ฅผ ๋“ค์–ด URL http://example.com/video/์˜ ํ˜ธ์ŠคํŠธ ๋ถ€๋ถ„์€ example.com์ž…๋‹ˆ๋‹ค.
  • ์š”์ฒญ์˜ ๊ฒฝ๋กœ๋Š” ํ˜ธ์ŠคํŠธ ์ด๋ฆ„์„ ๋”ฐ๋ฅด๋Š” URL์˜ ๋ถ€๋ถ„์ž…๋‹ˆ๋‹ค. ์˜ˆ๋ฅผ ๋“ค์–ด URL http://example.com/video/์˜ ๊ฒฝ๋กœ ๋ถ€๋ถ„์€ /video์ž…๋‹ˆ๋‹ค.

๋‹ค์Œ์œผ๋กœ ๊ตฌ์„ฑ๋œ ๋ผ์šฐํŒ… ๊ทœ์น™ ๋งต์˜ ํ˜ธ์ŠคํŠธ์™€ ๊ฒฝ๋กœ๋ฅผ ๊ธฐ๋ฐ˜์œผ๋กœ ๋‹จ์ˆœ ๋ผ์šฐํŒ…์„ ์„ค์ •ํ•ฉ๋‹ˆ๋‹ค.

  • ์ „์—ญ Mesh
  • HTTPRoute ๋˜๋Š” GRPCRoute

๋Œ€๋ถ€๋ถ„์˜ ๊ตฌ์„ฑ์€ HTTPRoute์—์„œ ์ˆ˜ํ–‰๋ฉ๋‹ˆ๋‹ค. ์ดˆ๊ธฐ ๋ผ์šฐํŒ… ๊ทœ์น™ ๋งต์„ ๋งŒ๋“  ํ›„์—๋Š” HTTPRoute ๋ฆฌ์†Œ์Šค๋งŒ ์ˆ˜์ •ํ•˜๋ฉด ๋ฉ๋‹ˆ๋‹ค.

๊ฐ€์žฅ ๊ฐ„๋‹จํ•œ ๊ทœ์น™์€ ๊ธฐ๋ณธ ์„œ๋น„์Šค๋ฅผ ์‚ฌ์šฉํ•˜์—ฌ ์™€์ผ๋“œ ์นด๋“œ(*) ํ˜ธ์ŠคํŠธ ๊ทœ์น™ ๋ฐ ๊ฒฝ๋กœ ์ผ์น˜์ž๋งŒ ์ง€์ •ํ•˜๋Š” ๊ธฐ๋ณธ ๊ทœ์น™์ž…๋‹ˆ๋‹ค. ๊ธฐ๋ณธ ๊ทœ์น™์„ ๋งŒ๋“  ํ›„ ๋‹ค๋ฅธ ํ˜ธ์ŠคํŠธ ๋ฐ ๊ฒฝ๋กœ๋ฅผ ์ง€์ •ํ•˜๋Š” ๊ทœ์น™์„ ์ถ”๊ฐ€ํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค. ์•„์›ƒ๋ฐ”์šด๋“œ ์š”์ฒญ์€ ์ด๋Ÿฌํ•œ ๊ทœ์น™์— ๋”ฐ๋ผ ๋‹ค์Œ๊ณผ ๊ฐ™์ด ํ‰๊ฐ€๋ฉ๋‹ˆ๋‹ค.

  • ์š”์ฒญ์˜ ํ˜ธ์ŠคํŠธ(์˜ˆ: example.com)๊ฐ€ HTTPRoute์˜ ํ˜ธ์ŠคํŠธ ์ด๋ฆ„๊ณผ ์ผ์น˜ํ•˜๋Š” ๊ฒฝ์šฐ:

    1. RouteRule์ด ๊ทธ ๋‹ค์Œ์œผ๋กœ ํ‰๊ฐ€๋ฉ๋‹ˆ๋‹ค. RouteRule์€ ํŠธ๋ž˜ํ”ฝ์„ ๋น„๊ตํ•˜๊ณ  ํŠธ๋ž˜ํ”ฝ์ด ์ผ์น˜ํ•  ๋•Œ ํŠธ๋ž˜ํ”ฝ์„ ๋ผ์šฐํŒ…ํ•˜๋Š” ๋ฐฉ๋ฒ•์„ ์ง€์ •ํ•ฉ๋‹ˆ๋‹ค.
    2. ๊ฐ RouteRule ์ปจํ…Œ์ด๋„ˆ์—๋Š” ์š”์ฒญ ๊ฒฝ๋กœ์— ๋”ฐ๋ผ ํ‰๊ฐ€๋˜๋Š” ํ•˜๋‚˜ ์ด์ƒ์˜ ๊ฒฝ๋กœ ๋น„๊ต๊ฐ€ ํฌํ•จ๋ฉ๋‹ˆ๋‹ค.
    3. ์ผ์น˜ ํ•ญ๋ชฉ์ด ๋ฐœ๊ฒฌ๋˜๋ฉด RouteAction์— ์ง€์ •๋œ ์„œ๋น„์Šค๋กœ ์š”์ฒญ์ด ๋ผ์šฐํŒ…๋ฉ๋‹ˆ๋‹ค.

HTTPRoute์˜ ๋ฆฌ์†Œ์Šค ํ•„๋“œ ๋ฐ ์ž‘๋™ ๋ฐฉ๋ฒ•์€ ๋„คํŠธ์›Œํฌ ์„œ๋น„์Šค API ์ฐธ๊ณ  ๋ฆฌ์†Œ์Šค๋ฅผ ์ฐธ์กฐํ•˜์„ธ์š”.

๊ณ ๊ธ‰ ๋ผ์šฐํŒ… ๋ฐ ์ž‘์—…

์š”์ฒญ์˜ ํ˜ธ์ŠคํŠธ ๋ฐ ๊ฒฝ๋กœ๋ฅผ ๊ธฐ๋ฐ˜์œผ๋กœ ์š”์ฒญ์„ ๋ผ์šฐํŒ…ํ•˜๋Š” ๊ฒƒ๋ณด๋‹ค ๋” ๋งŽ์€ ์ž‘์—…์„ ์ˆ˜ํ–‰ํ•˜๋ ค๋ฉด ๊ณ ๊ธ‰ ๊ทœ์น™์„ ์„ค์ •ํ•˜์—ฌ ์š”์ฒญ์„ ๋ผ์šฐํŒ…ํ•˜๊ณ  ์ž‘์—…์„ ์ˆ˜ํ–‰ํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค.

๊ฐœ๋žต์ ์œผ๋กœ ๊ณ ๊ธ‰ ๋ผ์šฐํŒ… ๋ฐ ์ž‘์—…์€ ๋‹ค์Œ๊ณผ ๊ฐ™์ด ์ž‘๋™ํ•ฉ๋‹ˆ๋‹ค.

  1. ๋‹จ์ˆœ ๋ผ์šฐํŒ…๊ณผ ๋งˆ์ฐฌ๊ฐ€์ง€๋กœ ์š”์ฒญ์˜ ํ˜ธ์ŠคํŠธ๋Š” HTTPRoute ๋˜๋Š” GRPCRoute์—์„œ ๊ตฌ์„ฑํ•˜๋Š” ํ˜ธ์ŠคํŠธ ๊ทœ์น™๊ณผ ๋น„๊ต๋ฉ๋‹ˆ๋‹ค. ์š”์ฒญ์˜ ํ˜ธ์ŠคํŠธ๊ฐ€ ํ˜ธ์ŠคํŠธ ์ด๋ฆ„๊ณผ ์ผ์น˜ํ•˜๋ฉด HTTPRoute ๋˜๋Š” GRPCRoute๊ฐ€ ํ‰๊ฐ€๋ฉ๋‹ˆ๋‹ค.
  2. ๊ฒฝ๋กœ๋ฅผ ์„ ํƒํ•œ ํ›„ ์ž‘์—…์„ ์ ์šฉํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค.

๊ณ ๊ธ‰ ๋ผ์šฐํŒ…

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

์ถ”๊ฐ€ ์ผ์น˜ ์กฐ๊ฑด๊ณผ headerMatches ๋ฐ queryParameterMatches์— ๋Œ€ํ•œ ์ž์„ธํ•œ ๋‚ด์šฉ์€ network services REST API ํŽ˜์ด์ง€๋ฅผ ์ฐธ์กฐํ•˜์„ธ์š”.

ํ˜ธ์ŠคํŠธ, ๊ฒฝ๋กœ, ํ—ค๋”, ์ฟผ๋ฆฌ ๋งค๊ฐœ๋ณ€์ˆ˜๋ฅผ ์ผ์น˜ ์กฐ๊ฑด๊ณผ ๊ฒฐํ•ฉํ•˜๋ฉด ์ •ํ™•ํ•œ ํŠธ๋ž˜ํ”ฝ ๊ด€๋ฆฌ ์š”๊ฑด์— ๋งž๋Š” ๋งค์šฐ ์ •๊ตํ•œ ๊ทœ์น™์„ ๋งŒ๋“ค ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค. ์ž์„ธํ•œ ๋‚ด์šฉ์€ ๋‹ค์Œ ํ‘œ๋ฅผ ์ฐธ๊ณ ํ•˜์„ธ์š”.

HTTP ๊ธฐ๋ฐ˜ ์• ํ”Œ๋ฆฌ์ผ€์ด์…˜ gRPC ๊ธฐ๋ฐ˜ ์• ํ”Œ๋ฆฌ์ผ€์ด์…˜
HTTP ํ˜ธ์ŠคํŠธ์™€ gRPC ํ˜ธ์ŠคํŠธ ๋น„๊ต

ํ˜ธ์ŠคํŠธ๋Š” ์• ํ”Œ๋ฆฌ์ผ€์ด์…˜์ด ํ˜ธ์ถœํ•˜๋Š” URL์˜ ๋„๋ฉ”์ธ ์ด๋ฆ„ ๋ถ€๋ถ„์ž…๋‹ˆ๋‹ค.

์˜ˆ๋ฅผ ๋“ค์–ด URL http://example.com/video/์˜ ํ˜ธ์ŠคํŠธ ๋ถ€๋ถ„์€ example.com์ž…๋‹ˆ๋‹ค.

ํ˜ธ์ŠคํŠธ๋Š” ํด๋ผ์ด์–ธํŠธ๊ฐ€ ์ฑ„๋„ URI์—์„œ ํŠน์ • ์„œ๋น„์Šค์— ์—ฐ๊ฒฐํ•˜๋Š” ๋ฐ ์‚ฌ์šฉํ•˜๋Š” ์ด๋ฆ„์ž…๋‹ˆ๋‹ค.

์˜ˆ๋ฅผ ๋“ค์–ด ์ฑ„๋„ URI xds:///example.com์˜ ํ˜ธ์ŠคํŠธ ๋ถ€๋ถ„์€ example.com์ž…๋‹ˆ๋‹ค.

HTTP ๊ฒฝ๋กœ์™€ gRPC ๊ฒฝ๋กœ ๋น„๊ต

๊ฒฝ๋กœ๋Š” ํ˜ธ์ŠคํŠธ ์ด๋ฆ„ ๋‹ค์Œ์— ์˜ค๋Š” URL ๋ถ€๋ถ„์ž…๋‹ˆ๋‹ค.

์˜ˆ๋ฅผ ๋“ค์–ด URL http://example.com/video์—์„œ ๊ฒฝ๋กœ ๋ถ€๋ถ„์€ /video์ž…๋‹ˆ๋‹ค.

๊ฒฝ๋กœ๋Š” HTTP/2 ์š”์ฒญ์˜ :path ํ—ค๋”์— ์žˆ์œผ๋ฉฐ /SERVICE_NAME/METHOD_NAME๊ณผ ๊ฐ™์Šต๋‹ˆ๋‹ค.

์˜ˆ๋ฅผ ๋“ค์–ด Example gRPC ์„œ๋น„์Šค์—์„œ Download ๋ฉ”์„œ๋“œ๋ฅผ ํ˜ธ์ถœํ•˜๋ฉด :path ํ—ค๋”์˜ ์ฝ˜ํ…์ธ ๊ฐ€ /Example/Download์™€ ๊ฐ™์ด ํ‘œ์‹œ๋ฉ๋‹ˆ๋‹ค.

๊ธฐํƒ€ gRPC ํ—ค๋”(๋ฉ”ํƒ€๋ฐ์ดํ„ฐ) gRPC๋Š” gRPC ํด๋ผ์ด์–ธํŠธ์™€ gRPC ์„œ๋ฒ„ ๊ฐ„์˜ ๋ฉ”ํƒ€๋ฐ์ดํ„ฐ ์ „์†ก์„ ์ง€์›ํ•˜์—ฌ RPC ํ˜ธ์ถœ์— ๋Œ€ํ•œ ์ถ”๊ฐ€ ์ •๋ณด๋ฅผ ์ œ๊ณตํ•ฉ๋‹ˆ๋‹ค. ์ด ๋ฉ”ํƒ€๋ฐ์ดํ„ฐ๋Š” HTTP/2 ์š”์ฒญ์—์„œ ํ—ค๋”๋กœ ์ „๋‹ฌ๋˜๋Š” ํ‚ค-๊ฐ’ ์Œ์˜ ํ˜•์‹์„ ๋”ฐ๋ฆ…๋‹ˆ๋‹ค.

์ž‘์—…

Cloud Service Mesh๋ฅผ ์‚ฌ์šฉํ•˜๋ฉด ์š”์ฒญ์„ ์ฒ˜๋ฆฌํ•  ๋•Œ Envoy ํ”„๋ก์‹œ ๋˜๋Š” ํ”„๋ก์‹œ๋ฆฌ์Šค gRPC ์• ํ”Œ๋ฆฌ์ผ€์ด์…˜์ด ์ˆ˜ํ–‰ํ•˜๋Š” ์ž‘์—…์„ ์ง€์ •ํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค. Cloud Service Mesh๋ฅผ ์‚ฌ์šฉํ•˜์—ฌ ๋‹ค์Œ ์ž‘์—…์„ ๊ตฌ์„ฑํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค.

์ž‘์—… API ํ•„๋“œ ์ด๋ฆ„ ์„ค๋ช…
๋ฆฌ๋””๋ ‰์…˜ redirect [pathredirect?] ๊ตฌ์„ฑ ๊ฐ€๋Šฅํ•œ 3xx ์‘๋‹ต ์ฝ”๋“œ๋ฅผ ๋ฐ˜ํ™˜ํ•ฉ๋‹ˆ๋‹ค. ๋˜ํ•œ ์ ์ ˆํ•œ URI๋กœ Location ์‘๋‹ต ํ—ค๋”๋ฅผ ์„ค์ •ํ•˜์—ฌ ๋ฆฌ๋””๋ ‰์…˜ ์ž‘์—…์— ์ง€์ •๋œ ๋Œ€๋กœ ํ˜ธ์ŠคํŠธ์™€ ๊ฒฝ๋กœ๋ฅผ ๋ฐ”๊ฟ‰๋‹ˆ๋‹ค.
URL ์žฌ์ž‘์„ฑ urlRewrite ์„ ํƒํ•œ ๋ฐฑ์—”๋“œ ์„œ๋น„์Šค์— ์š”์ฒญ์„ ์ „์†กํ•˜๊ธฐ ์ „์— URL์˜ ํ˜ธ์ŠคํŠธ ์ด๋ฆ„ ๋ถ€๋ถ„์ด๋‚˜ URL์˜ ๊ฒฝ๋กœ ๋ถ€๋ถ„ ๋˜๋Š” ๋‘˜ ๋‹ค ์žฌ์ž‘์„ฑํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค.
ํ—ค๋” ๋ณ€ํ™˜ requestHeaderModifier/responseHeaderModifier? ๋ฐฑ์—”๋“œ ์„œ๋น„์Šค์— ์š”์ฒญ์„ ๋ณด๋‚ด๊ธฐ ์ „์— ์š”์ฒญ ํ—ค๋”๋ฅผ ์ถ”๊ฐ€ํ•˜๊ฑฐ๋‚˜ ์ œ๊ฑฐํ•ฉ๋‹ˆ๋‹ค. ๋˜ํ•œ ๋ฐฑ์—”๋“œ ์„œ๋น„์Šค์—์„œ ์‘๋‹ต์„ ์ˆ˜์‹ ํ•œ ํ›„ ์‘๋‹ต ํ—ค๋”๋ฅผ ์ถ”๊ฐ€ํ•˜๊ฑฐ๋‚˜ ์‚ญ์ œํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค.
ํŠธ๋ž˜ํ”ฝ ๋ฏธ๋Ÿฌ๋ง requestMirrorPolicy

์„ ํƒํ•œ ๋ฐฑ์—”๋“œ ์„œ๋น„์Šค๋กœ ์š”์ฒญ์„ ์ „๋‹ฌํ•˜๋Š” ๊ฒƒ ์™ธ์— ๋™์ผํ•œ ์š”์ฒญ์„ ํŒŒ์ด์–ด ์•ค ํฌ๊ฒŸ(fire-and-forget) ๋ฐฉ์‹์œผ๋กœ ๊ตฌ์„ฑ๋œ ๋ฏธ๋Ÿฌ๋ง ๋ฐฑ์—”๋“œ ์„œ๋น„์Šค์— ์ „์†กํ•ฉ๋‹ˆ๋‹ค. ๋ถ€ํ•˜ ๋ถ„์‚ฐ๊ธฐ๋Š” ๋ฏธ๋Ÿฌ๋ง๋œ ์š”์ฒญ์„ ๋ณด๋‚ด๋Š” ๋ฐฑ์—”๋“œ์˜ ์‘๋‹ต์„ ๊ธฐ๋‹ค๋ฆฌ์ง€ ์•Š์Šต๋‹ˆ๋‹ค.

๋ฏธ๋Ÿฌ๋ง์€ ๋ฐฑ์—”๋“œ ์„œ๋น„์Šค์˜ ์ƒˆ ๋ฒ„์ „์„ ํ…Œ์ŠคํŠธํ•˜๋Š” ๋ฐ ์œ ์šฉํ•ฉ๋‹ˆ๋‹ค. ๋˜ํ•œ ๋ฏธ๋Ÿฌ๋ง์„ ์‚ฌ์šฉํ•˜๋ฉด ํ”„๋กœ๋•์…˜ ๋ฒ„์ „์ด ์•„๋‹Œ ๋ฐฑ์—”๋“œ ์„œ๋น„์Šค์˜ ๋””๋ฒ„๊ทธ ๋ฒ„์ „์—์„œ ํ”„๋กœ๋•์…˜ ์˜ค๋ฅ˜๋ฅผ ๋””๋ฒ„๊น…ํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค.

๊ฐ€์ค‘์น˜ ๊ธฐ๋ฐ˜ ํŠธ๋ž˜ํ”ฝ ๋ถ„ํ•  weightDestination.serviceName

์ผ์น˜ํ•˜๋Š” ๊ทœ์น™์˜ ํŠธ๋ž˜ํ”ฝ์„ ๊ฐœ๋ณ„ ๋ฐฑ์—”๋“œ ์„œ๋น„์Šค์— ํ• ๋‹น๋œ ์‚ฌ์šฉ์ž ์ •์˜ ๊ฐ€์ค‘์น˜์— ๋งž๊ฒŒ ์—ฌ๋Ÿฌ ๋ฐฑ์—”๋“œ ์„œ๋น„์Šค์— ๋ฐฐํฌํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค.

์ด ๊ธฐ๋Šฅ์€ ์Šคํ…Œ์ด์ง• ๋ฐฐํฌ ๋˜๋Š” A/B ํ…Œ์ŠคํŒ…์„ ๊ตฌ์„ฑํ•˜๋Š” ๋ฐ ์œ ์šฉํ•ฉ๋‹ˆ๋‹ค. ์˜ˆ๋ฅผ ๋“ค์–ด ํŠธ๋ž˜ํ”ฝ ์ค‘ 99%๋Š” ์•ˆ์ •์ ์ธ ์• ํ”Œ๋ฆฌ์ผ€์ด์…˜ ๋ฒ„์ „์ด ์‹คํ–‰๋˜๋Š” ์„œ๋น„์Šค์— ์ „์†กํ•˜๊ณ  ๋‚˜๋จธ์ง€ 1%๋Š” ํ•ด๋‹น ์• ํ”Œ๋ฆฌ์ผ€์ด์…˜์ด ์ตœ์‹  ๋ฒ„์ „์ด ์‹คํ–‰๋˜๋Š” ๋ณ„๋„์˜ ์„œ๋น„์Šค์— ์ „์†กํ•˜๋„๋ก ๋ผ์šฐํŒ… ์ž‘์—…์„ ๊ตฌ์„ฑํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค.

์žฌ์‹œ๋„ retryPolicy ๋ถ€ํ•˜ ๋ถ„์‚ฐ๊ธฐ๊ฐ€ ์‹คํŒจํ•œ ์š”์ฒญ์„ ์žฌ์‹œ๋„ํ•˜๋Š” ์กฐ๊ฑด, ์žฌ์‹œ๋„ ์ „ ๋ถ€ํ•˜ ๋ถ„์‚ฐ๊ธฐ๊ฐ€ ๋Œ€๊ธฐํ•˜๋Š” ์‹œ๊ฐ„, ์ตœ๋Œ€ ์žฌ์‹œ๋„ ํ—ˆ์šฉ ํšŸ์ˆ˜๋ฅผ ๊ตฌ์„ฑํ•ฉ๋‹ˆ๋‹ค.
์ œํ•œ ์‹œ๊ฐ„ timeout ์„ ํƒํ•œ ๊ฒฝ๋กœ์˜ ์ œํ•œ ์‹œ๊ฐ„์„ ์ง€์ •ํ•ฉ๋‹ˆ๋‹ค. ์ œํ•œ ์‹œ๊ฐ„์€ ์š”์ฒญ์ด ์™„์ „ํžˆ ์ฒ˜๋ฆฌ๋œ ์‹œ๊ฐ„๋ถ€ํ„ฐ ์‘๋‹ต์ด ์™„์ „ํžˆ ์ฒ˜๋ฆฌ๋  ๋•Œ๊นŒ์ง€ ๊ณ„์‚ฐ๋ฉ๋‹ˆ๋‹ค. ์ œํ•œ ์‹œ๊ฐ„์—๋Š” ๋ชจ๋“  ์žฌ์‹œ๋„ ํšŸ์ˆ˜๊ฐ€ ํฌํ•จ๋ฉ๋‹ˆ๋‹ค.
๊ฒฐํ•จ ์ฃผ์ž… faultInjectionPolicy ๋†’์€ ์ง€์—ฐ ์‹œ๊ฐ„, ์„œ๋น„์Šค ๊ณผ๋ถ€ํ•˜, ์„œ๋น„์Šค ์žฅ์• , ๋„คํŠธ์›Œํฌ ํŒŒํ‹ฐ์…˜ ๋‚˜๋ˆ„๊ธฐ ๋“ฑ์˜ ์žฅ์• ๋ฅผ ์‹œ๋ฎฌ๋ ˆ์ด์…˜ํ•˜๋Š” ์š”์ฒญ์„ ์ œ๊ณตํ•  ๋•Œ ์˜๋„์ ์œผ๋กœ ์˜ค๋ฅ˜๋ฅผ ๋ฐœ์ƒ์‹œํ‚ฌ ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค. ์ด ๊ธฐ๋Šฅ์€ ์žฅ์• ๋ฅผ ์‹œ๋ฎฌ๋ ˆ์ด์…˜ํ•˜๋ฉด์„œ ์„œ๋น„์Šค์˜ ๋ณต์›๋ ฅ์„ ํ…Œ์ŠคํŠธํ•˜๋Š” ๋ฐ ์œ ์šฉํ•ฉ๋‹ˆ๋‹ค.
๋ณด์•ˆ ์ •์ฑ… corsPolicy ๊ต์ฐจ ์ถœ์ฒ˜ ๋ฆฌ์†Œ์Šค ๊ณต์œ (CORS) ์ •์ฑ…์€ CORS ์š”์ฒญ์„ ์ ์šฉํ•˜๋Š” ๋ฐ ํ•„์š”ํ•œ ์„ค์ •์„ ์ฒ˜๋ฆฌํ•ฉ๋‹ˆ๋‹ค.

์ž‘์—… ๋ฐ ์ž‘๋™ ๋ฐฉ์‹์— ๋Œ€ํ•œ ์ž์„ธํ•œ ๋‚ด์šฉ์€ ๋„คํŠธ์›Œํฌ ์„œ๋น„์Šค API ํŽ˜์ด์ง€๋ฅผ ์ฐธ์กฐํ•˜์„ธ์š”.

๊ฐ ๋ผ์šฐํŒ… ๊ทœ์น™์—์„œ ๋‹ค์Œ ๊ฒฝ๋กœ ์ž‘์—… ์ค‘ ํ•˜๋‚˜๋ฅผ ์ง€์ •ํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค.

  • ํŠธ๋ž˜ํ”ฝ์„ ๋‹จ์ผ ์„œ๋น„์Šค๋กœ ๋ผ์šฐํŒ…(destination.serviceName)
  • ์—ฌ๋Ÿฌ ์„œ๋น„์Šค ๊ฐ„ ํŠธ๋ž˜ํ”ฝ ๋ถ„ํ• (destination.weight)
  • ๋ฆฌ๋””๋ ‰์…˜ URL(redirect)

๋˜ํ•œ ์•ž์—์„œ ์–ธ๊ธ‰ํ•œ ๋ผ์šฐํŒ… ์ž‘์—… ์ค‘ ํ•˜๋‚˜๋ฅผ ๋‹ค์Œ ๋ผ์šฐํŒ… ์ž‘์—…(Google Cloud ์ฝ˜์†”์—์„œ ๋ถ€๊ฐ€ ์ž‘์—…์ด๋ผ๊ณ  ํ•จ) ์ค‘ ํ•˜๋‚˜ ์ด์ƒ๊ณผ ๊ฒฐํ•ฉํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค.

  • ์š”์ฒญ ๋˜๋Š” ์‘๋‹ต ํ—ค๋” ์กฐ์ž‘(requestHeaderModifier/responseHeaderModifier)
  • ํŠธ๋ž˜ํ”ฝ ๋ฏธ๋Ÿฌ๋ง(requestMirrorPolicy)
  • URL ํ˜ธ์ŠคํŠธ๋‚˜ ๊ฒฝ๋กœ ๋˜๋Š” ๋‘˜ ๋‹ค ๋‹ค์‹œ ์ž‘์„ฑ(urlRewrite)
  • ์‹คํŒจํ•œ ์š”์ฒญ ์žฌ์‹œ๋„(retryPolicy)
  • ์ œํ•œ ์‹œ๊ฐ„ ์„ค์ •(timeout)
  • ํŠธ๋ž˜ํ”ฝ ๋น„์œจ์— ๊ฒฐํ•จ ๋„์ž…(faultInjectionPolicy)
  • ๊ต์ฐจ ์ถœ์ฒ˜ ๋ฆฌ์†Œ์Šค ๊ณต์œ (CORS) ์ •์ฑ… ์ถ”๊ฐ€(corsPolicy)

์ž‘์—…์€ ํŠน์ • ๊ทœ์น™๊ณผ ์—ฐ๊ฒฐ๋˜์–ด ์žˆ์œผ๋ฏ€๋กœ Envoy ํ”„๋ก์‹œ ๋˜๋Š” ํ”„๋ก์‹œ๋ฆฌ์Šค gRPC ์• ํ”Œ๋ฆฌ์ผ€์ด์…˜์€ ์ฒ˜๋ฆฌ ์ค‘์ธ ์š”์ฒญ์„ ๊ธฐ๋ฐ˜์œผ๋กœ ๋‹ค๋ฅธ ์ž‘์—…์„ ์ ์šฉํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค.

์„œ๋น„์Šค์˜ ๋ฐฑ์—”๋“œ ๊ฐ„์— ํŠธ๋ž˜ํ”ฝ ๋ถ„์‚ฐ

์š”์ฒญ ์ฒ˜๋ฆฌ์˜ ์„ค๋ช…์ฒ˜๋Ÿผ ํด๋ผ์ด์–ธํŠธ๋Š” ์•„์›ƒ๋ฐ”์šด๋“œ ์š”์ฒญ์„ ์ฒ˜๋ฆฌํ•  ๋•Œ ๋จผ์ € ๋Œ€์ƒ ์„œ๋น„์Šค๋ฅผ ์„ ํƒํ•ฉ๋‹ˆ๋‹ค. ๋Œ€์ƒ ์„œ๋น„์Šค๋ฅผ ์„ ํƒํ•˜๋ฉด ์š”์ฒญ์„ ์ˆ˜์‹ ํ•  ๋ฐฑ์—”๋“œ ๋˜๋Š” ์—”๋“œํฌ์ธํŠธ๋ฅผ ํŒŒ์•…ํ•ด์•ผ ํ•ฉ๋‹ˆ๋‹ค.

๋ฐฑ์—”๋“œ ๊ฐ„์— ํŠธ๋ž˜ํ”ฝ ๋ถ„์‚ฐ
๋ฐฑ์—”๋“œ ๊ฐ„์— ํŠธ๋ž˜ํ”ฝ ๋ถ„์‚ฐ(ํ™•๋Œ€ํ•˜๋ ค๋ฉด ํด๋ฆญ)

์ƒ๊ธฐ์˜ ๋‹ค์ด์–ด๊ทธ๋žจ์—์„œ๋Š” ๊ทœ์น™์ด ๊ฐ„์†Œํ™”๋˜์—ˆ์Šต๋‹ˆ๋‹ค. ๊ทœ์น™์€ ์ผ๋ฐ˜์ ์œผ๋กœ ํ˜ธ์ŠคํŠธ ๊ทœ์น™, ๊ฒฝ๋กœ ์ผ์น˜์ž, ํ•˜๋‚˜ ์ด์ƒ์˜ ๊ฒฝ๋กœ ๋˜๋Š” ๋ผ์šฐํŒ… ๊ทœ์น™์ž…๋‹ˆ๋‹ค. ๋Œ€์ƒ ์„œ๋น„์Šค๋Š” (๋ฐฑ์—”๋“œ) ์„œ๋น„์Šค์ž…๋‹ˆ๋‹ค. ๋ฐฑ์—”๋“œ 1, โ€ฆ, ๋ฐฑ์—”๋“œ n์€ ์š”์ฒญ์„ ์ˆ˜์‹ ํ•˜๊ณ  ์ฒ˜๋ฆฌํ•ฉ๋‹ˆ๋‹ค. ์ด๋Ÿฌํ•œ ๋ฐฑ์—”๋“œ๋Š” ์„œ๋ฒ„ ์ธก ์• ํ”Œ๋ฆฌ์ผ€์ด์…˜ ์ฝ”๋“œ๋ฅผ ํ˜ธ์ŠคํŒ…ํ•˜๋Š” Compute Engine ๊ฐ€์ƒ ๋จธ์‹ (VM) ์ธ์Šคํ„ด์Šค์ผ ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค.

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

๋ถ€ํ•˜ ๋ถ„์‚ฐ, ์„ธ์…˜ ์–ดํ”ผ๋‹ˆํ‹ฐ, ๋ฐฑ์—”๋“œ ๋ณดํ˜ธ

๊ฐ ์„œ๋น„์Šค์— ๋‹ค์Œ๊ณผ ๊ฐ™์€ ํŠธ๋ž˜ํ”ฝ ๋ถ„์‚ฐ ์ •์ฑ…์„ ์„ค์ •ํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค.

์ •์ฑ… API ํ•„๋“œ ์ด๋ฆ„ ์„ค๋ช…
๋ถ€ํ•˜ ๋ถ„์‚ฐ ๋ชจ๋“œ balancingMode ๋Œ€์ƒ ์„œ๋น„์Šค๋ฅผ ์„ ํƒํ•œ ํ›„ ๋„คํŠธ์›Œํฌ ์—”๋“œํฌ์ธํŠธ ๊ทธ๋ฃน(NEG) ๋˜๋Š” ๊ด€๋ฆฌํ˜• ์ธ์Šคํ„ด์Šค ๊ทธ๋ฃน(MIG)์„ ์„ ํƒํ•˜๋Š” ๋ฐฉ๋ฒ•์„ ์ œ์–ดํ•ฉ๋‹ˆ๋‹ค. ๋™์‹œ ์—ฐ๊ฒฐ๊ณผ ์š”์ฒญ ๋น„์œจ์„ ๊ธฐ๋ฐ˜์œผ๋กœ ๋ถ€ํ•˜๋ฅผ ๋ถ„์‚ฐํ•˜๋„๋ก ๋ถ„์‚ฐ ๋ชจ๋“œ๋ฅผ ๊ตฌ์„ฑํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค.
๋ถ€ํ•˜ ๋ถ„์‚ฐ ์ •์ฑ… localityLbPolicy NEG ๋˜๋Š” MIG ๋‚ด์˜ ๋ฐฑ์—”๋“œ ๊ฐ„์— ํŠธ๋ž˜ํ”ฝ์„ ๋ถ„์‚ฐํ•˜๋Š” ๋ฐ ์‚ฌ์šฉ๋˜๋Š” ๋ถ€ํ•˜ ๋ถ„์‚ฐ ์•Œ๊ณ ๋ฆฌ์ฆ˜์„ ์„ค์ •ํ•ฉ๋‹ˆ๋‹ค. ๋‹ค์–‘ํ•œ ์•Œ๊ณ ๋ฆฌ์ฆ˜(์˜ˆ: ๋ผ์šด๋“œ ๋กœ๋นˆ, ์ตœ์†Œ ์š”์ฒญ ๋“ฑ) ์ค‘์—์„œ ์„ ํƒํ•˜์—ฌ ์„ฑ๋Šฅ์„ ์ตœ์ ํ™”ํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค.
์„ธ์…˜ ์–ดํ”ผ๋‹ˆํ‹ฐ sessionAffinity

์„ธ์…˜ ์–ดํ”ผ๋‹ˆํ‹ฐ๋Š” ๋ฐฑ์—”๋“œ๊ฐ€ ์ •์ƒ์ด๊ณ  ์šฉ๋Ÿ‰์ด ์žˆ๋Š” ํ•œ ํŠน์ • ํด๋ผ์ด์–ธํŠธ์˜ ์š”์ฒญ์„ ๋™์ผํ•œ ๋ฐฑ์—”๋“œ๋กœ ์ „์†กํ•ฉ๋‹ˆ๋‹ค.

Cloud Service Mesh๋Š” 4๊ฐ€์ง€ ์„ธ์…˜ ์–ดํ”ผ๋‹ˆํ‹ฐ ์˜ต์…˜ ์ฆ‰, ํด๋ผ์ด์–ธํŠธ IP ์ฃผ์†Œ, HTTP ์ฟ ํ‚ค ๊ธฐ๋ฐ˜, HTTP ํ—ค๋” ๊ธฐ๋ฐ˜, ์ƒ์„ฑ๋œ ์ฟ ํ‚ค ์–ดํ”ผ๋‹ˆํ‹ฐ(Cloud Service Mesh์—์„œ ์ž์ฒด ์ƒ์„ฑ)๋ฅผ ์ง€์›ํ•ฉ๋‹ˆ๋‹ค.

์ผ๊ด€๋œ ํ•ด์‹œ consistentHash HTTP ํ—ค๋”, ์ฟ ํ‚ค ๋˜๋Š” ๊ธฐํƒ€ ์†์„ฑ์„ ๊ธฐ๋ฐ˜์œผ๋กœ ์†Œํ”„ํŠธ ์„ธ์…˜ ์–ดํ”ผ๋‹ˆํ‹ฐ๋ฅผ ์ œ๊ณตํ•ฉ๋‹ˆ๋‹ค.
ํšŒ๋กœ ์ฐจ๋‹จ๊ธฐ circuitBreakers ๋ฐฑ์—”๋“œ ์„œ๋น„์Šค ์—ฐ๊ฒฐ๋Ÿ‰ ๋ฐ ์—ฐ๊ฒฐ๋‹น ์š”์ฒญ์˜ ์ƒํ•œ๊ฐ’์„ ์„ค์ •ํ•ฉ๋‹ˆ๋‹ค.
์ด์ƒ์  ๊ฐ์ง€ outlierDetection (1) MIG ๋˜๋Š” NEG์—์„œ ๋น„์ •์ƒ ๋ฐฑ์—”๋“œ ๋˜๋Š” ์—”๋“œํฌ์ธํŠธ๋ฅผ ์‚ญ์ œํ•˜๊ณ  (2) ํŠธ๋ž˜ํ”ฝ์„ ๋‹ค์‹œ ์ˆ˜์‹ ํ•˜๊ธฐ์— ์ถฉ๋ถ„ํ•  ์ •๋„๋กœ ์ •์ƒ์œผ๋กœ ๊ฐ„์ฃผ๋˜๋Š” ๊ฒฝ์šฐ ๋ฐฑ์—”๋“œ ๋˜๋Š” ์—”๋“œํฌ์ธํŠธ๋ฅผ ๋‹ค์‹œ ์ถ”๊ฐ€ํ•  ๊ธฐ์ค€์„ ์ง€์ •ํ•ฉ๋‹ˆ๋‹ค. ์„œ๋น„์Šค์™€ ๊ด€๋ จ๋œ ์ƒํƒœ ์ ๊ฒ€์—์„œ ๋ฐฑ์—”๋“œ ๋˜๋Š” ์—”๋“œํฌ์ธํŠธ๊ฐ€ ์ •์ƒ์œผ๋กœ ๊ฐ„์ฃผ๋˜๋Š”์ง€ ๊ฒฐ์ •ํ•ฉ๋‹ˆ๋‹ค.

๋‹ค์–‘ํ•œ ํŠธ๋ž˜ํ”ฝ ๋ถ„์‚ฐ ์˜ต์…˜๊ณผ ์ž‘๋™ ๋ฐฉ๋ฒ•์— ๋Œ€ํ•œ ์ž์„ธํ•œ ๋‚ด์šฉ์€ ๋‹ค์Œ ๋ฌธ์„œ๋ฅผ ์ฐธ์กฐํ•˜์„ธ์š”.

์‚ฌ์šฉ ์‚ฌ๋ก€

๊ณ ๊ธ‰ ํŠธ๋ž˜ํ”ฝ ๊ด€๋ฆฌ๋Š” ๋งŽ์€ ์‚ฌ์šฉ ์‚ฌ๋ก€๋ฅผ ํ•ด๊ฒฐํ•ฉ๋‹ˆ๋‹ค. ์ด ์„น์…˜์—์„œ๋Š” ๋ช‡ ๊ฐ€์ง€ ๊ฐœ๋žต์ ์ธ ์˜ˆ์‹œ๋ฅผ ์„ค๋ช…ํ•ฉ๋‹ˆ๋‹ค.

์ƒ˜ํ”Œ ์ฝ”๋“œ๋ฅผ ํฌํ•จํ•œ ๋” ๋งŽ์€ ์˜ˆ์‹œ๋Š” Envoy๋กœ ๊ณ ๊ธ‰ ํŠธ๋ž˜ํ”ฝ ๊ด€๋ฆฌ ๊ตฌ์„ฑ ๋ฐ ํ”„๋ก์‹œ๋ฆฌ์Šค gRPC ์„œ๋น„์Šค๋กœ ๊ณ ๊ธ‰ ํŠธ๋ž˜ํ”ฝ ๊ด€๋ฆฌ ๊ตฌ์„ฑ์—์„œ ์ฐพ์„ ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค.

๋งž์ถค์„ค์ •์„ ์œ„ํ•œ ์„ธ๋ถ„ํ™”๋œ ํŠธ๋ž˜ํ”ฝ ๋ผ์šฐํŒ…

์š”์ฒญ ๋งค๊ฐœ๋ณ€์ˆ˜์— ๋”ฐ๋ผ ์„œ๋น„์Šค๋กœ ํŠธ๋ž˜ํ”ฝ์„ ๋ผ์šฐํŒ…ํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค. ์˜ˆ๋ฅผ ๋“ค์–ด ์ด ๊ธฐ๋Šฅ์„ ์‚ฌ์šฉํ•˜์—ฌ Android ์‚ฌ์šฉ์ž์—๊ฒŒ ๋ณด๋‹ค ๋งž์ถคํ™”๋œ ํ™˜๊ฒฝ์„ ์ œ๊ณตํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค. ๋‹ค์Œ ๋‹ค์ด์–ด๊ทธ๋žจ์—์„œ Cloud Service Mesh๋Š” ์ผ๋ฐ˜ ์„œ๋น„์Šค ๋Œ€์‹  Android ์„œ๋น„์Šค๋กœ user-agent:Android ํ—ค๋”๊ฐ€ ํฌํ•จ๋œ ์š”์ฒญ์„ ๋ณด๋‚ด๋„๋ก ์„œ๋น„์Šค ๋ฉ”์‹œ๋ฅผ ๊ตฌ์„ฑํ•ฉ๋‹ˆ๋‹ค.

Android์— ์„ค์ •๋œ user-agent ํ—ค๋” ๊ธฐ๋ฐ˜ ๋ผ์šฐํŒ…
Android์— ์„ค์ •๋œ user-agent ํ—ค๋” ๊ธฐ๋ฐ˜ ๋ผ์šฐํŒ…(ํ™•๋Œ€ํ•˜๋ ค๋ฉด ํด๋ฆญ)

๋” ์•ˆ์ „ํ•œ ๋ฐฐํฌ๋ฅผ ์œ„ํ•œ ๊ฐ€์ค‘์น˜ ๊ธฐ๋ฐ˜ ํŠธ๋ž˜ํ”ฝ ๋ถ„ํ• 

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

Cloud Service Mesh๋ฅผ ์‚ฌ์šฉํ•˜๋ฉด ์—ฌ๋Ÿฌ ์„œ๋น„์Šค์— ํŠธ๋ž˜ํ”ฝ์„ ๋ถ„์‚ฐํ•  ์ˆ˜ ์žˆ๋„๋ก ๊ฐ€์ค‘์น˜ ๊ธฐ๋ฐ˜ ํŠธ๋ž˜ํ”ฝ ๋ถ„ํ• ์„ ์ •์˜ํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค. ์˜ˆ๋ฅผ ๋“ค์–ด ํŠธ๋ž˜ํ”ฝ์˜ 1%๋ฅผ ์ƒˆ ๋ฒ„์ „์˜ ์„œ๋น„์Šค๋กœ ์ „์†กํ•˜๊ณ  ๋ชจ๋“  ๊ฒƒ์ด ์ž‘๋™ํ•˜๋Š”์ง€ ๋ชจ๋‹ˆํ„ฐ๋งํ•œ ๋‹ค์Œ ์ƒˆ ์„œ๋น„์Šค๋กœ ์ด๋™ํ•˜๋Š” ํŠธ๋ž˜ํ”ฝ์˜ ๋น„์œจ์„ ์ ์ฐจ์ ์œผ๋กœ ํ™•๋Œ€ํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค.

Cloud Service Mesh ๊ฐ€์ค‘์น˜ ๊ธฐ๋ฐ˜ ํŠธ๋ž˜ํ”ฝ ๋ถ„ํ• 
Cloud Service Mesh ๊ฐ€์ค‘์น˜ ๊ธฐ๋ฐ˜ ํŠธ๋ž˜ํ”ฝ ๋ถ„ํ• (ํ™•๋Œ€ํ•˜๋ ค๋ฉด ํด๋ฆญ)

๋””๋ฒ„๊น…์„ ์œ„ํ•œ ํŠธ๋ž˜ํ”ฝ ๋ฏธ๋Ÿฌ๋ง

๋ฌธ์ œ๋ฅผ ๋””๋ฒ„๊น…ํ•  ๋•Œ ํ”„๋กœ๋•์…˜ ํŠธ๋ž˜ํ”ฝ์˜ ๋ณต์‚ฌ๋ณธ์„ ๋””๋ฒ„๊น… ์„œ๋น„์Šค๋กœ ๋ณด๋‚ด๋Š” ๊ฒƒ์ด ์œ ์šฉํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค. Cloud Service Mesh๋ฅผ ์‚ฌ์šฉํ•˜๋ฉด ์š”์ฒญ์„ ํ•œ ์„œ๋น„์Šค์— ์ „์†กํ•˜๊ณ  ํ•ด๋‹น ์š”์ฒญ์˜ ์‚ฌ๋ณธ์„ ๋‹ค๋ฅธ ์„œ๋น„์Šค์— ์ „์†กํ•˜๋„๋ก ์š”์ฒญ ๋ฏธ๋Ÿฌ๋ง ์ •์ฑ…์„ ์„ค์ •ํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค.

Cloud Service Mesh ํŠธ๋ž˜ํ”ฝ ๋ฏธ๋Ÿฌ๋ง
Cloud Service Mesh ํŠธ๋ž˜ํ”ฝ ๋ฏธ๋Ÿฌ๋ง(ํ™•๋Œ€ํ•˜๋ ค๋ฉด ํด๋ฆญ)

์„ฑ๋Šฅ ํ–ฅ์ƒ์„ ์œ„ํ•œ ์„ธ๋ถ„ํ™”๋œ ๋ถ€ํ•˜ ๋ถ„์‚ฐ

์• ํ”Œ๋ฆฌ์ผ€์ด์…˜ ํŠน์„ฑ์— ๋”ฐ๋ผ ์„œ๋น„์Šค์˜ ๋ฐฑ์—”๋“œ์— ํŠธ๋ž˜ํ”ฝ์ด ๋ถ„์‚ฐ๋˜๋Š” ๋ฐฉ์‹์„ ์„ธ๋ถ€ ์กฐ์ •ํ•˜๋ฉด ์„ฑ๋Šฅ ๋ฐ ๊ฐ€์šฉ์„ฑ์„ ๊ฐœ์„ ํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค. Cloud Service Mesh๋ฅผ ์‚ฌ์šฉํ•˜๋ฉด ํ•„์š”์— ๋”ฐ๋ผ ํŠธ๋ž˜ํ”ฝ์ด ๋ถ„์‚ฐ๋˜๋„๋ก ๊ณ ๊ธ‰ ๋ถ€ํ•˜ ๋ถ„์‚ฐ ์•Œ๊ณ ๋ฆฌ์ฆ˜์„ ์ ์šฉํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค.

๋‹ค์Œ ๋‹ค์ด์–ด๊ทธ๋žจ์€ ์ด์ „ ๋‹ค์ด์–ด๊ทธ๋žจ๊ณผ ๋น„๊ตํ•˜์—ฌ ๋Œ€์ƒ ๋ฐฑ์—”๋“œ ์„œ๋น„์Šค(ํ”„๋กœ๋•์…˜ ์„œ๋น„์Šค)์™€ ์ด ๋ฐฑ์—”๋“œ ์„œ๋น„์Šค์˜ ๋ฐฑ์—”๋“œ(๊ฐ€์ƒ ๋จธ์‹  1, ๊ฐ€์ƒ ๋จธ์‹  2, ๊ฐ€์ƒ ๋จธ์‹  3)๋ฅผ ๋ชจ๋‘ ๋ณด์—ฌ์ค๋‹ˆ๋‹ค. ๊ณ ๊ธ‰ ํŠธ๋ž˜ํ”ฝ ๊ด€๋ฆฌ๋ฅผ ์‚ฌ์šฉํ•˜๋ฉด ๋Œ€์ƒ ๋ฐฑ์—”๋“œ ์„œ๋น„์Šค๋ฅผ ์„ ํƒํ•˜๋Š” ๋ฐฉ์‹๊ณผ ๋Œ€์ƒ ์„œ๋น„์Šค์˜ ๋ฐฑ์—”๋“œ ๊ฐ„์— ํŠธ๋ž˜ํ”ฝ์„ ๋ถ„์‚ฐํ•˜๋Š” ๋ฐฉ์‹์„ ๋ชจ๋‘ ๊ตฌ์„ฑํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค.

Cloud Service Mesh ๋ถ€ํ•˜ ๋ถ„์‚ฐ
Cloud Service Mesh ๋ถ€ํ•˜ ๋ถ„์‚ฐ(ํ™•๋Œ€ํ•˜๋ ค๋ฉด ํด๋ฆญ)

Cloud Service Mesh๋ฅผ ์‚ฌ์šฉํ•˜๋Š” ๋ถ€ํ•˜ ๋ถ„์‚ฐ์— ๋Œ€ํ•œ ์ž์„ธํ•œ ๋‚ด์šฉ์€ ๊ณ ๊ธ‰ ๋ถ€ํ•˜ ๋ถ„์‚ฐ ๊ฐœ์š”๋ฅผ ์ฐธ์กฐํ•˜์„ธ์š”.

๋‹ค์Œ ๋‹จ๊ณ„