Cloud Service Mesh ์„œ๋น„์Šค ๋ผ์šฐํŒ… API ๊ฐœ์š”

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

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

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

์„œ๋น„์Šค ๋ผ์šฐํŒ… ๋ชจ๋ธ์€ Mesh, Gateway, Route๋ผ๋Š” API ๋ฆฌ์†Œ์Šค๋ฅผ ์‚ฌ์šฉํ•ฉ๋‹ˆ๋‹ค. ์ด๋Ÿฌํ•œ ๋ฆฌ์†Œ์Šค๋Š” ์„œ๋น„์Šค ๋„คํŠธ์›Œํ‚น ์ปจํŠธ๋กค ํ”Œ๋ ˆ์ธ์„ ์ •์˜ํ•  ๋•Œ ์ƒํ™ฉ์— ๋งž๋Š” ๊ตฌ์„ฑ ํ™˜๊ฒฝ์„ ์ œ๊ณตํ•ฉ๋‹ˆ๋‹ค.

์ด ๋ฌธ์„œ์—์„œ๋Š” ๋‹ค์Œ๊ณผ ๊ฐ™์€ ์„œ๋น„์Šค ๋ผ์šฐํŒ… API ๋ชจ๋ธ ๋ฐ ๋ฆฌ์†Œ์Šค๋ฅผ ์†Œ๊ฐœํ•ฉ๋‹ˆ๋‹ค.

  • Mesh ๋ฆฌ์†Œ์Šค
    • Envoy ์‚ฌ์ด๋“œ์นด ํ”„๋ก์‹œ ๋ฐ ํ”„๋ก์‹œ๋ฆฌ์Šค gRPC ํด๋ผ์ด์–ธํŠธ์— ๋Œ€ํ•œ ์„œ๋น„์Šค ๊ฐ„(East-West) ํŠธ๋ž˜ํ”ฝ ๊ด€๋ฆฌ ๋ฐ ๋ณด์•ˆ ๊ตฌ์„ฑ
  • Gateway ๋ฆฌ์†Œ์Šค

    • ์ธ๊ทธ๋ ˆ์Šค ๊ฒŒ์ดํŠธ์›จ์ด ์—ญํ• ์„ ํ•˜๋Š” Envoy ํ”„๋ก์‹œ์˜ ํŠธ๋ž˜ํ”ฝ ๊ด€๋ฆฌ ๋ฐ ๋ณด์•ˆ ๊ตฌ์„ฑ์œผ๋กœ ์™ธ๋ถ€ ํด๋ผ์ด์–ธํŠธ๊ฐ€ ์„œ๋น„์Šค ๋ฉ”์‹œ(North-South)์— ์—ฐ๊ฒฐ ๊ฐ€๋Šฅ
  • ๋‹ค์Œ ์œ ํ˜•์˜ Route ๋ฆฌ์†Œ์Šค:

Google Cloud ์ฝ˜์†”์€ ์„œ๋น„์Šค ๋ผ์šฐํŒ… API๋ฅผ ์ง€์›ํ•˜์ง€ ์•Š์Šต๋‹ˆ๋‹ค. Google Cloud CLI ๋˜๋Š” REST API๋ฅผ ์‚ฌ์šฉํ•˜์—ฌ ์ด๋Ÿฌํ•œ API ๋ฆฌ์†Œ์Šค๋ฅผ ๊ตฌํ˜„ํ•ด์•ผ ํ•ฉ๋‹ˆ๋‹ค.

์‚ฌ์šฉ ์‚ฌ๋ก€ ๋ฐ ์ด์ 

์„œ๋น„์Šค ๋ผ์šฐํŒ… API๋ฅผ ์‚ฌ์šฉํ•˜๋ฉด ํ”„๋ก์‹œ๋ฆฌ์Šค gRPC ๋ฐ Envoy ํ”„๋ก์‹œ ๋ฐฐํฌ ๋ชจ๋‘์— Cloud Service Mesh๋ฅผ ๊ตฌ์„ฑํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค. ์„œ๋น„์Šค ๋ผ์šฐํŒ… API ๋ชจ๋ธ์€ ๋ช‡ ๊ฐ€์ง€ ์ค‘์š”ํ•œ ์ด์ ์„ ์ œ๊ณตํ•ฉ๋‹ˆ๋‹ค.

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

์„œ๋น„์Šค ๋ฉ”์‹œ์˜ East-West-์„œ๋น„์Šค ๊ฐ„ ํŠธ๋ž˜ํ”ฝ
์„œ๋น„์Šค ๋ฉ”์‹œ์˜ East-West ์„œ๋น„์Šค ๊ฐ„ ํŠธ๋ž˜ํ”ฝ(ํ™•๋Œ€ํ•˜๋ ค๋ฉด ํด๋ฆญ)

์—ญํ•  ์ค‘์‹ฌ์˜ API ์„ค๊ณ„๋กœ ๋ช…ํ™•ํ•œ ์ฑ…์ž„ ๊ตฌ๋ถ„ ๊ฐ€๋Šฅ

์„œ๋น„์Šค ๋ผ์šฐํŒ… API์—์„œ๋Š” ์กฐ์ง ์—ญํ• ์„ ๊ธฐ์ค€์œผ๋กœ ๋ฉ”์‹œ ๊ตฌ์„ฑ ์ฑ…์ž„์„ ๋ถ„๋ฆฌํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค.

  • ๋ฉ”์‹œ ๊ด€๋ฆฌ์ž๋Š” ๋…ผ๋ฆฌ์  ๋ฉ”์‹œ์™€ ์ธ๊ทธ๋ ˆ์Šค ๊ฒŒ์ดํŠธ์›จ์ด ์ธํ”„๋ผ๋ฅผ ์ •์˜ํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค.
  • ์„œ๋น„์Šค ์†Œ์œ ์ž(์• ํ”Œ๋ฆฌ์ผ€์ด์…˜ ๊ฐœ๋ฐœ์ž)๋Š” ์„œ๋น„์Šค์— ๋Œ€ํ•œ ์•ก์„ธ์Šค ํŒจํ„ด์„ ๋…๋ฆฝ์ ์œผ๋กœ ์ •์˜ํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค. ๋˜ํ•œ ์„œ๋น„์Šค์— ๋Œ€ํ•œ ํŠธ๋ž˜ํ”ฝ ๊ด€๋ฆฌ ์ •์ฑ…์„ ์ •์˜ํ•˜๊ณ  ์ ์šฉํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค.

๋‹ค์Œ ๋‹ค์ด์–ด๊ทธ๋žจ์—์„œ Cloud Load Balancing ๋ฐ Gateway ๋ฆฌ์†Œ์Šค๋Š” ๋ฉ”์‹œ์— ์—†๋Š” ํด๋ผ์ด์–ธํŠธ์—์„œ ๋ฉ”์‹œ๋กœ ๋“ค์–ด๊ฐ€๋Š” ํŠธ๋ž˜ํ”ฝ์— ๋Œ€ํ•œ ์ธ๊ทธ๋ ˆ์Šค ๊ฒŒ์ดํŠธ์›จ์ด๋ฅผ ์ œ๊ณตํ•ฉ๋‹ˆ๋‹ค. ๋ฉ”์‹œ ๊ด€๋ฆฌ์ž๋Š” Gateway ๋ฆฌ์†Œ์Šค๋ฅผ ๊ตฌ์„ฑ ๋ฐ ๊ด€๋ฆฌํ•˜๊ณ  ์„œ๋น„์Šค ์†Œ์œ ์ž๋Š” ์ž์‹ ์˜ ๊ณ ์œ  ์„œ๋น„์Šค ๋ฐ ํŠธ๋ž˜ํ”ฝ ๋ผ์šฐํŒ…์„ ๊ตฌ์„ฑํ•˜๊ณ  ๊ด€๋ฆฌํ•ฉ๋‹ˆ๋‹ค.

๊ฒŒ์ดํŠธ์›จ์ด๋ฅผ ํ†ตํ•ด ๋ฉ”์‹œ์— ๋“ค์–ด์˜ค๋Š” North-South ํŠธ๋ž˜ํ”ฝ
๊ฒŒ์ดํŠธ์›จ์ด๋ฅผ ํ†ตํ•ด ๋ฉ”์‹œ์— ๋“ค์–ด์˜ค๋Š” North-South ํŠธ๋ž˜ํ”ฝ(ํ™•๋Œ€ํ•˜๋ ค๋ฉด ํด๋ฆญ)

์…€ํ”„ ์„œ๋น„์Šค ๋ชจ๋ธ๋กœ ์•ˆ์ •์„ฑ ํ–ฅ์ƒ

์„œ๋น„์Šค ๋ผ์šฐํŒ… API๋Š” ๋…๋ฆฝ ์„œ๋น„์Šค ์†Œ์œ ์ž๊ฐ€ ๊ตฌ์„ฑํ•˜๊ณ  ์†Œ์œ ํ•  ์ˆ˜ ์žˆ๋Š” ํ”„๋กœํ† ์ฝœ๋ณ„, ๋ผ์šฐํŒ…๋ณ„ ๋ฆฌ์†Œ์Šค๋ฅผ ์‚ฌ์šฉํ•ฉ๋‹ˆ๋‹ค. ์ด ๋ฐฉ์‹์˜ ์žฅ์ ์€ ๋‹ค์Œ๊ณผ ๊ฐ™์Šต๋‹ˆ๋‹ค.

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

๊ณต์œ  VPC ํ™˜๊ฒฝ์˜ ์—ฌ๋Ÿฌ ํ”„๋กœ์ ํŠธ์— ๊ฑธ์ณ ์„œ๋น„์Šค ๋ฉ”์‹œ ์‚ฌ์šฉ ์„ค์ •

์„œ๋น„์Šค ๋ผ์šฐํŒ… API ๋ชจ๋ธ์„ ์‚ฌ์šฉํ•˜๋ฉด ์„œ๋น„์Šค ์†Œ์œ ์ž๊ฐ€ ๊ณต์œ  VPC ๋ฐ ๊ธฐํƒ€ ์—ฐ๊ฒฐ ๋ฐฉ๋ฒ•์„ ์‚ฌ์šฉํ•˜์—ฌ ๊ณต์œ  ๋ฉ”์‹œ ์ธํ”„๋ผ์— ์ฐธ์—ฌํ•˜๋ฉด์„œ๋„ ์ž์‹ ์˜ ์„œ๋น„์Šค๋ฅผ ๋…๋ฆฝ์ ์œผ๋กœ ์ œ์–ดํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค. ์˜ˆ๋ฅผ ๋“ค์–ด ์„œ๋น„์Šค ์†Œ์œ ์ž๊ฐ€ ์ž์‹ ์˜ ํ”„๋กœ์ ํŠธ์— Route ๋ฆฌ์†Œ์Šค๋ฅผ ์ •์˜ํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค. ํ”Œ๋žซํผ ๊ด€๋ฆฌ์ž๋Š” ์ค‘์•™์—์„œ ๊ด€๋ฆฌ๋˜๋Š” ํ˜ธ์ŠคํŠธ ํ”„๋กœ์ ํŠธ์— Mesh๋ฅผ ์ •์˜ํ•œ ํ›„ ์„œ๋น„์Šค ์†Œ์œ ์ž์—๊ฒŒ Route ๋ฆฌ์†Œ์Šค๋ฅผ ๊ณต์œ  Mesh ๋˜๋Š” Gateway์— ์—ฐ๊ฒฐํ•  ์ˆ˜ ์žˆ๋Š” IAM ๊ถŒํ•œ์„ ๋ถ€์—ฌํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค. ๋‹ค์Œ ๋‹ค์ด์–ด๊ทธ๋žจ์€ ๊ณต์œ  VPC๊ฐ€ ํฌํ•จ๋œ ์˜ˆ์‹œ๋ฅผ ๋ณด์—ฌ์ค๋‹ˆ๋‹ค.

๊ณต์œ  VPC๋ฅผ ์‚ฌ์šฉํ•œ ํ”„๋กœ์ ํŠธ ๊ฐ„ ์ฐธ์กฐ
๊ณต์œ  VPC๋ฅผ ํ†ตํ•œ ํ”„๋กœ์ ํŠธ ๊ฐ„ ์ฐธ์กฐ(ํ™•๋Œ€ํ•˜๋ ค๋ฉด ํด๋ฆญ)

๋˜ํ•œ ์„œ๋น„์Šค ๋ผ์šฐํŒ… API๋ฅผ ์‚ฌ์šฉํ•˜๋ฉด VPC ๋„คํŠธ์›Œํฌ ํ”ผ์–ด๋ง์„ ํ†ตํ•ด ๋‹ค๋ฅธ ๋„คํŠธ์›Œํฌ์— ์„œ๋น„์Šค ๋ฉ”์‹œ ํด๋ผ์ด์–ธํŠธ๋ฅผ ์—ฐ๊ฒฐํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค.

์„œ๋ฒ„ ์ด๋ฆ„ ํ‘œ์‹œ๊ธฐ ๊ธฐ์ค€ ํŠธ๋ž˜ํ”ฝ ๋ผ์šฐํŒ…

TLSRoute ๋ฆฌ์†Œ์Šค๋ฅผ ์‚ฌ์šฉํ•˜๋ฉด TLS ํ•ธ๋“œ์…ฐ์ดํฌ์˜ ์„œ๋ฒ„ ์ด๋ฆ„ ํ‘œ์‹œ(SNI)๋ฅผ ๊ธฐ์ค€์œผ๋กœ TLS๋กœ ์•”ํ˜ธํ™”๋œ ํŠธ๋ž˜ํ”ฝ์„ ๋ผ์šฐํŒ…ํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค. TLSRoute ๋ฆฌ์†Œ์Šค์— SNI ์ผ์น˜๋ฅผ ๊ตฌ์„ฑํ•˜์—ฌ TLS ํŠธ๋ž˜ํ”ฝ์ด ์ ์ ˆํ•œ ๋ฐฑ์—”๋“œ ์„œ๋น„์Šค๋กœ ๋ผ์šฐํŒ…๋˜๋„๋ก ๊ตฌ์„ฑํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค. ์ด๋Ÿฌํ•œ ๋ฐฐํฌ์—์„œ ํ”„๋ก์‹œ๋Š” ํŠธ๋ž˜ํ”ฝ๋งŒ ๋ผ์šฐํŒ…ํ•˜๊ณ  ๋Œ€์ƒ ๋ฐฑ์—”๋“œ ์ธ์Šคํ„ด์Šค์—์„œ TLS ์„ธ์…˜์ด ์ข…๋ฃŒ๋ฉ๋‹ˆ๋‹ค.

TLSRoute ๋ฆฌ์†Œ์Šค๋Š” ์‚ฌ์ด๋“œ์นด ํ”„๋ก์‹œ ๋˜๋Š” ๊ฒŒ์ดํŠธ์›จ์ด๋กœ ๋ฐฐํฌ๋˜๋Š” Envoy ํ”„๋ก์‹œ์—๋งŒ ์ง€์›๋ฉ๋‹ˆ๋‹ค.

Mesh ๋ฆฌ์†Œ์Šค์— ์—ฐ๊ฒฐ๋œ TLSRoute ๋ฆฌ์†Œ์Šค

๋‹ค์Œ ๋‹ค์ด์–ด๊ทธ๋žจ์— ํ‘œ์‹œ๋œ ๋ฐฐํฌ๋Š” service1 ๊ฐ’์ด ํฌํ•จ๋œ SNI ํ™•์žฅ ํ”„๋กœ๊ทธ๋žจ์ด ์žˆ๋Š” ์„œ๋น„์Šค ๋ฉ”์‹œ ํŠธ๋ž˜ํ”ฝ์„ ๋ฐฑ์—”๋“œ ์„œ๋น„์Šค service1๋กœ ๋ผ์šฐํŒ…ํ•ฉ๋‹ˆ๋‹ค. ๋˜ํ•œ SNI ํ™•์žฅ ํ”„๋กœ๊ทธ๋žจ์— service2 ๊ฐ’์ด ํฌํ•จ๋œ ์„œ๋น„์Šค ๋ฉ”์‹œ ํŠธ๋ž˜ํ”ฝ์ด ๋ฐฑ์—”๋“œ ์„œ๋น„์Šค service2๋กœ ๋ผ์šฐํŒ…๋ฉ๋‹ˆ๋‹ค. SNI ํ™•์žฅ ํ”„๋กœ๊ทธ๋žจ ๊ฐ’๊ณผ ๋ฐฑ์—”๋“œ ์„œ๋น„์Šค ์ด๋ฆ„์€ ์„œ๋กœ ๋…๋ฆฝ์ ์ž…๋‹ˆ๋‹ค.

TLSRoute ๋ฆฌ์†Œ์Šค ๋ฐ ๋ฉ”์‹œ ๋ฆฌ์†Œ์Šค
TLSRoute ๋ฆฌ์†Œ์Šค ๋ฐ Mesh ๋ฆฌ์†Œ์Šค(ํ™•๋Œ€ํ•˜๋ ค๋ฉด ํด๋ฆญ)

Gateway ๋ฆฌ์†Œ์Šค์— ์—ฐ๊ฒฐ๋œ TLSRoute ๋ฆฌ์†Œ์Šค

๋‹ค์Œ ๋‹ค์ด์–ด๊ทธ๋žจ์— ํ‘œ์‹œ๋œ ๋ฐฐํฌ๋Š” SNI ํ™•์žฅ ํ”„๋กœ๊ทธ๋žจ์— serviceA ๊ฐ’์ด ํฌํ•จ๋œ Gateway ๋ฆฌ์†Œ์Šค์— ๋Œ€ํ•œ ์ธ๋ฐ”์šด๋“œ ํŠธ๋ž˜ํ”ฝ์„ ๋ฐฑ์—”๋“œ ์„œ๋น„์Šค serviceA๋กœ ๋ผ์šฐํŒ…ํ•ฉ๋‹ˆ๋‹ค. ๋˜ํ•œ SNI ํ™•์žฅ ํ”„๋กœ๊ทธ๋žจ์— serviceB ๊ฐ’์ด ํฌํ•จ๋œ Gateway์— ๋Œ€ํ•œ ์ธ๋ฐ”์šด๋“œ ํŠธ๋ž˜ํ”ฝ์ด ๋ฐฑ์—”๋“œ ์„œ๋น„์Šค serviceB๋กœ ๋ผ์šฐํŒ…๋ฉ๋‹ˆ๋‹ค. SNI ํ™•์žฅ ํ”„๋กœ๊ทธ๋žจ ๊ฐ’๊ณผ ๋ฐฑ์—”๋“œ ์„œ๋น„์Šค ์ด๋ฆ„์€ ์„œ๋กœ ๋…๋ฆฝ์ ์ž…๋‹ˆ๋‹ค. SNI ํ™•์žฅ ํ”„๋กœ๊ทธ๋žจ ๊ฐ’๊ณผ HTTP ์š”์ฒญ์˜ ํ—ค๋”๋„ ์„œ๋กœ ๋…๋ฆฝ์ ์ž…๋‹ˆ๋‹ค.

Gateway ๋ฆฌ์†Œ์Šค๋Š” Gateway์˜ Envoy ํ”„๋ก์‹œ์—์„œ TLS ์—ฐ๊ฒฐ์„ ์ข…๋ฃŒํ•˜์ง€ ์•Š์Šต๋‹ˆ๋‹ค. ๋Œ€์‹  ํ•ด๋‹น ๋ฐฑ์—”๋“œ ์„œ๋น„์Šค์—์„œ TLS ์—ฐ๊ฒฐ์ด ์ข…๋ฃŒ๋ฉ๋‹ˆ๋‹ค. Gateway๋Š” ์ผ๋ฐ˜ ํ…์ŠคํŠธ SNI ํ™•์žฅ ํ”„๋กœ๊ทธ๋žจ์„ ํฌํ•จํ•˜๋Š” ClientHello๋ฅผ ๋ณผ ์ˆ˜ ์žˆ๋Š” ๊ฒƒ ์™ธ์— TLS ๋ ˆ์ด์–ด์—์„œ ์–ด๋– ํ•œ ์•”ํ˜ธํ™”๋œ ์ •๋ณด๋„ ๊ฒ€์‚ฌํ•  ์ˆ˜ ์—†์Šต๋‹ˆ๋‹ค. Gateway๋Š” ์ด ๋ชจ๋“œ์—์„œ TLS ํŒจ์Šค์Šค๋ฃจ๋ฅผ ์ˆ˜ํ–‰ํ•ฉ๋‹ˆ๋‹ค. ์•”ํ˜ธํ™”๋œ ClientHello๋Š” ์ง€์›๋˜์ง€ ์•Š์Šต๋‹ˆ๋‹ค.

TLSRoute ๋ฆฌ์†Œ์Šค ๋ฐ ๊ฒŒ์ดํŠธ์›จ์ด ๋ฆฌ์†Œ์Šค
TLSRoute ๋ฆฌ์†Œ์Šค ๋ฐ Gateway ๋ฆฌ์†Œ์Šค(ํ™•๋Œ€ํ•˜๋ ค๋ฉด ํด๋ฆญ)

ํ•ต์‹ฌ gRPC ์ง€์›

๋ฉ”์„œ๋“œ๋ณ„ ์ผ์น˜์™€ ๊ฐ™์€ ํ•ต์‹ฌ gRPC ์†์„ฑ์„ ์‚ฌ์šฉํ•˜์—ฌ ํ”„๋ก์‹œ๋ฆฌ์Šค gRPC ํด๋ผ์ด์–ธํŠธ๋ฅผ ๊ตฌ์„ฑํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค.

TCP ํŠธ๋ž˜ํ”ฝ์˜ ํŠธ๋ž˜ํ”ฝ ๋ถ„ํ• 

์—ฌ๋Ÿฌ ๋ฐฑ์—”๋“œ ์„œ๋น„์Šค์—์„œ TCP ํŠธ๋ž˜ํ”ฝ์— ๋Œ€ํ•œ ๊ฐ€์ค‘์น˜ ๊ธฐ๋ฐ˜ ํŠธ๋ž˜ํ”ฝ ๋ถ„ํ• ์„ ๊ตฌํ˜„ํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค. ์„œ๋น„์Šค๋ฅผ ์—…๋ฐ์ดํŠธํ•  ๋•Œ ์นด๋‚˜๋ฆฌ์•„(๋ธ”๋ฃจ-๊ทธ๋ฆฐ) ์ถœ์‹œ์™€ ๊ฐ™์€ ํŒจํ„ด์„ ๊ตฌ์„ฑํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค. ๋˜ํ•œ ํŠธ๋ž˜ํ”ฝ ๋ถ„ํ• ์„ ํ†ตํ•ด ๋‹ค์šดํƒ€์ž„ ์—†์ด ์ œ์–ด๋œ ๋ฐฉ์‹์œผ๋กœ ํŠธ๋ž˜ํ”ฝ์„ ๋งˆ์ด๊ทธ๋ ˆ์ด์…˜ํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค.

ํŠธ๋ž˜ํ”ฝ ๊ฐ€๋กœ์ฑ„๊ธฐ

์„œ๋น„์Šค ๋ผ์šฐํŒ… API Mesh ๋ฐ Gateway ๋ฆฌ์†Œ์Šค๋ฅผ ์‚ฌ์šฉํ•˜๋ฉด ๋ชจ๋“  ํŠธ๋ž˜ํ”ฝ์ด ์ž๋™์œผ๋กœ ์ฐจ๋‹จ๋ฉ๋‹ˆ๋‹ค. ์ž์„ธํ•œ ๋‚ด์šฉ์€ ์ž๋™ Envoy ๋ฐฐํฌ๋ฅผ ์‚ฌ์šฉํ•œ Compute Engine VM ์„ค์ • ์˜ต์…˜์„ ์ฐธ์กฐํ•˜์„ธ์š”.

์•„ํ‚คํ…์ฒ˜ ๋ฐ ๋ฆฌ์†Œ์Šค

์ด ์„น์…˜์—์„œ๋Š” ์„œ๋น„์Šค ๋ผ์šฐํŒ… API ๋ชจ๋ธ๊ณผ ํ•ด๋‹น ๋ฆฌ์†Œ์Šค๋ฅผ ์„ค๋ช…ํ•˜๊ณ  ์„œ๋น„์Šค ๋ผ์šฐํŒ… API ๋ฆฌ์†Œ์Šค๊ฐ€ ํ•จ๊ป˜ ์ž‘๋™ํ•˜๋Š” ๋ฐฉ์‹์„ ์„ค๋ช…ํ•ฉ๋‹ˆ๋‹ค.

Mesh ๋ฆฌ์†Œ์Šค

Mesh ๋ฆฌ์†Œ์Šค๋Š” ์„œ๋น„์Šค ๋ฉ”์‹œ์˜ ์ธ์Šคํ„ด์Šค๋ฅผ ๋‚˜ํƒ€๋ƒ…๋‹ˆ๋‹ค. ์ด๋ฅผ ์‚ฌ์šฉํ•ด์„œ ํ”„๋กœ์ ํŠธ์— ๋…ผ๋ฆฌ์  ์„œ๋น„์Šค ๋ฉ”์‹œ๋ฅผ ๋งŒ๋“ญ๋‹ˆ๋‹ค. ๊ฐ Mesh ๋ฆฌ์†Œ์Šค๋Š” ํ”„๋กœ์ ํŠธ์—์„œ ์ด๋ฆ„์ด ๊ณ ์œ ํ•ด์•ผ ํ•ฉ๋‹ˆ๋‹ค. Mesh ๋ฆฌ์†Œ์Šค๋ฅผ ๋งŒ๋“  ํ›„์—๋Š” ์ด๋ฆ„์„ ์ˆ˜์ •ํ•  ์ˆ˜ ์—†์Šต๋‹ˆ๋‹ค.

Envoy ์‚ฌ์ด๋“œ์นด ๋ฐ ํ”„๋ก์‹œ๋ฆฌ์Šค gRPC ๋ฐฐํฌ๋ฅผ ์‚ฌ์šฉํ•˜๋Š” ๋ฉ”์‹œ API ๋ฆฌ์†Œ์Šค
Mesh Envoy ์‚ฌ์ด๋“œ์นด ๋ฐ ํ”„๋ก์‹œ๋ฆฌ์Šค gRPC ๋ฐฐํฌ๋ฅผ ์‚ฌ์šฉํ•˜๋Š” API ๋ฆฌ์†Œ์Šค(ํ™•๋Œ€ํ•˜๋ ค๋ฉด ํด๋ฆญ)

Mesh ๋ฆฌ์†Œ์Šค๋Š” Route ๋ฆฌ์†Œ์Šค์—์„œ ์ฐธ์กฐ๋˜์–ด ๋ฉ”์‹œ์˜ ์ผ๋ถ€์ธ ์„œ๋น„์Šค์˜ ๊ฒฝ๋กœ๋ฅผ ์ถ”๊ฐ€ํ•ฉ๋‹ˆ๋‹ค.

Envoy ํ”„๋ก์‹œ ๋ฐ ํ”„๋ก์‹œ๋ฆฌ์Šค gRPC ํด๋ผ์ด์–ธํŠธ๋Š” Mesh ๋ฆฌ์†Œ์Šค ์ด๋ฆ„์œผ๋กœ ์‹๋ณ„๋œ ์„œ๋น„์Šค ๋ฉ”์‹œ์— ์กฐ์ธํ•˜์—ฌ Cloud Service Mesh์—์„œ ๊ตฌ์„ฑ์„ ๋ฐ›์Šต๋‹ˆ๋‹ค. Mesh ๋ฆฌ์†Œ์Šค๋Š” ๋‹ค์Œ ๋ฐ์ดํ„ฐ ์˜์—ญ ๋ฐฐํฌ๋ฅผ ์ง€์›ํ•ฉ๋‹ˆ๋‹ค.

  • ์‚ฌ์ด๋“œ์นด ํ”„๋ก์‹œ๋กœ ์• ํ”Œ๋ฆฌ์ผ€์ด์…˜๊ณผ ํ•จ๊ป˜ ์‹คํ–‰๋˜๋Š” Envoy
  • ํ”„๋ก์‹œ๋ฆฌ์Šค gRPC ํด๋ผ์ด์–ธํŠธ
  • Envoy ์‚ฌ์ด๋“œ์นด ๋ฐ ํ”„๋ก์‹œ๋ฆฌ์Šค gRPC ํด๋ผ์ด์–ธํŠธ ํ˜ผํ•ฉ

Route ๋ฆฌ์†Œ์Šค

Route ๋ฆฌ์†Œ์Šค๋Š” ์„œ๋น„์Šค์— ๋ผ์šฐํŒ…์„ ์„ค์ •ํ•˜๊ธฐ ์œ„ํ•ด ์‚ฌ์šฉ๋ฉ๋‹ˆ๋‹ค. Route API ๋ฆฌ์†Œ์Šค์—๋Š” ๋„ค ๊ฐ€์ง€ ์œ ํ˜•์ด ์žˆ์Šต๋‹ˆ๋‹ค. ์ด๋Ÿฌํ•œ ๋ฆฌ์†Œ์Šค๋Š” ํŠธ๋ž˜ํ”ฝ์„ ๋ฐฑ์—”๋“œ ์„œ๋น„์Šค๋กœ ๋ผ์šฐํŒ…ํ•˜๊ธฐ ์œ„ํ•ด ์‚ฌ์šฉ๋˜๋Š” ํ”„๋กœํ† ์ฝœ์„ ์ •์˜ํ•ฉ๋‹ˆ๋‹ค.

  • HTTPRoute
  • GRPCRoute
  • TCPRoute
  • TLSRoute

API์—๋Š” Route API๊ฐ€ ํฌํ•จ๋˜์–ด ์žˆ์ง€ ์•Š์Šต๋‹ˆ๋‹ค. ๊ตฌ์„ฑ ๊ฐ€๋Šฅํ•œ API ๋ฆฌ์†Œ์Šค๋Š” HTTPRoute, GRPCRoute, TCPRoute, TLSRoute๋ฟ์ž…๋‹ˆ๋‹ค.

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

Route ๋ฆฌ์†Œ์Šค๋„ ๋ฐฑ์—”๋“œ ์„œ๋น„์Šค ๋ฆฌ์†Œ์Šค ํ•˜๋‚˜ ์ด์ƒ์„ ์ฐธ์กฐํ•ฉ๋‹ˆ๋‹ค. ์ด ์„œ๋น„์Šค๋Š” ๋ฐฑ์—”๋“œ ์„œ๋น„์Šค API๋ฅผ ํ†ตํ•ด ๊ตฌ์„ฑ๋ฉ๋‹ˆ๋‹ค. MIG ๋˜๋Š” NEG ๋ฐฑ์—”๋“œ ํ•˜๋‚˜ ์ด์ƒ์„ ๊ฐ€๋ฆฌํ‚ค๋Š” ๋ฐฑ์—”๋“œ ์„œ๋น„์Šค ๋ฆฌ์†Œ์Šค๋ฅผ ๋งŒ๋“ญ๋‹ˆ๋‹ค.

๋‹ค์Œ ๋‹ค์ด์–ด๊ทธ๋žจ์€ Mesh, Gateway, Route ๋ฆฌ์†Œ์Šค์™€ ๋ฐฑ์—”๋“œ ์„œ๋น„์Šค ๋ฆฌ์†Œ์Šค ๋ฐ ํ•ด๋‹น ๋ฐฑ์—”๋“œ ์‚ฌ์ด์˜ ๊ด€๊ณ„๋ฅผ ๋ณด์—ฌ์ค๋‹ˆ๋‹ค.

๊ฒฝ๋กœ API ๋ฆฌ์†Œ์Šค
Route API ๋ฆฌ์†Œ์Šค(ํ™•๋Œ€ํ•˜๋ ค๋ฉด ํด๋ฆญ)

Route ๋ฆฌ์†Œ์Šค์—์„œ ๋ผ์šฐํŒ…, ํ—ค๋” ์ˆ˜์ •, ์‹œ๊ฐ„ ์ œํ•œ, ๊ฐ€์ค‘์น˜ ๊ธฐ๋ฐ˜ ํŠธ๋ž˜ํ”ฝ ๋ถ„ํ•  ๋“ฑ์˜ ๋‹ค๋ฅธ ํŠธ๋ž˜ํ”ฝ ๊ด€๋ฆฌ ๊ธฐ๋Šฅ์„ ์ •์˜ํ•ฉ๋‹ˆ๋‹ค. ์˜ˆ๋ฅผ ๋“ค์–ด ๋‹ค์Œ ๋‹ค์ด์–ด๊ทธ๋žจ์—์„œ HTTPRoute ๋ฆฌ์†Œ์Šค๋Š” ๋‘ ๋ฐฑ์—”๋“œ ์„œ๋น„์Šค ๊ฐ„์˜ 70%/30% ํŠธ๋ž˜ํ”ฝ ๋ถ„ํ• ์„ ์ •์˜ํ•ฉ๋‹ˆ๋‹ค.

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

์„œ๋น„์Šค ๋ฉ”์‹œ ๊ด€๋ฆฌ๋ฅผ ๊ฐ„์†Œํ™”ํ•˜๋ ค๋ฉด Mesh ๋˜๋Š” Gateway ๋ฆฌ์†Œ์Šค์— ์—ฐ๊ฒฐ๋œ ๋ชจ๋“  Route ๋ฆฌ์†Œ์Šค๋ฅผ ๋‚˜์—ดํ•˜๋ฉด ๋ฉ๋‹ˆ๋‹ค.

TLSRoute ๋ฆฌ์†Œ์Šค

TLSRoute ๋ฆฌ์†Œ์Šค๋ฅผ ์‚ฌ์šฉํ•˜์—ฌ SNI ํ˜ธ์ŠคํŠธ ์ด๋ฆ„ ๋ฐ ์• ํ”Œ๋ฆฌ์ผ€์ด์…˜ ๋ ˆ์ด์–ด ํ”„๋กœํ† ์ฝœ ํ˜‘์ƒ(ALPN) ์ด๋ฆ„์„ ๊ธฐ์ค€์œผ๋กœ TLS ํŠธ๋ž˜ํ”ฝ์„ ๋ฐฑ์—”๋“œ ์„œ๋น„์Šค๋กœ ๋ผ์šฐํŒ…ํ•ฉ๋‹ˆ๋‹ค. TLSRoute ๊ตฌ์„ฑ์€ Envoy ํ”„๋ก์‹œ๊ฐ€ TLS ํŠธ๋ž˜ํ”ฝ์„ ์ข…๋ฃŒํ•˜์ง€ ์•Š๋Š” TLS ํŒจ์Šค์Šค๋ฃจ๋ฅผ ์˜๋ฏธํ•ฉ๋‹ˆ๋‹ค.

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

TLSRoute ๋ฆฌ์†Œ์Šค๋„ ๋ฐฑ์—”๋“œ ์„œ๋น„์Šค ๋ฆฌ์†Œ์Šค ํ•˜๋‚˜ ์ด์ƒ์„ ์ฐธ์กฐํ•ฉ๋‹ˆ๋‹ค. ์ด ์„œ๋น„์Šค๋Š” ๋ฐฑ์—”๋“œ ์„œ๋น„์Šค API ๋ฆฌ์†Œ์Šค๋ฅผ ํ†ตํ•ด ๊ตฌ์„ฑ๋ฉ๋‹ˆ๋‹ค.

Gateway ๋ฆฌ์†Œ์Šค

Gateway ๋ฆฌ์†Œ์Šค๋Š” ์ธ๊ทธ๋ ˆ์Šค ๊ฒŒ์ดํŠธ์›จ์ด๋กœ ์ž‘๋™ํ•˜๋Š” Envoy ํ”„๋ก์‹œ๋ฅผ ๋‚˜ํƒ€๋‚ด๊ธฐ ์œ„ํ•ด ์‚ฌ์šฉ๋˜๋ฉฐ, ์™ธ๋ถ€ ํด๋ผ์ด์–ธํŠธ๊ฐ€ ์„œ๋น„์Šค ๋ฉ”์‹œ(North-South ํŠธ๋ž˜ํ”ฝ)์— ์—ฐ๊ฒฐํ•˜๋„๋ก ํ—ˆ์šฉํ•ฉ๋‹ˆ๋‹ค. ์ด ๋ฆฌ์†Œ์Šค์—๋Š” scope ๋งค๊ฐœ๋ณ€์ˆ˜์™€ ํ•จ๊ป˜ ๋ฆฌ์Šค๋‹ ํฌํŠธ๊ฐ€ ์žˆ์Šต๋‹ˆ๋‹ค. ์ธ๊ทธ๋ ˆ์Šค ๊ฒŒ์ดํŠธ์›จ์ด๋กœ ์ž‘๋™ํ•˜๋Š” Envoy ํ”„๋ก์‹œ๋Š” ์ง€์ •๋œ ํฌํŠธ ๋ฐ ๋กœ์ปฌ VM์˜ ๋ชจ๋“  IP ์ฃผ์†Œ๋ฅผ ๋‚˜ํƒ€๋‚ด๋Š” 0.0.0.0์— ๋ฐ”์ธ๋”ฉ๋ฉ๋‹ˆ๋‹ค. ๋‹ค์Œ ๋‹ค์ด์–ด๊ทธ๋žจ์€ ์ธ๊ทธ๋ ˆ์Šค ์„œ๋น„์Šค๋กœ ๋ฐฐํฌ๋˜๊ณ  Gateway ๋ฆฌ์†Œ์Šค๋กœ ๊ตฌ์„ฑ๋œ Envoy ํ”„๋ก์‹œ๋ฅผ ๋ณด์—ฌ์ค๋‹ˆ๋‹ค. ์ด ํŠน์ • ์˜ˆ์‹œ์—์„œ Envoy ํ”„๋ก์‹œ๋Š” ํด๋ผ์ด์–ธํŠธ์—์„œ์˜ ์ˆ˜์‹  ์—ฐ๊ฒฐ์„ ํฌํŠธ 80์—์„œ ๋ฆฌ์Šจํ•˜๋„๋ก ๊ตฌ์„ฑ๋ฉ๋‹ˆ๋‹ค.

Gateway API ๋ฆฌ์†Œ์Šค๋Š” Envoy ํ”„๋ก์‹œ ๋ฐ์ดํ„ฐ ์˜์—ญ๋งŒ ์ง€์›ํ•ฉ๋‹ˆ๋‹ค. ํ”„๋ก์‹œ๋ฆฌ์Šค gRPC๋ฅผ ์ง€์›ํ•˜์ง€ ์•Š์Šต๋‹ˆ๋‹ค. gRPCRoutes๋Š” Gateway ๋ฆฌ์†Œ์Šค์—์„œ ์ง€์›๋˜์ง€๋งŒ gRPC ํŠธ๋ž˜ํ”ฝ์ด ๋ฏธ๋“ค ํ”„๋ก์‹œ๋กœ ์ž‘๋™ํ•˜๋Š” Envoy ํ”„๋ก์‹œ๋กœ ๋ผ์šฐํŒ…๋ฉ๋‹ˆ๋‹ค.

'๊ฒŒ์ดํŠธ์›จ์ด' ๋ฆฌ์†Œ์Šค๋ฅผ ํ†ตํ•œ ์„œ๋น„์Šค ๋ฉ”์‹œ ์ธ๊ทธ๋ ˆ์Šค
Gateway ๋ฆฌ์†Œ์Šค๋ฅผ ํ†ตํ•œ ์„œ๋น„์Šค ๋ฉ”์‹œ ์ธ๊ทธ๋ ˆ์Šค(ํ™•๋Œ€ํ•˜๋ ค๋ฉด ํด๋ฆญ)
๊ฒŒ์ดํŠธ์›จ์ด ๋ฆฌ์†Œ์Šค
Gateway ๋ฆฌ์†Œ์Šค(ํ™•๋Œ€ํ•˜๋ ค๋ฉด ํด๋ฆญ)

Gateway ๋ฒ”์œ„ ๋ฐ ๋ณ‘ํ•ฉ๋œ Gateway ๊ตฌ์„ฑ์€ ๋ฌด์—‡์ธ๊ฐ€์š”?

Gateway ๋ฆฌ์†Œ์Šค ์ธ์Šคํ„ด์Šค๋Š” ํ•ด๋‹น ํฌํŠธ์—์„œ ์ˆ˜์‹ ๋œ ํŠธ๋ž˜ํ”ฝ์— ๋Œ€ํ•œ ํฌํŠธ ๋ฐ ๊ตฌ์„ฑ์„ ๋‚˜ํƒ€๋ƒ…๋‹ˆ๋‹ค. Gateway API ๋ฆฌ์†Œ์Šค์—๋Š” ๋‘ ๊ฐœ ์ด์ƒ์˜ Gateway ๋ฆฌ์†Œ์Šค ๊ตฌ์„ฑ์„ ๋…ผ๋ฆฌ์ ์œผ๋กœ ๊ทธ๋ฃนํ™”ํ•˜๊ณ  ๋ณ‘ํ•ฉํ•˜๋Š” ๋ฐ ์‚ฌ์šฉ๋˜๋Š” scope ๋งค๊ฐœ๋ณ€์ˆ˜๊ฐ€ ์žˆ์Šต๋‹ˆ๋‹ค.

์˜ˆ๋ฅผ ๋“ค์–ด Gateway ํ”„๋ก์‹œ๊ฐ€ HTTP ๋ฐ HTTPS ํŠธ๋ž˜ํ”ฝ์„ ์ˆ˜์‹ ํ•˜๊ธฐ ์œ„ํ•ด ๊ฐ๊ฐ ํฌํŠธ 80 ๋ฐ 443์—์„œ ๋ฆฌ์Šจํ•˜๋„๋ก ํ•˜๋ ค๋ฉด 2๊ฐœ์˜ Gateway ๋ฆฌ์†Œ์Šค๋ฅผ ๋งŒ๋“ญ๋‹ˆ๋‹ค. HTTP ํŠธ๋ž˜ํ”ฝ์— ๋Œ€ํ•ด ํฌํŠธ 80์œผ๋กœ Gateway ๋ฆฌ์†Œ์Šค๋ฅผ ํ•˜๋‚˜ ๊ตฌ์„ฑํ•˜๊ณ  HTTPS ํŠธ๋ž˜ํ”ฝ์— ๋Œ€ํ•ด์„œ๋„ ํฌํŠธ 443์œผ๋กœ ๋‹ค๋ฅธ ๋ฆฌ์†Œ์Šค๋ฅผ ํ•˜๋‚˜ ๊ตฌ์„ฑํ•ฉ๋‹ˆ๋‹ค. ๊ฐ ๋ฆฌ์†Œ์Šค์˜ scope ํ•„๋“œ์— ๋™์ผํ•œ ๊ฐ’์„ ์ง€์ •ํ•ฉ๋‹ˆ๋‹ค. Cloud Service Mesh๋Š” ๋ฒ”์œ„๊ฐ€ ๋™์ผํ•œ ๋ชจ๋“  ๊ฒŒ์ดํŠธ์›จ์ด์˜ ๊ฐœ๋ณ„ ๊ตฌ์„ฑ์„ ๋™์ ์œผ๋กœ ๋ณ‘ํ•ฉํ•ฉ๋‹ˆ๋‹ค. ๋˜ํ•œ Gateway ๊ตฌ์„ฑ์„ ์ˆ˜์‹ ํ•˜๋ ค๋ฉด ๋ฐ์ดํ„ฐ ์˜์—ญ ์ธก์˜ ์ธ๊ทธ๋ ˆ์Šค ๊ฒŒ์ดํŠธ์›จ์ด ๋ชจ๋“œ์—์„œ ์‹คํ–‰๋˜๋Š” Envoy ํ”„๋ก์‹œ์—์„œ Cloud Service Mesh์— ๊ฐ™์€ ๋ฒ”์œ„ ํŒŒ๋ผ๋ฏธํ„ฐ๋ฅผ ์ œ๊ณตํ•ด์•ผ ํ•ฉ๋‹ˆ๋‹ค. Gateway ๋ฆฌ์†Œ์Šค๋ฅผ ๋งŒ๋“ค ๋•Œ ๋ฒ”์œ„๋ฅผ ์ง€์ •ํ•˜๊ณ  ํ”„๋ก์‹œ์˜ ๋ถ€ํŠธ์ŠคํŠธ๋žฉ ๋งค๊ฐœ๋ณ€์ˆ˜์™€ ๋™์ผํ•œ ๋ฒ”์œ„๋ฅผ ์ง€์ •ํ•ฉ๋‹ˆ๋‹ค.

๊ฒŒ์ดํŠธ์›จ์ด ๋ฆฌ์†Œ์Šค ๋ณ‘ํ•ฉ ๋™์ž‘
Gateway ๋ฆฌ์†Œ์Šค ๋ณ‘ํ•ฉ ๋™์ž‘(ํ™•๋Œ€ํ•˜๋ ค๋ฉด ํด๋ฆญ)

๋‹ค์Œ์€ Gateway ๋ฆฌ์†Œ์Šค์— ๋Œ€ํ•œ ์ฃผ์š” ๊ณ ๋ ค์‚ฌํ•ญ์ž…๋‹ˆ๋‹ค.

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

ํ˜ผํ•ฉ๋œ ํ”„๋กœํ† ์ฝœ ๋ฐ ๋ฐ์ดํ„ฐ ์˜์—ญ์„ ์‚ฌ์šฉํ•œ ๋ฉ”์‹œ ๋ฐฐํฌ

ํ˜ผํ•ฉ๋œ ๋ฐ์ดํ„ฐ ์˜์—ญ ๋ฐฐํฌ๋ฅผ ๊ตฌ์„ฑํ•˜๊ณ  Envoy ํ”„๋ก์‹œ ๋ฐ ํ”„๋ก์‹œ๋ฆฌ์Šค gRPC๋ฅผ ๋™์ผ ๋ฉ”์‹œ์— ํฌํ•จํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค. ์ด๋Ÿฌํ•œ ๋ฐฐํฌ๋ฅผ ๋งŒ๋“ค ๋•Œ๋Š” ๋‹ค์Œ์„ ๊ณ ๋ คํ•˜์„ธ์š”.

  • Envoy ์‚ฌ์ด๋“œ์นด ๋ฐฐํฌ๋Š” ๋ชจ๋“  ๊ฒฝ๋กœ(HTTPRoute, GRPCRoute, TCPRoute, TLSRoute)๋ฅผ ์ง€์›ํ•ฉ๋‹ˆ๋‹ค.
  • ํ”„๋ก์‹œ๋ฆฌ์Šค gRPC ๋ฐฐํฌ๋Š” GRPCRoute๋งŒ ์ง€์›ํ•ฉ๋‹ˆ๋‹ค.
  • GRPCRoute๋Š” gRPC ํ”„๋ก์‹œ๋ฆฌ์Šค ๋ฐฐํฌ์—์„œ๋งŒ ์ง€์›๋˜๋Š” ๊ธฐ๋Šฅ์œผ๋กœ ์ œํ•œ๋ฉ๋‹ˆ๋‹ค.

๋‹ค์ค‘ ํ”„๋กœ์ ํŠธ ๊ณต์œ  VPC ํ™˜๊ฒฝ์—์„œ ์ง€์›๋˜๋Š” ํ† ํด๋กœ์ง€

Cloud Service Mesh๋Š” ๋‹ค๋ฅธ ํ”„๋กœ์ ํŠธ์— ์ •์˜๋œ Route ๋ฆฌ์†Œ์Šค๋ฅผ ์ค‘์•™ ์ง‘์ค‘์‹ ๊ด€๋ฆฌ ํ”„๋กœ์ ํŠธ์— ์ •์˜๋œ Mesh ๋˜๋Š” Gateway ๋ฆฌ์†Œ์Šค์— ์ถ”๊ฐ€ํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค. ์Šน์ธ๋œ ์„œ๋น„์Šค ์†Œ์œ ์ž๋Š” ์ž์‹ ์˜ ์„œ๋น„์Šค ๋ผ์šฐํŒ… ๊ตฌ์„ฑ์„ Mesh ๋˜๋Š” Gateway์— ์ง์ ‘ ์ถ”๊ฐ€ํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค.

Mesh ๋ฐ Route ๋ฆฌ์†Œ์Šค ๊ฐ„์˜ ๊ต์ฐจ ํ”„๋กœ์ ํŠธ ์ฐธ์กฐ
Mesh ๋ฐ Route ๋ฆฌ์†Œ์Šค ์‚ฌ์ด์—์„œ ํ”„๋กœ์ ํŠธ ๊ต์ฐจ ์ฐธ์กฐ(ํ™•๋Œ€ํ•˜๋ ค๋ฉด ํด๋ฆญ)

์ผ๋ฐ˜์ ์ธ ๊ต์ฐจ ํ”„๋กœ์ ํŠธ ์‹œ๋‚˜๋ฆฌ์˜ค์—์„œ๋Š” ํ”„๋กœ์ ํŠธ(ํ˜ธ์ŠคํŠธ ํ”„๋กœ์ ํŠธ ๋˜๋Š” ์ค‘์•™์—์„œ ๊ด€๋ฆฌ๋˜๋Š” ๊ด€๋ฆฌ ํ”„๋กœ์ ํŠธ)๋ฅผ Mesh ๋ฆฌ์†Œ์Šค๋ฅผ ๋งŒ๋“ค ๋ฉ”์‹œ ๊ด€๋ฆฌ ํ”„๋กœ์ ํŠธ๋กœ ์„ ํƒํ•ฉ๋‹ˆ๋‹ค. ๋ฉ”์‹œ ๊ด€๋ฆฌ ํ”„๋กœ์ ํŠธ ์†Œ์œ ์ž๋Š” ๋‹ค๋ฅธ ํ”„๋กœ์ ํŠธ์˜ Route ๋ฆฌ์†Œ์Šค๊ฐ€ Mesh ๋ฆฌ์†Œ์Šค๋ฅผ ์ฐธ์กฐํ•˜๋„๋ก ์Šน์ธํ•˜์—ฌ ๋‹ค๋ฅธ ํ”„๋กœ์ ํŠธ์˜ ๋ผ์šฐํŒ… ๊ตฌ์„ฑ์ด ๋ฉ”์‹œ์˜ ์ผ๋ถ€๊ฐ€ ๋˜๋„๋ก ํ•ฉ๋‹ˆ๋‹ค. Envoy ๋˜๋Š” gRPC์— ๊ด€๊ณ„์—†์ด ๋ฉ”์‹œ ๋ฐ์ดํ„ฐ ์˜์—ญ์€ ๊ด€๋ฆฌ ํ”„๋กœ์ ํŠธ์—์„œ ๊ตฌ์„ฑ์„ ์š”์ฒญํ•˜๊ณ  Mesh์— ์—ฐ๊ฒฐ๋œ ๋ชจ๋“  ๊ฒฝ๋กœ์˜ ํ†ตํ•ฉ์„ ์ˆ˜์‹ ํ•ฉ๋‹ˆ๋‹ค. Gateway์˜ ๊ฒฝ์šฐ ๊ฒฝ๋กœ๋Š” ๋™์ผํ•œ ๋ฒ”์œ„๋ฅผ ์‚ฌ์šฉํ•˜๋Š” ๋ชจ๋“  Gateways์—์„œ ๋ณ‘ํ•ฉ๋ฉ๋‹ˆ๋‹ค.

Mesh ๊ด€๋ฆฌ ํ”„๋กœ์ ํŠธ๋Š” ์„ ํƒํ•œ ๋ชจ๋“  ํ”„๋กœ์ ํŠธ์ผ ์ˆ˜ ์žˆ์œผ๋ฉฐ ๊ธฐ๋ณธ ํ”„๋กœ์ ํŠธ์—์„œ ๊ณต์œ  VPC ๋˜๋Š” VPC ๋„คํŠธ์›Œํฌ ํ”ผ์–ด๋ง์„ ํ†ตํ•ด VPC ๋„คํŠธ์›Œํฌ ์—ฐ๊ฒฐ์„ ์œ ์ง€ํ•˜๋Š” ํ•œ ๊ตฌ์„ฑ์ด ์ž‘๋™ํ•ฉ๋‹ˆ๋‹ค.

IAM ๊ถŒํ•œ ๋ฐ ์—ญํ• 

๋‹ค์Œ์€ Mesh ๋ฐ Route ๋ฆฌ์†Œ์Šค๋ฅผ ์•ˆ์ „ํ•˜๊ฒŒ ๊ฐ€์ ธ์˜ค๊ณ , ๋งŒ๋“ค๊ณ , ์—…๋ฐ์ดํŠธํ•˜๊ณ , ์‚ญ์ œํ•˜๊ณ , ๋‚˜์—ดํ•˜๊ณ , ์‚ฌ์šฉํ•˜๋Š” ๋ฐ ํ•„์š”ํ•œ IAM ๊ถŒํ•œ์ž…๋‹ˆ๋‹ค.

  • ๋ฉ”์‹œ ๊ด€๋ฆฌ์ž์—๊ฒŒ networkservices.mesh.* ๊ถŒํ•œ์ด ์žˆ์–ด์•ผ ํ•ฉ๋‹ˆ๋‹ค.
  • ๊ฒŒ์ดํŠธ์›จ์ด ๊ด€๋ฆฌ์ž์—๊ฒŒ networkservices.gateways.* ๊ถŒํ•œ์ด ์žˆ์–ด์•ผ ํ•ฉ๋‹ˆ๋‹ค.
  • ์„œ๋น„์Šค ์†Œ์œ ์ž๋Š” networkservices.grpcRoutes.*, networkservices.httpRoutes.* ๋˜๋Š” networkservices.tcpRoutes.* ๊ถŒํ•œ์ด ์žˆ์–ด์•ผ ํ•ฉ๋‹ˆ๋‹ค.

๋ฉ”์‹œ ๊ด€๋ฆฌ์ž๋Š” ์„œ๋น„์Šค ์†Œ์œ ์ž๊ฐ€ Route ๋ฆฌ์†Œ์Šค๋ฅผ Mesh ๋ฆฌ์†Œ์Šค์— ์—ฐ๊ฒฐํ•  ์ˆ˜ ์žˆ๋„๋ก ์„œ๋น„์Šค ์†Œ์œ ์ž์—๊ฒŒ networkservices.mesh.use ๊ถŒํ•œ์„ ๋ถ€์—ฌํ•ด์•ผ ํ•ฉ๋‹ˆ๋‹ค. ๋™์ผํ•œ ๋ชจ๋ธ์ด Gateway ๋ฆฌ์†Œ์Šค์— ์ ์šฉ๋ฉ๋‹ˆ๋‹ค.

Mesh ๋ฆฌ์†Œ์Šค์˜ ๋ชจ๋“  IAM ๊ถŒํ•œ์„ ๋ณด๋ ค๋ฉด IAM ๊ถŒํ•œ ์ฐธ์กฐ ํŽ˜์ด์ง€๋กœ ์ด๋™ํ•˜๊ณ  meshes๋ฅผ ๊ฒ€์ƒ‰ํ•ฉ๋‹ˆ๋‹ค.

์‚ฌ์ „ ์ •์˜๋œ ์ถ”๊ฐ€ ์—ญํ• ์€ ํ•„์š”ํ•˜์ง€ ์•Š์Šต๋‹ˆ๋‹ค. ๊ธฐ๋ณธ์ ์œผ๋กœ ๊ธฐ์กด ์‚ฌ์ „ ์ •์˜๋œ ์—ญํ•  Compute ๋„คํŠธ์›Œํฌ ๊ด€๋ฆฌ์ž(roles/compute.networkAdmin)์—๊ฒŒ๋Š” networkservices.* ๊ถŒํ•œ์ด ์žˆ์Šต๋‹ˆ๋‹ค. ์ด์ „์— ์„ค๋ช…๋œ ๊ถŒํ•œ์„ ์ปค์Šคํ…€ ์—ญํ• ์— ์ถ”๊ฐ€ํ•ด์•ผ ํ•  ์ˆ˜๋„ ์žˆ์Šต๋‹ˆ๋‹ค.

๊ณ ๋ ค์‚ฌํ•ญ ๋ฐ ์ œํ•œ์‚ฌํ•ญ

  • Google Cloud ์ฝ˜์†”์€ ์„œ๋น„์Šค ๋ผ์šฐํŒ… API๋ฅผ ์ง€์›ํ•˜์ง€ ์•Š์Šต๋‹ˆ๋‹ค.
  • xDS API ๋ฒ„์ „ 3 ์ด์ƒ์„ ์‚ฌ์šฉํ•ฉ๋‹ˆ๋‹ค.
    • ์ตœ์†Œ Envoy ๋ฒ„์ „ 1.20.0(์„œ๋น„์Šค ๋ผ์šฐํŒ… API๋Š” xDS ๋ฒ„์ „ 3์—์„œ๋งŒ ์ง€์›๋จ)
    • ์ตœ์†Œ gRPC ๋ถ€ํŠธ์ŠคํŠธ๋žฉ ์ƒ์„ฑ๊ธฐ ๋ฒ„์ „ v0.14.0.
  • TLSRoute ๋ฆฌ์†Œ์Šค๋Š” ์‚ฌ์ด๋“œ์นด ํ”„๋ก์‹œ ๋˜๋Š” ๊ฒŒ์ดํŠธ์›จ์ด๋กœ ๋ฐฐํฌ๋˜๋Š” Envoy ํ”„๋ก์‹œ์—๋งŒ ์ง€์›๋ฉ๋‹ˆ๋‹ค.
  • ์ž๋™ Envoy ๋ฐฐํฌ๋ฅผ ์‚ฌ์šฉํ•˜๋Š” Compute Engine VM๊ณผ ์ž๋™ Envoy ์‚ฝ์ž…์„ ์‚ฌ์šฉํ•˜๋Š” GKE ํฌ๋“œ๋งŒ ์ง€์›๋ฉ๋‹ˆ๋‹ค. ์„œ๋น„์Šค ๋ผ์šฐํŒ… API์—์„œ ์ˆ˜๋™ ๋ฐฐํฌ๋ฅผ ์‚ฌ์šฉํ•  ์ˆ˜ ์—†์Šต๋‹ˆ๋‹ค.
  • ์„œ๋น„์Šค ๋ผ์šฐํŒ… API๋Š” ์ด์ „ API์™€ ํ•˜์œ„ ํ˜ธํ™˜๋˜์ง€ ์•Š์Šต๋‹ˆ๋‹ค.
  • TCPRoute ๋ฆฌ์†Œ์Šค๊ฐ€ Mesh ๋ฆฌ์†Œ์Šค์— ์—ฐ๊ฒฐ๋˜๋ฉด TCP ํŠธ๋ž˜ํ”ฝ์„ ์ผ์น˜์‹œํ‚ค๋Š” ๋ฐ ์‚ฌ์šฉ๋˜๋Š” ํฌํŠธ๋Š” ์ด TCPRoute์—์„œ ์„ค๋ช…ํ•˜๋Š” ํŠธ๋ž˜ํ”ฝ์„ ์ฒ˜๋ฆฌํ•˜๋Š” ๊ฒƒ ์™ธ์—๋Š” ์‚ฌ์šฉํ•  ์ˆ˜ ์—†์Šต๋‹ˆ๋‹ค.
    • ์˜ˆ๋ฅผ ๋“ค์–ด ๋ฐฐํฌ์— ํฌํŠธ "8000"๊ณผ ์ผ์น˜ํ•˜๋Š” TCPRoute ๋ฆฌ์†Œ์Šค ๋ฐ HttpRoute ๋ฆฌ์†Œ์Šค๊ฐ€ ํฌํ•จ๋  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค. ๋‘˜ ๋‹ค ๋™์ผํ•œ Mesh ๋ฆฌ์†Œ์Šค์— ์—ฐ๊ฒฐ๋˜์–ด ์žˆ์œผ๋ฉด ๊ธฐ๋ณธ IP ์ฃผ์†Œ๊ฐ€ ๋‹ค๋ฅด๋”๋ผ๋„ HTTPRoute ๋ฆฌ์†Œ์Šค๋กœ ๋ผ์šฐํŒ…๋˜๋Š” ํŠธ๋ž˜ํ”ฝ์ด ํฌํŠธ 8000์„ ์‚ฌ์šฉํ•  ์ˆ˜ ์—†์Šต๋‹ˆ๋‹ค. ์ด๋ ‡๋‚˜ ์ œํ•œ์‚ฌํ•ญ์€ ํฌํŠธ ์ผ์น˜ ๋ผ์šฐํŒ…์— ๋จผ์ € ์šฐ์„ ๊ถŒ์„ ๋ถ€์—ฌํ•˜๋Š” Envoy ํ”„๋ก์‹œ ๊ตฌํ˜„์œผ๋กœ๋ถ€ํ„ฐ ๋น„๋กฏ๋ฉ๋‹ˆ๋‹ค.
  • Gateway ๋ฆฌ์†Œ์Šค๋Š” ๊ด€๋ฆฌํ˜• ๋ถ€ํ•˜ ๋ถ„์‚ฐ๊ธฐ๋ฅผ ํ”„๋กœ๋น„์ €๋‹ํ•˜์ง€ ์•Š์œผ๋ฉฐ Envoy ์„œ๋น„์Šค๋ฅผ ๋™์ ์œผ๋กœ ๋งŒ๋“ค์ง€ ์•Š์Šต๋‹ˆ๋‹ค.
  • ์ธ๊ทธ๋ ˆ์Šค ๊ฒŒ์ดํŠธ์›จ์ด๋กœ ์ž‘๋™ํ•˜๋Š” ์ž๋™์œผ๋กœ ๋ฐฐํฌ๋œ Envoy์—๋Š” serving_ports ์ธ์ˆ˜๊ฐ€ --service-proxy ํ”Œ๋ž˜๊ทธ๋กœ ์ง€์ •๋˜์ง€ ์•Š์•„์•ผ ํ•ฉ๋‹ˆ๋‹ค.
  • ์ž๋™์œผ๋กœ ๋ฐฐํฌ๋œ Envoy๋Š” VM ํ”„๋กœ์ ํŠธ์™€ ๋‹ค๋ฅธ ํ”„๋กœ์ ํŠธ ๋ฒˆํ˜ธ ์ œ๊ณต์„ ์ง€์›ํ•˜์ง€ ์•Š์Šต๋‹ˆ๋‹ค.

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

  • Mesh ๋˜๋Š” Gateway ๋ฆฌ์†Œ์Šค์™€ ์—ฐ๊ฒฐ๋œ ๊ฒฝ๋กœ ๋ฆฌ์†Œ์Šค ๋‚˜์—ด์— ๊ด€ํ•œ ์ž์„ธํ•œ ๋‚ด์šฉ์€ Route ๋ฆฌ์†Œ์Šค ๋‚˜์—ด์„ ์ฐธ์กฐํ•˜์„ธ์š”. ์ด ๊ธฐ๋Šฅ์€ ๋ฏธ๋ฆฌ๋ณด๊ธฐ ๋ฒ„์ „์œผ๋กœ ์ œ๊ณต๋ฉ๋‹ˆ๋‹ค.
  • ์„œ๋น„์Šค ๋ผ์šฐํŒ… API์— ๋Œ€ํ•œ ์ž์„ธํ•œ ๋‚ด์šฉ์€ ๋„คํŠธ์›Œํฌ ์„œ๋น„์Šค API ๋ฌธ์„œ๋ฅผ ์ฐธ์กฐํ•˜๊ธฐ