Google Cloud API ์ง€์› ๊ธฐ๋Šฅ์ด ์žˆ๋Š” Cloud Service Mesh

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

Cloud Service Mesh๋Š” ์• ํ”Œ๋ฆฌ์ผ€์ด์…˜, xDS ํ˜ธํ™˜ ๋ฐ์ดํ„ฐ ์˜์—ญ(์˜คํ”ˆ์†Œ์Šค Envoy ํ”„๋ก์‹œ ๋˜๋Š” gRPC ํ”„๋ก์‹œ๋ฆฌ์Šค ๋ฐ์ดํ„ฐ ์˜์—ญ), ์ปจํŠธ๋กค ํ”Œ๋ ˆ์ธ์ธ Cloud Service Mesh๋กœ ๊ตฌ์„ฑ๋ฉ๋‹ˆ๋‹ค.

๋‹ค์Œ ํ‘œ์—์„œ 'ํ•ด๋‹น ์‚ฌํ•ญ ์—†์Œ(N/A)'์€ ํ•ด๋‹น ๊ธฐ๋Šฅ์ด ํŠน์ • Cloud Service Mesh ๊ตฌ์„ฑ๊ณผ ํ˜ธํ™˜๋˜์ง€ ์•Š์œผ๋ฏ€๋กœ ์ง€์›๋˜์ง€ ์•Š์Œ์„ ์˜๋ฏธํ•ฉ๋‹ˆ๋‹ค. ์ฒดํฌํ‘œ์‹œ๋‚˜ N/A ํ‘œ์‹œ๊ฐ€ ์—†๋Š” ๊ณต๋ฐฑ์€ ์ด ๊ธฐ๋Šฅ์ด ์ง€์›๋˜์ง€ ์•Š์Œ์„ ์˜๋ฏธํ•ฉ๋‹ˆ๋‹ค.

์ด๋Ÿฌํ•œ ๊ธฐ๋Šฅ ์ค‘ ์ผ๋ถ€๋Š” ๋ถ€ํ•˜ ๋ถ„์‚ฐ API์—์„œ๋งŒ ์‚ฌ์šฉํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค. ์„œ๋น„์Šค ๋ผ์šฐํŒ… API๋ฅผ ์‚ฌ์šฉํ•˜๊ณ  ๋ถ€ํ•˜ ๋ถ„์‚ฐ API๋ฅผ ์‚ฌ์šฉํ•˜์—ฌ ์ƒˆ ๋ฐฐํฌ๋ฅผ ๋งŒ๋“ค์ง€ ์•Š๋Š” ๊ฒƒ์ด ์ข‹์Šต๋‹ˆ๋‹ค.

์ง€์›๋˜๋Š” xDS ๋ฒ„์ „

Cloud Service Mesh๋Š” ์˜คํ”ˆ์†Œ์Šค xDS ์ปจํŠธ๋กค ํ”Œ๋ ˆ์ธ API๋ฅผ ์‚ฌ์šฉํ•˜์—ฌ Envoy ๋ฐ ํ”„๋ก์‹œ๋ฆฌ์Šค gRPC ํด๋ผ์ด์–ธํŠธ๋ฅผ ๊ตฌ์„ฑํ•ฉ๋‹ˆ๋‹ค. ์ด๋Ÿฌํ•œ ํด๋ผ์ด์–ธํŠธ๋Š” ์• ํ”Œ๋ฆฌ์ผ€์ด์…˜ ์ฝ”๋“œ๋ฅผ ๋Œ€์‹ ํ•˜์—ฌ Cloud Service Mesh์˜ ์• ํ”Œ๋ฆฌ์ผ€์ด์…˜ ๋„คํŠธ์›Œํ‚น ๊ธฐ๋Šฅ์„ ์ œ๊ณตํ•ฉ๋‹ˆ๋‹ค.

xDS v3๋งŒ ์ง€์›๋ฉ๋‹ˆ๋‹ค. xDS v2๋ฅผ ์‚ฌ์šฉํ•˜๋Š” ๊ฒฝ์šฐ xDS v3๋กœ ๋งˆ์ด๊ทธ๋ ˆ์ด์…˜ํ•ฉ๋‹ˆ๋‹ค. ๋งˆ์ด๊ทธ๋ ˆ์ด์…˜ ๋ฐฉ๋ฒ•์— ๋Œ€ํ•œ ์ž์„ธํ•œ ๋‚ด์šฉ์€ xDS v2์—์„œ xDS v3๋กœ ๋งˆ์ด๊ทธ๋ ˆ์ด์…˜์„ ์ฐธ์กฐํ•˜์„ธ์š”.

๋ฉ”์‹œ ์„œ๋น„์Šค๋ฅผ ์‹คํ–‰ํ•˜๋Š” ํ”Œ๋žซํผ

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

๊ธฐ๋Šฅ ์ง€์›๋จ
Compute Engine ๊ฐ€์ƒ ๋จธ์‹ (VM) ์ธ์Šคํ„ด์Šค โœ”
Google Kubernetes Engine(GKE) ์ปจํ…Œ์ด๋„ˆ ์ธ์Šคํ„ด์Šค โœ”
Compute Engine ์ปจํ…Œ์ด๋„ˆ ์ธ์Šคํ„ด์Šค์˜ Kubernetes โœ”

์„œ๋น„์Šค ๊ด€๋ฆฌ

Cloud Service Mesh์—์„œ ๊ตฌ์„ฑ๋œ ๋ฉ”์‹œ์˜ ์„œ๋น„์Šค๋Š” ๋‹ค์Œ์˜ ์ด์ ์„ ๋ˆ„๋ฆด ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค.

  • ์„œ๋น„์Šค ๊ฒ€์ƒ‰ ๋ฉ”์‹œ์˜ ์• ํ”Œ๋ฆฌ์ผ€์ด์…˜์ด ๋‹ค๋ฅธ ์• ํ”Œ๋ฆฌ์ผ€์ด์…˜์— ๋„๋‹ฌํ•˜๋ ค๋Š” ๊ฒฝ์šฐ ์ด๋ฆ„์œผ๋กœ ํ•ด๋‹น ์„œ๋น„์Šค๋ฅผ ํ˜ธ์ถœํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค.

  • ๋ฐฑ์—”๋“œ ์ž๋™ ํ™•์žฅ. ์• ํ”Œ๋ฆฌ์ผ€์ด์…˜ ์ฝ”๋“œ๋ฅผ ์‹คํ–‰ํ•˜๋Š” ์ธ์Šคํ„ด์Šค๋Š” ํ•„์š”์— ๋”ฐ๋ผ ๋™์ ์œผ๋กœ ํ™•์žฅ ๋˜๋Š” ์ถ•์†Œ๋ฉ๋‹ˆ๋‹ค.

  • ์ž๋™ ์—”๋“œํฌ์ธํŠธ ๋“ฑ๋ก. ์ƒˆ ์ธ์Šคํ„ด์Šค๊ฐ€ ์ƒ์„ฑ๋˜๊ฑฐ๋‚˜ ์‚ญ์ œ๋˜๋ฉด ์„œ๋น„์Šค์™€ ์ž๋™์œผ๋กœ ์—ฐ๊ฒฐ๋ฉ๋‹ˆ๋‹ค.

๊ธฐ๋Šฅ ์ง€์›๋จ
Compute Engine VM์šฉ ์‚ฌ์ด๋“œ์นด ํ”„๋ก์‹œ ์ž๋™ ๋ฐฐํฌ โœ”
GKE ํฌ๋“œ์šฉ ์‚ฌ์ด๋“œ์นด ํ”„๋ก์‹œ ์ž๋™ ์‚ฝ์ž… โœ”
ํ˜ธ์ŠคํŠธ ์ด๋ฆ„์„ ๊ธฐ๋ฐ˜์œผ๋กœ ์„œ๋น„์Šค ๊ฒ€์ƒ‰ โœ”
CPU ์‚ฌ์šฉ๋ฅ ์„ ๊ธฐ๋ฐ˜์œผ๋กœ ์ธ์Šคํ„ด์Šค ์ž๋™ ํ™•์žฅ โœ”
ํŠธ๋ž˜ํ”ฝ ๋กœ๋“œ/์ œ๊ณต ์šฉ๋Ÿ‰์— ๋”ฐ๋ฅธ ์ธ์Šคํ„ด์Šค ์ž๋™ ํ™•์žฅ
(๊ด€๋ฆฌํ˜• ์ธ์Šคํ„ด์Šค ๊ทธ๋ฃน์˜ Compute Engine VM ๋˜๋Š” MIG์—๋งŒ ํ•ด๋‹น)
โœ”
๊ตฌ์„ฑ ๊ฐ€๋Šฅํ•œ ์ƒํƒœ ํ™•์ธ ๊ธฐ๋ฐ˜์˜ ์ธ์Šคํ„ด์Šค ์ž๋™ ๋ณต๊ตฌ โœ”
Compute Engine VM์šฉ ์ž๋™ ์—”๋“œํฌ์ธํŠธ ๋“ฑ๋ก โœ”
GKE ์ปจํ…Œ์ด๋„ˆ ์ธ์Šคํ„ด์Šค/ํฌ๋“œ์˜ ์ž๋™ ์—”๋“œํฌ์ธํŠธ ๋“ฑ๋ก โœ”
์—”๋“œํฌ์ธํŠธ๋ฅผ ํ”„๋กœ๊ทธ๋ž˜๋งคํ‹ฑ ๋ฐฉ์‹์œผ๋กœ ์ถ”๊ฐ€ํ•˜๊ฑฐ๋‚˜ ์‚ญ์ œํ•˜๋Š” API โœ”

๋ฐ์ดํ„ฐ ์˜์—ญ ํŠธ๋ž˜ํ”ฝ์˜ ์—”๋“œํฌ์ธํŠธ

๋งˆ์ดํฌ๋กœ์„œ๋น„์Šค๋Š” ๋ฐ์ดํ„ฐ ์˜์—ญ์„ ์‚ฌ์šฉํ•˜์—ฌ ๋ฉ”์‹œ์™€ ๋ฉ”์‹œ ์™ธ๋ถ€์˜ ์„œ๋น„์Šค์— ๋„๋‹ฌํ•ฉ๋‹ˆ๋‹ค. Cloud Service Mesh๋ฅผ ์‚ฌ์šฉํ•˜๋ฉด ์• ํ”Œ๋ฆฌ์ผ€์ด์…˜ ๋กœ์ง์„ ๋„คํŠธ์›Œํ‚น ๋กœ์ง๊ณผ ๋ถ„๋ฆฌํ•  ์ˆ˜ ์žˆ์œผ๋ฏ€๋กœ ์• ํ”Œ๋ฆฌ์ผ€์ด์…˜์—์„œ๋Š” ๋ฐ์ดํ„ฐ ์˜์—ญ(์˜ˆ: ์• ํ”Œ๋ฆฌ์ผ€์ด์…˜๊ณผ ํ•จ๊ป˜ ์‹คํ–‰๋˜๋Š” ์‚ฌ์ด๋“œ์นด ํ”„๋ก์‹œ)์— ์š”์ฒญ์„ ๋ณด๋‚ด๊ธฐ๋งŒ ํ•˜๋ฉด ๋ฉ๋‹ˆ๋‹ค. ๊ทธ๋Ÿฌ๋ฉด ๋ฐ์ดํ„ฐ ์˜์—ญ์ด ์˜ฌ๋ฐ”๋ฅธ ์—”๋“œํฌ์ธํŠธ๋กœ ์š”์ฒญ์„ ์ „์†กํ•ฉ๋‹ˆ๋‹ค.

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

๊ธฐ๋Šฅ ์ง€์›๋จ
๋ฉ”์‹œ์˜ VM ๊ธฐ๋ฐ˜ ์• ํ”Œ๋ฆฌ์ผ€์ด์…˜ โœ”
๋ฉ”์‹œ์˜ ์ปจํ…Œ์ด๋„ˆ ๊ธฐ๋ฐ˜ ์• ํ”Œ๋ฆฌ์ผ€์ด์…˜ โœ”
๋ฉ”์‹œ ์™ธ๋ถ€์˜ VM ๊ธฐ๋ฐ˜ ์• ํ”Œ๋ฆฌ์ผ€์ด์…˜ โœ”
๋ฉ”์‹œ ์™ธ๋ถ€์˜ ์ปจํ…Œ์ด๋„ˆ ๊ธฐ๋ฐ˜ ์• ํ”Œ๋ฆฌ์ผ€์ด์…˜ โœ”
์˜จํ”„๋ ˆ๋ฏธ์Šค ๋ฐ์ดํ„ฐ ์„ผํ„ฐ์—์„œ ์‹คํ–‰๋˜๋Š” ์• ํ”Œ๋ฆฌ์ผ€์ด์…˜ โœ”
๋ฉ€ํ‹ฐ ํด๋ผ์šฐ๋“œ ํ™˜๊ฒฝ์˜ ์• ํ”Œ๋ฆฌ์ผ€์ด์…˜ โœ”

๋ฐ์ดํ„ฐ ์˜์—ญ ํ† ํด๋กœ์ง€

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

๊ธฐ๋Šฅ ์ง€์›๋จ
์• ํ”Œ๋ฆฌ์ผ€์ด์…˜๊ณผ ํ•จ๊ป˜ ์‹คํ–‰๋˜๋Š” ์‚ฌ์ด๋“œ์นด ํ”„๋ก์‹œ โœ”
ํ”„๋ก์‹œ๋ฆฌ์Šค gRPC ์• ํ”Œ๋ฆฌ์ผ€์ด์…˜ โœ”
๋ฉ”์‹œ์˜ ๋‘ ์• ํ”Œ๋ฆฌ์ผ€์ด์…˜ ์‚ฌ์ด์— ์žˆ๋Š” ์ค‘๊ฐ„ ํ”„๋ก์‹œ โœ”
๋ฉ”์‹œ ๊ฒฝ๊ณ„์˜ ์—์ง€ ํ”„๋ก์‹œ โœ”
์—ฌ๋Ÿฌ ๋ฆฌ์ „์˜ ์—ฌ๋Ÿฌ GKE ํด๋Ÿฌ์Šคํ„ฐ ๋˜๋Š” Compute Engine VM์— ๊ฑธ์ณ ์žˆ๋Š” ๋ฉ”์‹œ โœ”

ํ”„๋กœ๊ทธ๋ž˜๋งคํ‹ฑ API ๊ธฐ๋ฐ˜ ๊ตฌ์„ฑ

๋ชจ๋“  ๊ตฌ์„ฑ์€ REST API์™€ ๋Œ€์‹œ๋ณด๋“œ๋ฅผ ํ†ตํ•ด ๊ธฐ๋ณธ์ ์œผ๋กœ ๋…ธ์ถœ๋˜๋ฏ€๋กœ ๋Œ€๊ทœ๋ชจ ํŒ€ ์ „์ฒด์˜ ๋ณ€๊ฒฝ์‚ฌํ•ญ์„ ์ž๋™ํ™”ํ•˜๊ณ  ๋ณ€๊ฒฝ์‚ฌํ•ญ์„ ํ”„๋กœ๊ทธ๋ž˜๋งคํ‹ฑ ๋ฐฉ์‹์œผ๋กœ ๊ด€๋ฆฌํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค. ์ผ๋ถ€ ๊ธฐ๋Šฅ์€ Google Cloud ์ฝ˜์†”์„ ์‚ฌ์šฉํ•˜์—ฌ ๊ตฌ์„ฑํ•  ์ˆ˜ ์—†์Šต๋‹ˆ๋‹ค.

๊ธฐ๋Šฅ ์ง€์›๋จ
REST API โœ”
Google Cloud Console โœ”
Google Cloud CLI โœ”
Cloud Deployment Manager โœ”
Terraform ์ง€์› โœ”

ํ”„๋ก์‹œ๋ฆฌ์Šค gRPC ์• ํ”Œ๋ฆฌ์ผ€์ด์…˜์„ ํ†ตํ•œ ์–ธ์–ด ์ง€์›

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

์–ธ์–ด ์ง€์›๋จ
์ž๋ฐ” โœ”
Go โœ”
C++ โœ”
Python โœ”
Ruby โœ”
PHP โœ”
๋…ธ๋“œ โœ”

์š”์ฒญ ํ”„๋กœํ† ์ฝœ

์• ํ”Œ๋ฆฌ์ผ€์ด์…˜์€ Cloud Service Mesh๋กœ ๊ตฌ์„ฑ๋œ ๋ฐ์ดํ„ฐ ์˜์—ญ์„ ์‚ฌ์šฉํ•˜์—ฌ ํ†ต์‹ ํ•  ๋•Œ ๋‹ค์Œ ์š”์ฒญ ํ”„๋กœํ† ์ฝœ์„ ์‚ฌ์šฉํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค.

๊ธฐ๋Šฅ ์ง€์›๋จ
HTTP โœ”
HTTPS โœ”
HTTP/2 โœ”
TCP โœ”
gRPC โœ”

์„œ๋น„์Šค ๋ณด์•ˆ

Cloud Service Mesh๋Š” ๋‹ค์Œ ๊ตฌ์„ฑ์œผ๋กœ ์„œ๋น„์Šค ๋ณด์•ˆ์„ ์ง€์›ํ•ฉ๋‹ˆ๋‹ค.

๊ธฐ๋Šฅ Envoy gRPC
GKE ํฌ๋“œ๊ฐ€ ํฌํ•จ๋œ TLS โœ” โœ”
GKE ํฌ๋“œ๊ฐ€ ํฌํ•จ๋œ mTLS โœ” โœ”
์•ก์„ธ์Šค ์ œ์–ด ๋ฐ ์Šน์ธ โœ” โœ”

๋ผ์šฐํŒ… ๋ฐ ํŠธ๋ž˜ํ”ฝ ๊ด€๋ฆฌ

Cloud Service Mesh๋Š” ๋ฐ์ดํ„ฐ ์˜์—ญ์„ ํ†ต๊ณผํ•˜๋Š” ํŠธ๋ž˜ํ”ฝ์„ ์กฐ์ •, ๋ถ„ํ• , ๊ตฌ์„ฑํ•˜๋Š” ๋ฐ ์‚ฌ์šฉํ•  ์ˆ˜ ์žˆ๋Š” ๊ณ ๊ธ‰ ํŠธ๋ž˜ํ”ฝ ๊ด€๋ฆฌ ์ •์ฑ…์„ ์ง€์›ํ•ฉ๋‹ˆ๋‹ค.

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

Cloud Service Mesh๊ฐ€ TCP(HTTP(S)๊ฐ€ ์•„๋‹Œ) ํŠธ๋ž˜ํ”ฝ์„ ์ฒ˜๋ฆฌํ•˜๋Š” ๊ฒฝ์šฐ ๋‹ค์Œ ๊ธฐ๋Šฅ์€ ์ง€์›๋˜์ง€ ์•Š์Šต๋‹ˆ๋‹ค.

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

๋ถ€ํ•˜ ๋ถ„์‚ฐ

์„œ๋น„์Šค, ๋ฐฑ์—”๋“œ ๊ทธ๋ฃน(์ธ์Šคํ„ด์Šค ๊ทธ๋ฃน ๋˜๋Š” ๋„คํŠธ์›Œํฌ ์—”๋“œํฌ์ธํŠธ ๊ทธ๋ฃน), ๊ฐœ๋ณ„ ๋ฐฑ์—”๋“œ, ์—”๋“œํฌ์ธํŠธ ์ˆ˜์ค€์—์„œ ๋ถ€ํ•˜ ๋ถ„์‚ฐ์„ ์œ„ํ•ด ๊ณ ๊ธ‰ ๋ถ€ํ•˜ ๋ถ„์‚ฐ ๋ฉ”์„œ๋“œ์™€ ์•Œ๊ณ ๋ฆฌ์ฆ˜์„ ๊ตฌ์„ฑํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค. ์ž์„ธํ•œ ๋‚ด์šฉ์€ ๋ฐฑ์—”๋“œ ์„œ๋น„์Šค ๊ฐœ์š” ๋ฐ ๊ณ ๊ธ‰ ๋ถ€ํ•˜ ๋ถ„์‚ฐ ๊ฐœ์š”๋ฅผ ์ฐธ์กฐํ•˜์„ธ์š”.

๊ธฐ๋Šฅ HTTP(s), TCP ๋˜๋Š” gRPC ํŠธ๋ž˜ํ”ฝ์„ ์ฒ˜๋ฆฌํ•˜๋„๋ก ๊ตฌ์„ฑ๋œ Envoy ํ”„๋ก์‹œ์—์„œ ์ง€์›๋จ ํ”„๋ก์‹œ๋ฆฌ์Šค gRPC์—์„œ ์ง€์›๋จ
๋ฆฌ์ „์„ ๊ธฐ์ค€์œผ๋กœ ๋ฐฑ์—”๋“œ(์ธ์Šคํ„ด์Šค ๊ทธ๋ฃน ๋˜๋Š” ๋„คํŠธ์›Œํฌ ์—”๋“œํฌ์ธํŠธ ๊ทธ๋ฃน) ์„ ํƒ(๋ฐฑ์—”๋“œ ์šฉ๋Ÿ‰์ด ์•ˆ์ •์ ์ธ ๊ฐ€์žฅ ๊ฐ€๊นŒ์šด ๋ฆฌ์ „ ์„ ํ˜ธ) โœ” โœ”
๋น„์œจ ๊ธฐ๋ฐ˜(์ดˆ๋‹น ์š”์ฒญ ์ˆ˜) ๋ถ„์‚ฐ ๋ชจ๋“œ๋ฅผ ์‚ฌ์šฉํ•˜๋Š” ๋ฐฑ์—”๋“œ ์„ ํƒ โœ”
TCP(HTTP(S)๊ฐ€ ์•„๋‹Œ) ํŠธ๋ž˜ํ”ฝ์—์„œ๋Š” ์ง€์›๋˜์ง€ ์•Š์Šต๋‹ˆ๋‹ค.
โœ”
์‚ฌ์šฉ๋ฅ  ๊ธฐ๋ฐ˜ ๋ถ„์‚ฐ ๋ชจ๋“œ๋ฅผ ๊ธฐ๋ฐ˜์œผ๋กœ ํ•˜๋Š” ๋ฐฑ์—”๋“œ ์„ ํƒ(Compute Engine ์ธ์Šคํ„ด์Šค ๊ทธ๋ฃน์˜ VM๋งŒ ํ•ด๋‹น) โœ” โœ”
๋ฐฑ์—”๋“œ ๋‹น ๊ตฌ์„ฑ ๊ฐ€๋Šฅํ•œ ์ตœ๋Œ€ ์šฉ๋Ÿ‰(Compute Engine ๋ฐ GKE๋งŒ ํ•ด๋‹น) โœ” โœ”

๊ตฌ์„ฑ ๊ฐ€๋Šฅํ•œ ๋ถ€ํ•˜ ๋ถ„์‚ฐ ์ •์ฑ…์„ ๊ธฐ๋ฐ˜์œผ๋กœ ํ•˜๋Š” ๋ฐฑ์—”๋“œ ์„ ํƒ

๊ฐ ๊ธฐ๋ณธ ์ œ๊ณต ์ •์ฑ…์— ๊ด€ํ•œ ์ž์„ธํ•œ ๋‚ด์šฉ์€ localityLbPolicy๋ฅผ ์ฐธ์กฐํ•˜์„ธ์š”.

  • ๋‹จ์ผ ๊ธฐ๋ณธ ์ œ๊ณต ์ •์ฑ… ์‚ฌ์šฉ, ๋‹ค์Œ ์˜ต์…˜ ์ค‘์—์„œ ์„ ํƒํ•ฉ๋‹ˆ๋‹ค.

    • ๋ผ์šด๋“œ ๋กœ๋นˆ
    • ์ตœ์†Œ ์š”์ฒญ
    • ๋ง ํ•ด์‹œ
    • ๋ฌด์ž‘์œ„
    • ์›๋ž˜ ๋Œ€์ƒ
    • Maglev

์„œ๋น„์Šค ๋ณต์›๋ ฅ

Cloud Service Mesh๋Š” ์„œ๋น„์Šค์˜ ๋ณต์›๋ ฅ์„ ํ–ฅ์ƒ์‹œํ‚ค๋Š” ๊ธฐ๋Šฅ์„ ์ง€์›ํ•ฉ๋‹ˆ๋‹ค. ์˜ˆ๋ฅผ ๋“ค์–ด Cloud Service Mesh๋ฅผ ์‚ฌ์šฉํ•˜์—ฌ ๋ธ”๋ฃจ-๊ทธ๋ฆฐ ๋ฐฐํฌ ํŒจํ„ด, ์นด๋‚˜๋ฆฌ์•„ ํ…Œ์ŠคํŠธ ๋˜๋Š” ํšŒ๋กœ ์ฐจ๋‹จ(Envoy, gRPC)์„ ๊ตฌํ˜„ํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค.

๊ธฐ๋Šฅ HTTP(s), TCP ๋˜๋Š” gRPC ํŠธ๋ž˜ํ”ฝ์„ ์ฒ˜๋ฆฌํ•˜๋„๋ก ๊ตฌ์„ฑ๋œ Envoy ํ”„๋ก์‹œ์—์„œ ์ง€์›๋จ ํ”„๋ก์‹œ๋ฆฌ์Šค gRPC์—์„œ ์ง€์›๋จ
๊ฐ€์ค‘์น˜ ๊ธฐ๋ฐ˜ ํŠธ๋ž˜ํ”ฝ ๋ถ„ํ• ์„ ๊ธฐ๋ฐ˜์œผ๋กœ ํ•œ ์„œ๋น„์Šค ์„ ํƒ โœ” โœ”
ํšŒ๋กœ ์ฐจ๋‹จ โœ” โœ”
maxRequests๋งŒ ํ•ด๋‹น

์„œ๋น„์Šค ๋ฐ ๋ฐฑ์—”๋“œ ์šฉ๋Ÿ‰ ๊ด€๋ฆฌ

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

๊ธฐ๋Šฅ ์ง€์›๋จ
๊ด€๋ฆฌํ˜• ์ธ์Šคํ„ด์Šค ๊ทธ๋ฃน(MIG)์˜ VM ์ธ์Šคํ„ด์Šค์— ๋Œ€ํ•œ ๋ฐฑ์—”๋“œ ์šฉ๋Ÿ‰ ๋ฐ ์‚ฌ์šฉ๋ฅ ์„ CPU ๊ธฐ๋ฐ˜์œผ๋กœ ์ž๋™ ์ถ”์  โœ”
์š”์ฒญ ๋น„์œจ์— ๋”ฐ๋ผ MIG ๋ฐ ๋„คํŠธ์›Œํฌ ์—”๋“œํฌ์ธํŠธ ๊ทธ๋ฃน(NEG)์˜ VM ๋ฐ ์ปจํ…Œ์ด๋„ˆ ์ธ์Šคํ„ด์Šค์˜ ์ˆ˜๋™ ์šฉ๋Ÿ‰ ๋ฐ ์žฌ์ •์˜ โœ”
์ˆ˜๋™ ์šฉ๋Ÿ‰ ๋“œ๋ ˆ์ด๋‹ โœ”

์žฅ์•  ์กฐ์น˜

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

๊ธฐ๋Šฅ ์ง€์›๋จ
๋ฐฑ์—”๋“œ ์šฉ๋Ÿ‰์ด ์ •์ƒ์ธ ๋™์ผํ•œ ๋ฆฌ์ „ ๋‚ด์˜ ๋‹ค๋ฅธ ์˜์—ญ์œผ๋กœ ์ž๋™ ์žฅ์•  ์กฐ์น˜ โœ”
์ •์ƒ ๋ฐฑ์—”๋“œ ์šฉ๋Ÿ‰์ด ์žˆ๋Š” ๊ฐ€์žฅ ๊ฐ€๊นŒ์šด ๋ฆฌ์ „์œผ๋กœ ์ž๋™ ์žฅ์•  ์กฐ์น˜ โœ”

์ƒํƒœ ํ™•์ธ

Cloud Service Mesh๋Š” ๋ฐฑ์—”๋“œ ์ƒํƒœ๋ฅผ ํ™•์ธํ•˜๊ธฐ ์œ„ํ•ด ์ค‘์•™ ์ง‘์ค‘์‹ ์ƒํƒœ ํ™•์ธ์„ ์ง€์›ํ•ฉ๋‹ˆ๋‹ค.

์ž์„ธํ•œ ๋‚ด์šฉ์€ ์ƒํƒœ ์ ๊ฒ€ ๊ฐœ์š”๋ฅผ ์ฐธ์กฐํ•˜์„ธ์š”.

๊ธฐ๋Šฅ ์ง€์›๋จ
gRPC ์ƒํƒœ ํ™•์ธ โœ”
HTTP ์ƒํƒœ ํ™•์ธ โœ”
HTTPS ์ƒํƒœ ํ™•์ธ โœ”
HTTP/2 ์ƒํƒœ ํ™•์ธ โœ”
TCP ์ƒํƒœ ํ™•์ธ โœ”

๊ตฌ์„ฑ ๊ฐ€๋Šฅํ•œ ์ƒํƒœ ํ™•์ธ:

  • ํฌํŠธ
  • ํ™•์ธ ๊ฐ„๊ฒฉ
  • ์ œํ•œ ์‹œ๊ฐ„
  • ์ •์ƒ ๋ฐ ๋น„์ •์ƒ ์ž„๊ณ„๊ฐ’
โœ”
๊ตฌ์„ฑ ๊ฐ€๋Šฅํ•œ ์š”์ฒญ ๊ฒฝ๋กœ(HTTP, HTTPS, HTTP/2) โœ”
๊ตฌ์„ฑ ๊ฐ€๋Šฅํ•œ ์š”์ฒญ ๋ฌธ์ž์—ด ๋˜๋Š” ๊ฒฝ๋กœ(TCP ๋˜๋Š” SSL) โœ”
๊ตฌ์„ฑ ๊ฐ€๋Šฅํ•œ ์˜ˆ์ƒ ์‘๋‹ต ๋ฌธ์ž์—ด โœ”

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

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

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

๊ธฐ๋Šฅ ํ”„๋ก์‹œ์—์„œ ์ง€์›๋จ ํ”„๋ก์‹œ๋ฆฌ์Šค gRPC ์„œ๋น„์Šค์—์„œ ์ง€์›๋จ
์„œ๋น„์Šค ์ƒํƒœ ๋Œ€์‹œ๋ณด๋“œ โœ” โœ”
๋ฐ์ดํ„ฐ ์˜์—ญ ๋กœ๊น… โœ” โœ”
๋ฐ์ดํ„ฐ ์˜์—ญ ์ถ”์  โœ” โœ”

์„ธ์…˜ ์–ดํ”ผ๋‹ˆํ‹ฐ

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

๊ธฐ๋Šฅ HTTP(S) ํ”„๋ก์‹œ์—์„œ ์ง€์›๋จ TCP ํ”„๋ก์‹œ์—์„œ ์ง€์›๋จ ํ”„๋ก์‹œ๋ฆฌ์Šค gRPC ์„œ๋น„์Šค์—์„œ ์ง€์›๋จ
ํด๋ผ์ด์–ธํŠธ IP ์ฃผ์†Œ โœ” โœ”
HTTP ์ฟ ํ‚ค โœ” ํ•ด๋‹น ์‚ฌํ•ญ ์—†์Œ
HTTP ํ—ค๋” โœ” ํ•ด๋‹น ์‚ฌํ•ญ ์—†์Œ โœ”
์ƒ์„ฑ๋œ ์ฟ ํ‚ค(์ฒซ ๋ฒˆ์งธ ์š”์ฒญ ์‹œ ํด๋ผ์ด์–ธํŠธ ์ฟ ํ‚ค ์„ค์ •) โœ” ํ•ด๋‹น ์‚ฌํ•ญ ์—†์Œ

๋„คํŠธ์›Œํฌ ํ† ํด๋กœ์ง€

Cloud Service Mesh๋Š” ์ผ๋ฐ˜์ ์ธ Google Cloud ๋„คํŠธ์›Œํฌ ํ† ํด๋กœ์ง€๋ฅผ ์ง€์›ํ•ฉ๋‹ˆ๋‹ค.

๊ธฐ๋Šฅ ์ง€์›๋จ
Google Cloud ํ”„๋กœ์ ํŠธ์˜ ๋‹จ์ผ ๋„คํŠธ์›Œํฌ โœ”
Google Cloud ํ”„๋กœ์ ํŠธ์˜ ์—ฌ๋Ÿฌ ๋ฉ”์‹œ โœ”
Google Cloud ํ”„๋กœ์ ํŠธ์˜ ์—ฌ๋Ÿฌ ๊ฒŒ์ดํŠธ์›จ์ด โœ”
๊ณต์œ  VPC(์—ฌ๋Ÿฌ Google Cloud ํ”„๋กœ์ ํŠธ์—์„œ ๋‹จ์ผ ๋„คํŠธ์›Œํฌ ๊ณต์œ ) โœ”

Cloud Service Mesh์—์„œ ๊ณต์œ  VPC๊ฐ€ ์ง€์›๋˜๋Š” ๋ฐฉ์‹์— ๋Œ€ํ•œ ์ž์„ธํ•œ ์„ค๋ช…์€ ์ œํ•œ์‚ฌํ•ญ์„ ์ฐธ์กฐํ•˜์„ธ์š”.

๊ทœ์ • ์ค€์ˆ˜

Cloud Service Mesh๋Š” ๋‹ค์Œ ํ‘œ์ค€์„ ์ค€์ˆ˜ํ•ฉ๋‹ˆ๋‹ค.

๊ทœ์ • ์ค€์ˆ˜ ์ธ์ฆ ์ง€์›๋จ
HIPAA โœ”
ISO 27001, ISO 27017, ISO 27018 โœ”
SOC1, SOC2, SOC3 โœ”
PCI DSS โœ”

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