Cloud Service Mesh ๊ฐœ์š”

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

Cloud Service Mesh๋Š” ์• ํ”Œ๋ฆฌ์ผ€์ด์…˜ ๋„คํŠธ์›Œํ‚น์„ ์œ„ํ•œ ๊ด€๋ฆฌํ˜• ์ปจํŠธ๋กค ํ”Œ๋ ˆ์ธ์ž…๋‹ˆ๋‹ค. Cloud Service Mesh๋ฅผ ์‚ฌ์šฉํ•˜๋ฉด ํŠธ๋ž˜ํ”ฝ ๊ด€๋ฆฌ ๋ฐ ๊ด€์ธก ๊ฐ€๋Šฅ์„ฑ๊ณผ ๊ฐ™์€ ๊ณ ๊ธ‰ ์• ํ”Œ๋ฆฌ์ผ€์ด์…˜ ๋„คํŠธ์›Œํ‚น ๊ธฐ๋Šฅ์„ ๊ฐ–์ถ˜ ๊ฐ€์šฉ์„ฑ์ด ๋†’์€ ์ „์—ญ ์„œ๋น„์Šค๋ฅผ ์ œ๊ณตํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค.

๋ฐฐํฌ ์‹œ ์„œ๋น„์Šค ๋ฐ ๋งˆ์ดํฌ๋กœ์„œ๋น„์Šค ์ˆ˜๊ฐ€ ์ฆ๊ฐ€ํ•˜๋ฉด ์ผ๋ฐ˜์ ์œผ๋กœ ๋‹ค์Œ๊ณผ ๊ฐ™์€ ์ผ๋ฐ˜์ ์ธ ์• ํ”Œ๋ฆฌ์ผ€์ด์…˜ ๋„คํŠธ์›Œํ‚น ๋ฌธ์ œ๊ฐ€ ๋ฐœ์ƒํ•˜๊ธฐ ์‹œ์ž‘ํ•ฉ๋‹ˆ๋‹ค.

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

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

Cloud Service Mesh

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

์ผ๋ฐ˜์ ์ธ ์„œ๋น„์Šค ๋ฉ”์‹œ
์ผ๋ฐ˜์ ์ธ ์„œ๋น„์Šค ๋ฉ”์‹œ(ํ™•๋Œ€ํ•˜๋ ค๋ฉด ํด๋ฆญ)

์ผ๋ฐ˜์ ์ธ ์„œ๋น„์Šค ๋ฉ”์‹œ๋Š” ๋‹ค์Œ๊ณผ ๊ฐ™์Šต๋‹ˆ๋‹ค.

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

์ด ๋ฌธ์„œ ๋ฐ ๊ธฐํƒ€ Cloud Service Mesh ๋ฌธ์„œ์˜ ๋‹ค์ด์–ด๊ทธ๋žจ์—์„œ 6๋ฉด์˜ ๋ถ„ํ™์ƒ‰ ์•„์ด์ฝ˜์€ ํ”„๋ก์‹œ๋ฅผ ๋‚˜ํƒ€๋ƒ…๋‹ˆ๋‹ค. ์ œ์–ด ์˜์—ญ์€ ๊ฐ ํ”„๋ก์‹œ์— ์—ฐ๊ฒฐ๋˜์–ด ํ”„๋ก์‹œ๊ฐ€ ์š”์ฒญ์„ ์ฒ˜๋ฆฌํ•˜๋Š” ๋ฐ ํ•„์š”ํ•œ ์ •๋ณด๋ฅผ ์ œ๊ณตํ•ฉ๋‹ˆ๋‹ค. ์ƒ์ž ์‚ฌ์ด์˜ ํ™”์‚ดํ‘œ๋Š” ํŠธ๋ž˜ํ”ฝ ํ๋ฆ„์„ ๋‚˜ํƒ€๋ƒ…๋‹ˆ๋‹ค. ์˜ˆ๋ฅผ ๋“ค์–ด Service A์˜ ์• ํ”Œ๋ฆฌ์ผ€์ด์…˜ ์ฝ”๋“œ๋Š” ์š”์ฒญ์„ ์ „์†กํ•ฉ๋‹ˆ๋‹ค. ํ”„๋ก์‹œ๋Š” ์š”์ฒญ์„ ์ฒ˜๋ฆฌํ•˜์—ฌ Service B์— ์ „๋‹ฌํ•ฉ๋‹ˆ๋‹ค.

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

Cloud Service Mesh์˜ ์ฐจ์ด์ 

Cloud Service Mesh๋Š” ํ•ด๋‹น ๋ชจ๋ธ๊ณผ ๋น„์Šทํ•˜๊ฒŒ ์ž‘๋™ํ•˜์ง€๋งŒ ์ค‘์š”ํ•œ ์ฐจ์ด์ ์ด ์žˆ์Šต๋‹ˆ๋‹ค. ์ด ์ฐจ์ด์ ์€ Cloud Service Mesh๊ฐ€Google Cloud๊ด€๋ฆฌํ˜• ์„œ๋น„์Šค๋ผ๋Š” ์‚ฌ์‹ค์—์„œ ๋น„๋กฏ๋ฉ๋‹ˆ๋‹ค. ์„ค์น˜ํ•˜์ง€ ์•Š๊ณ  ํด๋Ÿฌ์Šคํ„ฐ์—์„œ ์‹คํ–‰๋˜์ง€ ์•Š์œผ๋ฉฐ ์ด๋ฅผ ์œ ์ง€๊ด€๋ฆฌํ•  ํ•„์š”๊ฐ€ ์—†์Šต๋‹ˆ๋‹ค.

๋‹ค์Œ ๋‹ค์ด์–ด๊ทธ๋žจ์—์„œ Cloud Service Mesh๋Š” ์ปจํŠธ๋กค ํ”Œ๋ ˆ์ธ์ž…๋‹ˆ๋‹ค. ์ด Kubernetes ํด๋Ÿฌ์Šคํ„ฐ์—๋Š” Cloud Service Mesh์— ์—ฐ๊ฒฐ๋œ ์‚ฌ์ด๋“œ์นด ํ”„๋ก์‹œ๋ฅผ ๊ฐ๊ฐ ์‚ฌ์šฉํ•˜๋Š” ๋„ค ๊ฐœ์˜ ์„œ๋น„์Šค๊ฐ€ ์žˆ์Šต๋‹ˆ๋‹ค. Cloud Service Mesh๋Š” ํ”„๋ก์‹œ๊ฐ€ ์š”์ฒญ์„ ๋ผ์šฐํŒ…ํ•˜๋Š” ๋ฐ ํ•„์š”ํ•œ ์ •๋ณด๋ฅผ ์ œ๊ณตํ•ฉ๋‹ˆ๋‹ค. ์˜ˆ๋ฅผ ๋“ค์–ด Service A์— ์†ํ•˜๋Š” pod์˜ ์• ํ”Œ๋ฆฌ์ผ€์ด์…˜ ์ฝ”๋“œ๋Š” ์š”์ฒญ์„ ์ „์†กํ•ฉ๋‹ˆ๋‹ค. ์ด pod์™€ ํ•จ๊ป˜ ์‹คํ–‰๋˜๋Š” ์‚ฌ์ด๋“œ์นด ํ”„๋ก์‹œ๋Š” ์š”์ฒญ์„ ์ฒ˜๋ฆฌํ•˜๊ณ  Service B์— ์†ํ•˜๋Š” pod๋กœ ๋ผ์šฐํŒ…ํ•ฉ๋‹ˆ๋‹ค.

Cloud Service Mesh๋ฅผ ์‚ฌ์šฉํ•˜๋Š” ์„œ๋น„์Šค ๋ฉ”์‹œ์˜ ์˜ˆ์‹œ
Cloud Service Mesh๋ฅผ ์‚ฌ์šฉํ•˜๋Š” ์„œ๋น„์Šค ๋ฉ”์‹œ์˜ ์˜ˆ์‹œ(ํ™•๋Œ€ํ•˜๋ ค๋ฉด ํด๋ฆญ)

์„œ๋น„์Šค ๋ฉ”์‹œ๋ฅผ ๋ฒ—์–ด๋‚จ

Cloud Service Mesh๋Š” ์ผ๋ฐ˜์ ์ธ ์„œ๋น„์Šค ๋ฉ”์‹œ๋ณด๋‹ค ๋” ๋งŽ์€ ์œ ํ˜•์˜ ๋ฐฐํฌ๋ฅผ ์ง€์›ํ•ฉ๋‹ˆ๋‹ค.

๋ฉ€ํ‹ฐ ํด๋Ÿฌ์Šคํ„ฐ Kubernetes

Cloud Service Mesh๋ฅผ ์‚ฌ์šฉํ•˜๋ฉด Kubernetes ํด๋Ÿฌ์Šคํ„ฐ ์ „์ฒด์—์„œ ์ž‘๋™ํ•˜๋Š” ์• ํ”Œ๋ฆฌ์ผ€์ด์…˜ ๋„คํŠธ์›Œํ‚น์„ ์ด์šฉํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค. ๋‹ค์Œ ๋‹ค์ด์–ด๊ทธ๋žจ์—์„œ Cloud Service Mesh๋Š” us-central1 ๋ฐ europe-west1์—์„œ Kubernetes ํด๋Ÿฌ์Šคํ„ฐ์˜ ์ปจํŠธ๋กค ํ”Œ๋ ˆ์ธ์„ ์ œ๊ณตํ•ฉ๋‹ˆ๋‹ค. us-central1์˜ ์„ธ ๊ฐ€์ง€ ์„œ๋น„์Šค, europe-west1์˜ ๋‘ ๊ฐ€์ง€ ์„œ๋น„์Šค, ๋‘ ํด๋Ÿฌ์Šคํ„ฐ์˜ ์„œ๋น„์Šค ๊ฐ„์— ์š”์ฒญ์ด ๋ผ์šฐํŒ…๋  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค.

Cloud Service Mesh๋ฅผ ์‚ฌ์šฉํ•˜๋Š” ๋ฉ€ํ‹ฐ ํด๋Ÿฌ์Šคํ„ฐ Kubernetes์˜ ์˜ˆ์‹œ
Cloud Service Mesh๋ฅผ ์‚ฌ์šฉํ•˜๋Š” ๋ฉ€ํ‹ฐ ํด๋Ÿฌ์Šคํ„ฐ Kubernetes์˜ ์˜ˆ์‹œ(ํ™•๋Œ€ํ•˜๋ ค๋ฉด ํด๋ฆญ)

์„œ๋น„์Šค ๋ฉ”์‹œ๋Š” ์—ฌ๋ŸฌGoogle Cloud ๋ฆฌ์ „์˜ ์—ฌ๋Ÿฌ Kubernetes ํด๋Ÿฌ์Šคํ„ฐ์—์„œ ํ™•์žฅ๋  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค. ํ•œ ํด๋Ÿฌ์Šคํ„ฐ์˜ ์„œ๋น„์Šค๋Š” ๋‹ค๋ฅธ ํด๋Ÿฌ์Šคํ„ฐ์˜ ์„œ๋น„์Šค์™€ ํ†ต์‹ ํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค. ๋˜ํ•œ ์—ฌ๋Ÿฌ ํด๋Ÿฌ์Šคํ„ฐ์˜ pod๋กœ ๊ตฌ์„ฑ๋œ ์„œ๋น„์Šค๋„ ์‚ฌ์šฉํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค.

Cloud Service Mesh์˜ ๊ทผ์ ‘ ๊ธฐ๋ฐ˜ ์ „์—ญ ๋ถ€ํ•˜ ๋ถ„์‚ฐ์„ ํ†ตํ•ด Service B๋ฅผ ๋Œ€์ƒ์œผ๋กœ ํ•˜๋Š” ์š”์ฒญ์€ ์š”์ฒญ์„ ์ฒ˜๋ฆฌํ•  ์ˆ˜ ์žˆ๋Š” ๊ฐ€์žฅ ๊ฐ€๊นŒ์šด ํฌ๋“œ๋กœ ์ด๋™ํ•ฉ๋‹ˆ๋‹ค. ๋˜ํ•œ ์žฅ์•  ์กฐ์น˜๋„ ์›ํ™œํ•˜๊ฒŒ ์ด๋ฃจ์–ด์ง‘๋‹ˆ๋‹ค. pod๊ฐ€ ๋‹ค์šด๋˜๋ฉด ์š”์ฒญ์€ ์ด pod๊ฐ€ ๋‹ค๋ฅธ Kubernetes ํด๋Ÿฌ์Šคํ„ฐ์— ์žˆ๋”๋ผ๋„ ์š”์ฒญ์—์„œ ์ฒ˜๋ฆฌํ•  ์ˆ˜ ์žˆ๋Š” ๋‹ค๋ฅธ pod๋กœ ์ž๋™์œผ๋กœ ์žฅ์•  ์กฐ์น˜๋ฉ๋‹ˆ๋‹ค.

๊ฐ€์ƒ ๋จธ์‹ 

Kubernetes๊ฐ€ ์ ์  ์ธ๊ธฐ๊ฐ€ ๋งŽ์•„์ง€๊ณ  ์žˆ์ง€๋งŒ ๊ฐ€์ƒ ๋จธ์‹ (VM)์— ๋งŽ์€ ์›Œํฌ๋กœ๋“œ๊ฐ€ ๋ฐฐํฌ๋ฉ๋‹ˆ๋‹ค. Cloud Service Mesh๋Š” ์ด๋Ÿฌํ•œ ์›Œํฌ๋กœ๋“œ์˜ ์• ํ”Œ๋ฆฌ์ผ€์ด์…˜ ๋„คํŠธ์›Œํ‚น๋„ ํ•ด๊ฒฐํ•ฉ๋‹ˆ๋‹ค. VM ๊ธฐ๋ฐ˜ ์›Œํฌ๋กœ๋“œ๋Š” Kubernetes ๊ธฐ๋ฐ˜ ์›Œํฌ๋กœ๋“œ์™€ ์ƒํ˜ธ ์šด์šฉ๋ฉ๋‹ˆ๋‹ค.

๋‹ค์Œ ๋‹ค์ด์–ด๊ทธ๋žจ์—์„œ๋Š” ํŠธ๋ž˜ํ”ฝ์ด ์™ธ๋ถ€ ์• ํ”Œ๋ฆฌ์ผ€์ด์…˜ ๋ถ€ํ•˜ ๋ถ„์‚ฐ๊ธฐ๋ฅผ ํ†ตํ•ด ๋ฐฐํฌ๋กœ ๋“ค์–ด๊ฐ‘๋‹ˆ๋‹ค. asia-southeast1์˜ Kubernetes ํด๋Ÿฌ์Šคํ„ฐ์— ์žˆ๋Š” Service A ๋ฐ europe-west1์˜ VM์—์„œ Service D๋กœ ๋ผ์šฐํŒ…๋ฉ๋‹ˆ๋‹ค.

Cloud Service Mesh๋ฅผ ์‚ฌ์šฉํ•˜๋Š” VM ๋ฐ Kubernetes์˜ ์˜ˆ์‹œ
Cloud Service Mesh๋ฅผ ์‚ฌ์šฉํ•˜๋Š” VM ๋ฐ Kubernetes์˜ ์˜ˆ์‹œ(ํ™•๋Œ€ํ•˜๋ ค๋ฉด ํด๋ฆญ)

Google์€ Cloud Service Mesh๋กœ VM ๊ธฐ๋ฐ˜ ์›Œํฌ๋กœ๋“œ๋ฅผ ์„ค์ •ํ•  ์ˆ˜ ์žˆ๋Š” ์›ํ™œํ•œ ๋ฉ”์ปค๋‹ˆ์ฆ˜์„ ์ œ๊ณตํ•ฉ๋‹ˆ๋‹ค. Compute Engine VM ์ธ์Šคํ„ด์Šค ํ…œํ”Œ๋ฆฟ์— ํ”Œ๋ž˜๊ทธ๋งŒ ์ถ”๊ฐ€ํ•˜๋ฉด Google์—์„œ ์ธํ”„๋ผ ์„ค์ •์„ ์ฒ˜๋ฆฌํ•ฉ๋‹ˆ๋‹ค. ์ด ์„ค์ •์—๋Š” ์• ํ”Œ๋ฆฌ์ผ€์ด์…˜ ๋„คํŠธ์›Œํ‚น ๊ธฐ๋Šฅ์„ ์ œ๊ณตํ•˜๋Š” ํ”„๋ก์‹œ ์„ค์น˜ ๋ฐ ๊ตฌ์„ฑ์ด ํฌํ•จ๋ฉ๋‹ˆ๋‹ค.

ํ”„๋ก์‹œ ์—†๋Š” gRPC

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

๋‹ค์Œ ๋‹ค์ด์–ด๊ทธ๋žจ์—์„œ gRPC ์• ํ”Œ๋ฆฌ์ผ€์ด์…˜์€ ํ•œ ๋ฆฌ์ „์˜ Kubernetes ํด๋Ÿฌ์Šคํ„ฐ์— ๊ธฐ๋ฐ˜์„ ๋‘” ์„œ๋น„์Šค์™€ ๋‹ค๋ฅธ ๋ฆฌ์ „์˜ VM์—์„œ ์‹คํ–‰๋˜๋Š” ์„œ๋น„์Šค๋กœ ํŠธ๋ž˜ํ”ฝ์„ ๋ผ์šฐํŒ…ํ•ฉ๋‹ˆ๋‹ค. ์ด ์ค‘ ๋‘ ๊ฐ€์ง€ ์„œ๋น„์Šค์—๋Š” ์‚ฌ์ด๋“œ์นด ํ”„๋ก์‹œ๊ฐ€ ํฌํ•จ๋˜๊ณ  ๋‹ค๋ฅธ ์„œ๋น„์Šค๋Š” ํ”„๋ก์‹œ๋ฆฌ์Šค์ž…๋‹ˆ๋‹ค.

Cloud Service Mesh๋ฅผ ์‚ฌ์šฉํ•˜๋Š” ํ”„๋ก์‹œ๋ฆฌ์Šค gRPC ์• ํ”Œ๋ฆฌ์ผ€์ด์…˜์˜ ์˜ˆ์‹œ
Cloud Service Mesh๋ฅผ ์‚ฌ์šฉํ•˜๋Š” ํ”„๋ก์‹œ๋ฆฌ์Šค gRPC ์• ํ”Œ๋ฆฌ์ผ€์ด์…˜์˜ ์˜ˆ์‹œ(ํ™•๋Œ€ํ•˜๋ ค๋ฉด ํด๋ฆญ)

Cloud Service Mesh๋Š” ํ”„๋ก์‹œ๋ฆฌ์Šค gRPC ์„œ๋น„์Šค๋ฅผ ์ง€์›ํ•ฉ๋‹ˆ๋‹ค. ์ด ์„œ๋น„์Šค๋Š” xDS API๋ฅผ ์ง€์›ํ•˜๋Š” ์ตœ์‹  ๋ฒ„์ „์˜ ์˜คํ”ˆ์†Œ์Šค gRPC ๋ผ์ด๋ธŒ๋Ÿฌ๋ฆฌ๋ฅผ ์‚ฌ์šฉํ•ฉ๋‹ˆ๋‹ค. gRPC ์• ํ”Œ๋ฆฌ์ผ€์ด์…˜์€ Envoy์—์„œ ์‚ฌ์šฉํ•˜๋Š” ๊ฒƒ๊ณผ ๋™์ผํ•œ xDS API๋ฅผ ์‚ฌ์šฉํ•˜์—ฌ Cloud Service Mesh์— ์—ฐ๊ฒฐํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค.

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

์ธ๊ทธ๋ ˆ์Šค ๋ฐ ๊ฒŒ์ดํŠธ์›จ์ด

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

๋‹ค์Œ ๋‹ค์ด์–ด๊ทธ๋žจ์—์„œ ์™ธ๋ถ€ ์• ํ”Œ๋ฆฌ์ผ€์ด์…˜ ๋ถ€ํ•˜ ๋ถ„์‚ฐ๊ธฐ๋Š” Kubernetes ํด๋Ÿฌ์Šคํ„ฐ์˜ ์„œ๋น„์Šค๋กœ ๋ผ์šฐํŒ…๋˜๋Š” ํŠธ๋ž˜ํ”ฝ์„ ๊ฐ€์ง€๊ณ  ์™ธ๋ถ€ ํด๋ผ์ด์–ธํŠธ์— ๋Œ€ํ•ด ์ธ๊ทธ๋ ˆ์Šค๋ฅผ ์‚ฌ์šฉ ์„ค์ •ํ•ฉ๋‹ˆ๋‹ค. ๋‚ด๋ถ€ ์• ํ”Œ๋ฆฌ์ผ€์ด์…˜ ๋ถ€ํ•˜ ๋ถ„์‚ฐ๊ธฐ๋Š” ๋‚ด๋ถ€ ํŠธ๋ž˜ํ”ฝ์„ VM์—์„œ ์‹คํ–‰๋˜๋Š” ์„œ๋น„์Šค๋กœ ๋ผ์šฐํŒ…ํ•ฉ๋‹ˆ๋‹ค.

์ธ๊ทธ๋ ˆ์Šค๋ฅผ ์œ„ํ•ด Cloud Load Balancing์„ ์‚ฌ์šฉํ•˜๋Š” Cloud Service Mesh
์ธ๊ทธ๋ ˆ์Šค๋ฅผ ์œ„ํ•ด Cloud Load Balancing์„ ์‚ฌ์šฉํ•˜๋Š” Cloud Service Mesh(ํ™•๋Œ€ํ•˜๋ ค๋ฉด ํด๋ฆญ)

Cloud Service Mesh๋Š” Cloud Load Balancing๊ณผ ํ˜‘๋ ฅํ•˜์—ฌ ๊ด€๋ฆฌํ˜• ์ธ๊ทธ๋ ˆ์Šค ํ™˜๊ฒฝ์„ ์ œ๊ณตํ•ฉ๋‹ˆ๋‹ค. ์™ธ๋ถ€ ๋˜๋Š” ๋‚ด๋ถ€ ๋ถ€ํ•˜ ๋ถ„์‚ฐ๊ธฐ๋ฅผ ์„ค์ •ํ•œ ํ›„ ๋ถ€ํ•˜ ๋ถ„์‚ฐ๊ธฐ๊ฐ€ ํŠธ๋ž˜ํ”ฝ์„ ๋งˆ์ดํฌ๋กœ์„œ๋น„์Šค๋กœ ์ „์†กํ•˜๋„๋ก ๊ตฌ์„ฑํ•ฉ๋‹ˆ๋‹ค. ์œ„์˜ ๋‹ค์ด์–ด๊ทธ๋žจ์—์„œ ๊ณต๊ฐœ ์ธํ„ฐ๋„ท ํด๋ผ์ด์–ธํŠธ๋Š” ์™ธ๋ถ€ ์• ํ”Œ๋ฆฌ์ผ€์ด์…˜ ๋ถ€ํ•˜ ๋ถ„์‚ฐ๊ธฐ๋ฅผ ํ†ตํ•ด ์„œ๋น„์Šค์— ๋„๋‹ฌํ•ฉ๋‹ˆ๋‹ค. Virtual Private Cloud(VPC) ๋„คํŠธ์›Œํฌ์— ์žˆ๋Š” ๋งˆ์ดํฌ๋กœ์„œ๋น„์Šค์™€ ๊ฐ™์€ ํด๋ผ์ด์–ธํŠธ๋Š” ๋‚ด๋ถ€ ์• ํ”Œ๋ฆฌ์ผ€์ด์…˜ ๋ถ€ํ•˜ ๋ถ„์‚ฐ๊ธฐ๋ฅผ ์‚ฌ์šฉํ•˜์—ฌ ์„œ๋น„์Šค์— ์—ฐ๊ฒฐํ•ฉ๋‹ˆ๋‹ค.

์ผ๋ถ€ ์‚ฌ์šฉ ์‚ฌ๋ก€์—์„œ๋Š” Cloud Service Mesh๋ฅผ ์„ค์ •ํ•˜์—ฌ ๊ฒŒ์ดํŠธ์›จ์ด๋ฅผ ๊ตฌ์„ฑํ•ด์•ผ ํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค. ๊ฒŒ์ดํŠธ์›จ์ด๋Š” ๊ธฐ๋ณธ์ ์œผ๋กœ ํ•˜๋‚˜ ์ด์ƒ์˜ VM์—์„œ ์‹คํ–‰๋˜๋Š” ์ „ํ˜•์ ์ธ Envoy์ธ ๋ฆฌ๋ฒ„์Šค ํ”„๋ก์‹œ๋กœ ์ˆ˜์‹  ์š”์ฒญ์„ ๋ฆฌ์Šจํ•˜๊ณ  ์ฒ˜๋ฆฌํ•œ ๋‹ค์Œ ๋Œ€์ƒ์œผ๋กœ ์ „์†กํ•ฉ๋‹ˆ๋‹ค. ๋Œ€์ƒ์€ ๋ชจ๋“  Google Cloud ๋ฆฌ์ „ ๋˜๋Š” Google Kubernetes Engine(GKE) ํด๋Ÿฌ์Šคํ„ฐ์— ์žˆ์„ ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค. ํ•˜์ด๋ธŒ๋ฆฌ๋“œ ์—ฐ๊ฒฐ์„ ์‚ฌ์šฉํ•˜์—ฌGoogle Cloud ์—์„œ ์—ฐ๊ฒฐํ•  ์ˆ˜ ์žˆ๋Š” Google Cloud ์™ธ๋ถ€์˜ ๋Œ€์ƒ์ผ ์ˆ˜๋„ ์žˆ์Šต๋‹ˆ๋‹ค. ๊ฒŒ์ดํŠธ์›จ์ด๋ฅผ ์‚ฌ์šฉํ•ด์•ผ ํ•˜๋Š” ๊ฒฝ์šฐ์— ๋Œ€ํ•œ ์ž์„ธํ•œ ๋‚ด์šฉ์€ ๋ฉ”์‹œ์˜ ์ธ๊ทธ๋ ˆ์Šค ํŠธ๋ž˜ํ”ฝ์„ ์ฐธ์กฐํ•˜์„ธ์š”.

๋‹ค์Œ ๋‹ค์ด์–ด๊ทธ๋žจ์—์„œ europe-west1 ๋ฆฌ์ „์˜ VM์€ ํ”„๋ก์‹œ๋ฅผ ์‹คํ–‰ํ•˜์ง€ ์•Š๋Š” ์„ธ๊ฐ€์ง€ ์„œ๋น„์Šค์˜ ๊ฒŒ์ดํŠธ์›จ์ด ์—ญํ• ์„ ํ•˜๋Š” ํ”„๋ก์‹œ๋ฅผ ์‹คํ–‰ํ•ฉ๋‹ˆ๋‹ค. ์™ธ๋ถ€ ์• ํ”Œ๋ฆฌ์ผ€์ด์…˜ ๋ถ€ํ•˜ ๋ถ„์‚ฐ๊ธฐ์™€ ๋‚ด๋ถ€ ์• ํ”Œ๋ฆฌ์ผ€์ด์…˜ ๋ถ€ํ•˜ ๋ถ„์‚ฐ๊ธฐ์˜ ํŠธ๋ž˜ํ”ฝ์€ ๋ชจ๋‘ ๊ฒŒ์ดํŠธ์›จ์ด๋กœ ๋ผ์šฐํŒ…๋œ ํ›„ 3๊ฐœ์˜ ์„œ๋น„์Šค๋กœ ๋ผ์šฐํŒ…๋ฉ๋‹ˆ๋‹ค.

๊ฒŒ์ดํŠธ์›จ์ด๋ฅผ ๊ตฌ์„ฑํ•˜๋Š” ๋ฐ ์‚ฌ์šฉ๋˜๋Š” Cloud Service Mesh
๊ฒŒ์ดํŠธ์›จ์ด๋ฅผ ๊ตฌ์„ฑํ•˜๋Š” ๋ฐ ์‚ฌ์šฉ๋˜๋Š” Cloud Service Mesh(ํ™•๋Œ€ํ•˜๋ ค๋ฉด ํด๋ฆญ)

์—ฌ๋Ÿฌ ํ™˜๊ฒฝ

์„œ๋น„์Šค๊ฐ€ Google Cloud, ์˜จํ”„๋ ˆ๋ฏธ์Šค, ๋‹ค๋ฅธ ํด๋ผ์šฐ๋“œ ๋˜๋Š” ์ด ๋ชจ๋“  ํ™˜๊ฒฝ์— ์žˆ๋”๋ผ๋„ ๊ธฐ๋ณธ ์• ํ”Œ๋ฆฌ์ผ€์ด์…˜ ๋„คํŠธ์›Œํ‚น ๋ฌธ์ œ๋Š” ๊ทธ๋Œ€๋กœ ๋‚จ์•„ ์žˆ์Šต๋‹ˆ๋‹ค. ์ด๋Ÿฌํ•œ ์„œ๋น„์Šค๋กœ ํŠธ๋ž˜ํ”ฝ์„ ์–ด๋–ป๊ฒŒ ๊ฐ€์ ธ์˜ค๋‚˜์š”? ๊ทธ๋ฆฌ๊ณ  ์ด๋Ÿฌํ•œ ์„œ๋น„์Šค๊ฐ€ ์„œ๋กœ ์–ด๋–ป๊ฒŒ ํ†ต์‹ ํ•˜๋‚˜์š”?

๋‹ค์Œ ๋‹ค์ด์–ด๊ทธ๋žจ์—์„œ Cloud Service Mesh๋Š” Google Cloud ์—์„œ ์‹คํ–‰ ์ค‘์ธ ์„œ๋น„์Šค๋กœ๋ถ€ํ„ฐ ๋‹ค๋ฅธ ํผ๋ธ”๋ฆญ ํด๋ผ์šฐ๋“œ์—์„œ ์‹คํ–‰ ์ค‘์ธ Service G์™€ ์˜จํ”„๋ ˆ๋ฏธ์Šค ๋ฐ์ดํ„ฐ ์„ผํ„ฐ์—์„œ ์‹คํ–‰ ์ค‘์ธ Service E ๋ฐ Service F๋กœ ํŠธ๋ž˜ํ”ฝ์„ ๋ผ์šฐํŒ…ํ•ฉ๋‹ˆ๋‹ค. Service A, Service B, Service C๋Š” Envoy๋ฅผ ์‚ฌ์ด๋“œ์นด ํ”„๋ก์‹œ๋กœ ์‚ฌ์šฉํ•˜๊ณ  Service D๋Š” ํ”„๋ก์‹œ๋ฆฌ์Šค gRPC ์„œ๋น„์Šค์ž…๋‹ˆ๋‹ค.

ํ™˜๊ฒฝ ๊ฐ„ ํ†ต์‹ ์— ์‚ฌ์šฉ๋˜๋Š” Cloud Service Mesh
ํ™˜๊ฒฝ ๊ฐ„ ํ†ต์‹ ์— ์‚ฌ์šฉ๋˜๋Š” Cloud Service Mesh(ํ™•๋Œ€ํ•˜๋ ค๋ฉด ํด๋ฆญ)

Cloud Service Mesh๋ฅผ ์‚ฌ์šฉํ•˜๋ฉดGoogle Cloud์™ธ๋ถ€์˜ ๋Œ€์ƒ์œผ๋กœ ์š”์ฒญ์„ ๋ณด๋‚ผ ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค. ์ด๋ ‡๊ฒŒ ํ•˜๋ฉด Cloud Interconnect ๋˜๋Š” Cloud VPN์„ ์‚ฌ์šฉํ•˜์—ฌ Google Cloud ๋‚ด๋ถ€์˜ ์„œ๋น„์Šค์—์„œ ๋‹ค๋ฅธ ํ™˜๊ฒฝ์˜ ์„œ๋น„์Šค ๋˜๋Š” ๊ฒŒ์ดํŠธ์›จ์ด๋กœ ํŠธ๋ž˜ํ”ฝ์„ ๋น„๊ณต๊ฐœ๋กœ ๋ผ์šฐํŒ…ํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค.

Cloud Service Mesh ์„ค์ •

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

์• ํ”Œ๋ฆฌ์ผ€์ด์…˜ ๋ฐฐํฌ

๋จผ์ € ์• ํ”Œ๋ฆฌ์ผ€์ด์…˜ ์ฝ”๋“œ๋ฅผ ์ปจํ…Œ์ด๋„ˆ ๋˜๋Š” VM์— ๋ฐฐํฌํ•ฉ๋‹ˆ๋‹ค. Google์€ ์• ํ”Œ๋ฆฌ์ผ€์ด์…˜ ๋„คํŠธ์›Œํ‚น ์ธํ”„๋ผ(์ผ๋ฐ˜์ ์œผ๋กœ Envoy ํ”„๋ก์‹œ)๋ฅผ VM ์ธ์Šคํ„ด์Šค์™€ ํฌ๋“œ์— ์ถ”๊ฐ€ํ•  ์ˆ˜ ์žˆ๋Š” ๋ฉ”์ปค๋‹ˆ์ฆ˜์„ ์ œ๊ณตํ•ฉ๋‹ˆ๋‹ค. ์ด ์ธํ”„๋ผ๋Š” Cloud Service Mesh์™€ ํ†ต์‹ ํ•˜๊ณ  ์„œ๋น„์Šค์— ๋Œ€ํ•ด ํ•™์Šตํ•˜๋„๋ก ์„ค์ •๋˜์—ˆ์Šต๋‹ˆ๋‹ค.

Cloud Service Mesh ๊ตฌ์„ฑ

๋‹ค์Œ์œผ๋กœ ์ „์—ญ ์„œ๋น„์Šค๋ฅผ ๊ตฌ์„ฑํ•˜๊ณ  ํŠธ๋ž˜ํ”ฝ ์ฒ˜๋ฆฌ ๋ฐฉ๋ฒ•์„ ์ •์˜ํ•ฉ๋‹ˆ๋‹ค. Cloud Service Mesh๋ฅผ ๊ตฌ์„ฑํ•˜๋ ค๋ฉด Google Cloud ์ฝ˜์†”(์ผ๋ถ€ ๊ธฐ๋Šฅ ๋ฐ ๊ตฌ์„ฑ), Google Cloud CLI, Traffic Director API ๋˜๋Š” Terraform๊ณผ ๊ฐ™์€ ๊ธฐํƒ€ ๋„๊ตฌ๋ฅผ ์‚ฌ์šฉํ•˜๋ฉด ๋ฉ๋‹ˆ๋‹ค.

์ด ๋‹จ๊ณ„๋ฅผ ์™„๋ฃŒํ•˜๋ฉด Cloud Service Mesh๊ฐ€ ์• ํ”Œ๋ฆฌ์ผ€์ด์…˜ ๋„คํŠธ์›Œํ‚น ์ธํ”„๋ผ๋ฅผ ๊ตฌ์„ฑํ•  ์ˆ˜ ์žˆ๊ฒŒ ๋ฉ๋‹ˆ๋‹ค.

์ธํ”„๋ผ์—์„œ ์• ํ”Œ๋ฆฌ์ผ€์ด์…˜ ๋„คํŠธ์›Œํ‚น ์ฒ˜๋ฆฌ

์• ํ”Œ๋ฆฌ์ผ€์ด์…˜์ด my-service๋กœ ์š”์ฒญ์„ ์ „์†กํ•˜๋ฉด ์• ํ”Œ๋ฆฌ์ผ€์ด์…˜ ๋„คํŠธ์›Œํ‚น ์ธํ”„๋ผ(์˜ˆ: Envoy ์‚ฌ์ด๋“œ์นด ํ”„๋ก์‹œ)๋Š” Cloud Service Mesh๋กœ๋ถ€ํ„ฐ ๋ฐ›์€ ์ •๋ณด์— ๋”ฐ๋ผ ์š”์ฒญ์„ ์ฒ˜๋ฆฌํ•ฉ๋‹ˆ๋‹ค. ์ด๋ ‡๊ฒŒ ํ•˜๋ฉด my-service ์š”์ฒญ์ด ์š”์ฒญ์„ ์ˆ˜์‹ ํ•  ์ˆ˜ ์žˆ๋Š” ์• ํ”Œ๋ฆฌ์ผ€์ด์…˜ ์ธ์Šคํ„ด์Šค๋กœ ์›ํ™œํ•˜๊ฒŒ ๋ผ์šฐํŒ…๋ฉ๋‹ˆ๋‹ค.

๋ชจ๋‹ˆํ„ฐ๋ง ๋ฐ ์ง€์†์  ์—…๋ฐ์ดํŠธ

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

๊ธฐ๋Šฅ

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

์™„์ „ ๊ด€๋ฆฌํ˜• ์ œ์–ด ์˜์—ญ, ์ƒํƒœ ์ ๊ฒ€ ๋ฐ ๋ถ€ํ•˜ ๋ถ„์‚ฐ

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

์˜คํ”ˆ์†Œ์Šค ์ œํ’ˆ ๊ธฐ๋ฐ˜ ๋นŒ๋“œ

Cloud Service Mesh๋Š” Envoy ๋ฐ Istio์™€ ๊ฐ™์€ ์˜คํ”ˆ์†Œ์Šค ํ”„๋กœ์ ํŠธ์— ๋„๋ฆฌ ์‚ฌ์šฉ๋˜๋Š” ๋™์ผํ•œ ์ปจํŠธ๋กค ํ”Œ๋ ˆ์ธ(xDS API)๋ฅผ ์‚ฌ์šฉํ•ฉ๋‹ˆ๋‹ค. ์ง€์›๋˜๋Š” API ๋ฒ„์ „์„ ๋ณด๋ ค๋ฉด xDS ์ปจํŠธ๋กค ํ”Œ๋ ˆ์ธ API๋ฅผ ์ฐธ์กฐํ•˜์„ธ์š”.

์‚ฌ์šฉ ์‚ฌ๋ก€์— ๋”ฐ๋ผ Envoy ๋˜๋Š” gRPC์™€ ๊ฐ™์€ ์• ํ”Œ๋ฆฌ์ผ€์ด์…˜ ๋„คํŠธ์›Œํ‚น ๊ธฐ๋Šฅ์„ ์ œ๊ณตํ•˜๋Š” ์ธํ”„๋ผ๋„ ์˜คํ”ˆ์†Œ์Šค์ด๋ฏ€๋กœ ๋…์  ์ธํ”„๋ผ์— ์ข…์†๋  ๊ฑฑ์ •์ด ์—†์Šต๋‹ˆ๋‹ค.

ํ™•์žฅ

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

์—”๋“œํฌ์ธํŠธ ๋ฐ ๋ฐฑ์—”๋“œ ์„œ๋น„์Šค ๊ฒ€์ƒ‰ ๋ฐ ์ถ”์ 

์• ํ”Œ๋ฆฌ์ผ€์ด์…˜์ด my-service์— ์š”์ฒญ์„ ๋ณด๋‚ด๋ฉด ์ธํ”„๋ผ๊ฐ€ ์›ํ• ํ•˜๊ฒŒ ์š”์ฒญ์„ ์ฒ˜๋ฆฌํ•˜๊ณ  ์˜ฌ๋ฐ”๋ฅธ ๋Œ€์ƒ์œผ๋กœ ๋ณด๋ƒ…๋‹ˆ๋‹ค. ์• ํ”Œ๋ฆฌ์ผ€์ด์…˜์€ IP ์ฃผ์†Œ, ํ”„๋กœํ† ์ฝœ ๋˜๋Š” ๊ธฐํƒ€ ๋„คํŠธ์›Œํ‚น ๋ณต์žก์„ฑ์— ๋Œ€ํ•ด ์•„๋ฌด๊ฒƒ๋„ ์•Œ ํ•„์š”๊ฐ€ ์—†์Šต๋‹ˆ๋‹ค.

๊ธ€๋กœ๋ฒŒ ๋ถ€ํ•˜ ๋ถ„์‚ฐ ๋ฐ ์žฅ์•  ์กฐ์น˜

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

ํŠธ๋ž˜ํ”ฝ ๊ด€๋ฆฌ

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

๊ด€์ธก ๊ฐ€๋Šฅ์„ฑ

์• ํ”Œ๋ฆฌ์ผ€์ด์…˜ ๋„คํŠธ์›Œํ‚น ์ธํ”„๋ผ๋Š” Google Cloud Observability์—์„œ ์ค‘์•™ ์ง‘์ค‘์‹์œผ๋กœ ์ง‘๊ณ„ํ•  ์ˆ˜ ์žˆ๋Š” ์ธก์ •ํ•ญ๋ชฉ, ๋กœ๊ทธ, trace์™€ ๊ฐ™์€ ์›๊ฒฉ ๋ถ„์„ ์ •๋ณด๋ฅผ ์ˆ˜์ง‘ํ•ฉ๋‹ˆ๋‹ค. ์ด ์ •๋ณด๊ฐ€ ์ˆ˜์ง‘๋œ ํ›„ ์œ ์šฉํ•œ ์ •๋ณด๋ฅผ ์–ป๊ณ  ์•Œ๋ฆผ์„ ๋งŒ๋“ค์–ด ๋ฌธ์ œ๊ฐ€ ๋ฐœ์ƒํ•˜๋ฉด ์•Œ๋ฆผ์„ ๋ฐ›์„ ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค.

VPC ์„œ๋น„์Šค ์ œ์–ด

VPC ์„œ๋น„์Šค ์ œ์–ด๋ฅผ ์‚ฌ์šฉํ•˜์—ฌ ์• ํ”Œ๋ฆฌ์ผ€์ด์…˜ ๋ฆฌ์†Œ์Šค์™€ ์„œ๋น„์Šค์— ์ถ”๊ฐ€ ๋ณด์•ˆ์„ ์ œ๊ณตํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค. ๋ฆฌ์†Œ์Šค์™€ ์„œ๋น„์Šค(์˜ˆ: Cloud Service Mesh)๋ฅผ ๊ฒฝ๊ณ„ ์™ธ๋ถ€์—์„œ ๋ฐœ์ƒํ•˜๋Š” ์š”์ฒญ์œผ๋กœ๋ถ€ํ„ฐ ๋ณดํ˜ธํ•˜๋Š” ์„œ๋น„์Šค ๊ฒฝ๊ณ„์— ํ”„๋กœ์ ํŠธ๋ฅผ ์ถ”๊ฐ€ํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค. VPC ์„œ๋น„์Šค ์ œ์–ด์— ๋Œ€ํ•œ ์ž์„ธํ•œ ๋‚ด์šฉ์€ VPC ์„œ๋น„์Šค ์ œ์–ด ๊ฐœ์š”๋ฅผ ์ฐธ์กฐํ•˜์„ธ์š”.

VPC ์„œ๋น„์Šค ์ œ์–ด์™€ ํ•จ๊ป˜ Cloud Service Mesh๋ฅผ ์‚ฌ์šฉํ•˜๋Š” ๋ฐฉ๋ฒ•์— ๋Œ€ํ•œ ์ž์„ธํ•œ ๋‚ด์šฉ์€ ์ง€์›๋˜๋Š” ์ œํ’ˆ ํŽ˜์ด์ง€๋ฅผ ์ฐธ์กฐํ•˜์„ธ์š”.

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

๋ถ€ํ•˜ ๋ถ„์‚ฐ API์— ์ฃผ๋กœ ์ ์šฉ๋˜๋Š” ๊ธฐ์กด ๋ฌธ์„œ์ž…๋‹ˆ๋‹ค. ๋ถ€ํ•˜ ๋ถ„์‚ฐ API๋ฅผ ์‚ฌ์šฉํ•˜์—ฌ Cloud Service Mesh๋ฅผ ๊ตฌ์„ฑํ•˜์ง€ ์•Š๋Š” ๊ฒƒ์ด ์ข‹์Šต๋‹ˆ๋‹ค.