๋ณธ๋ฌธ ๋ฐ”๋กœ๊ฐ€๊ธฐ
๐Ÿ”Ž Service Mesh

[Service Mesh] 1. Service Mesh๋ž€?

by Seongpyo Hong 2020. 12. 20.

Service Mesh ์•Œ์•„๋ณด๊ธฐ

  1. [Service Mesh] 1. Service Mesh๋ž€?
  2. [Service Mehs] 2. Envoy Proxy
  3. [Service Mesh] 3. Istio?
  4. [Service Mesh] 4. Istio Traffic Management (1) - Virtual Service & Destination Rule
  5. [Service Mesh] 5. Istio Traffic Managerment (2) - Gateway & Service Entry
  6. [Service Mesh] 6. Service Monitoring in Istio
  7. [Service Mesh] 7. Logging

 


์ด๋ฒˆ ๊ธ€์—์„œ๋Š” MSA๊ฐ€ ๋– ์˜ค๋ฅด๋ฉด์„œ ํ•จ๊ป˜ ์ฃผ๋ชฉ๋ฐ›๊ณ  ์žˆ๋Š” Service Mesh์— ๋Œ€ํ•ด ์•Œ์•„๋ณด๊ณ ์ž ํ•ฉ๋‹ˆ๋‹ค. 

 

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

  • ๋…๋ฆฝ์ ์ธ ๊ธฐ๋Šฅ ์—…๋ฐ์ดํŠธ ๋ฐ ๋ณ€๊ฒฝ ์–ด๋ ค์›€
  • ํŠน์ • ์„œ๋น„์Šค๋งŒ ์Šค์ผ€์ผ๋ง ๋ถˆ๊ฐ€๋Šฅ

์ด๋Ÿฐ ๋ฌธ์ œ๋“ค์„ ํ•ด๊ฒฐํ•˜๊ธฐ ์œ„ํ•ด ๋“ฑ์žฅํ•œ ๊ฒƒ์ด MSA(Micro Service Architecture)์ž…๋‹ˆ๋‹ค.

MSA?

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

  • ์„œ๋น„์Šค ๋…๋ฆฝ์ ์œผ๋กœ ๊ฐœ๋ฐœ์„ ํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค.
  • ํ•˜๋‚˜์˜ ์„œ๋น„์Šค์— ์žฅ์• ๊ฐ€ ๋ฐœ์ƒํ–ˆ์„ ๊ฒฝ์šฐ์—๋„ ๋‹ค๋ฅธ ์„œ๋น„์Šค๋Š” ๋™์ž‘์ด ๊ฐ€๋Šฅํ•ฉ๋‹ˆ๋‹ค. (๋ฌผ๋ก  ์žฅ์• ๊ฐ€ ๋ฐœ์ƒํ•œ ์„œ๋น„์Šค์™€ ์—ฐ๊ด€๋œ ์„œ๋น„์Šค๋Š” ์žฅ์• ๋ฅผ ๊ฒช๊ฒŒ ๋˜๋ฉฐ, ์ž‘์€ ์žฅ์• ๊ฐ€ ์‹œ์Šคํ…œ ์ „์ฒด๋กœ ์ „ํŒŒ๋  ์ˆ˜ ์žˆ๊ธฐ๋„ ํ•ฉ๋‹ˆ๋‹ค.)
  • ์„œ๋น„์Šค๋งˆ๋‹ค ํ•„์š”ํ•œ ๋ฆฌ์†Œ์Šค๋ฅผ ๋‹ค๋ฅด๊ฒŒ ๋ถ„๋ฐฐํ•  ์ˆ˜ ์žˆ์œผ๋ฉฐ, Scale Out์— ์šฉ์ดํ•ฉ๋‹ˆ๋‹ค.

 

ํ•˜์ง€๋งŒ, ์€ํƒ„ํ™˜์€ ์—†๋“ฏ์ด ์žฅ์ ๋งŒ ์กด์žฌํ•˜๋Š” ๊ฒƒ์€ ์•„๋‹™๋‹ˆ๋‹ค. MSA๋ฅผ ๋„์ž…ํ•จ์— ์žˆ์–ด ํ•ด๊ฒฐํ•ด์•ผ ํ•˜๋Š” ์ƒˆ๋กœ์šด ๋„์ „ ๊ณผ์ œ๊ฐ€ ์กด์žฌํ•ฉ๋‹ˆ๋‹ค. 

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

์ด๋Ÿฐ ๋ฌธ์ œ๋“ค์„ ํ•ด๊ฒฐํ•˜๊ธฐ ์œ„ํ•ด Service Discovery, Circuit Breaker, API Gateway์™€ ๊ฐ™์€ ๋„๊ตฌ๋“ค์„ ์ง€์›ํ•˜๋Š” Infrastructure Library๊ฐ€ ๋ฐœ์ „ํ•˜๊ณ  ์žˆ์Šต๋‹ˆ๋‹ค. ํ•˜์ง€๋งŒ, Infrastructure Libarary๋ฅผ ์‚ฌ์šฉํ•˜๋Š” ๊ฒƒ์€ ์–ดํ”Œ๋ฆฌ์ผ€์ด์…˜ ์ฝ”๋“œ์™€ ์ธํ”„๋ผ ์‚ฌ์ด์˜ ๊ฒฐํ•ฉ๋„๋ฅผ ์ฆ๊ฐ€์‹œ์ผœ ์„œ๋น„์Šค๊ฐ€ ์ธํ”„๋ผ์— ์ข…์†๋˜๋Š” ๋ฌธ์ œ๊ฐ€ ๋ฐœ์ƒํ•ฉ๋‹ˆ๋‹ค. ๋˜ํ•œ, ์„ ํƒํ•œ ๊ธฐ์ˆ  ์Šคํƒ์— ํฌํ•จ๋˜์ง€ ์•Š๋Š” ๊ธฐ๋Šฅ์ด๋ผ๋ฉด ๊ทธ ๊ธฐ๋Šฅ์„ ์ง์ ‘ ์ถ”๊ฐ€ํ•˜๊ธฐ ์œ„ํ•ด ์ฝ”๋“œ๋ฅผ ์ž‘์„ฑํ•˜๊ฑฐ๋‚˜ ์ƒˆ๋กœ์šด ๋ฒ„์ „์— ์ถ”๊ฐ€๋˜๊ธฐ๋ฅผ ๊ธฐ๋‹ค๋ฆด ์ˆ˜ ๋ฐ–์— ์—†์Šต๋‹ˆ๋‹ค. 

Service Mesh?

Service Mesh๋Š” Application Layer์—์„œ ์ด๋Ÿฐ ๋ถ€๋ถ„๋“ค์„ ์ฒ˜๋ฆฌํ•˜๋Š” ๊ฒƒ์ด ์•„๋‹Œ Infrastructure Layer์—์„œ ์ฒ˜๋ฆฌํ•˜๋Š” ๋ฐฉ๋ฒ•์ž…๋‹ˆ๋‹ค. ๋”ฐ๋ผ์„œ MSA์˜ ๊ฐ ์„œ๋น„์Šค๋Š” ํ•ต์‹ฌ ๋น„์ฆˆ๋‹ˆ์Šค ๋กœ์ง์—๋งŒ ์ง‘์ค‘ํ•  ์ˆ˜ ์žˆ๊ณ  MSA๋ฅผ ๋„์ž…ํ•จ์œผ๋กœ์จ ๋ฐœ์ƒํ•˜๋Š” ๋ฌธ์ œ(๋‚ด๊ฒฐํ•จ์„ฑ, ๋ณด์•ˆ, ๋ชจ๋‹ˆํ„ฐ๋ง ๋“ฑ)๋ฅผ Infrastructure Layer์—์„œ ์ฒ˜๋ฆฌํ•  ์ˆ˜ ์žˆ๊ฒŒ ๋ฉ๋‹ˆ๋‹ค. ์ถ”๊ฐ€๋กœ ๋‹ค์Œ๊ณผ ๊ฐ™์€ ์ด์ ๋„ ์กด์žฌํ•ฉ๋‹ˆ๋‹ค.

  • ํŠธ๋ž˜ํ”ฝ ์ œ์–ด
  • ์„ธ๋ถ„ํ™”๋œ ๋ณด์•ˆ ์ •์ฑ… ์ ์šฉ
  • Tracing ์ œ๊ณต

Service Mesh๋Š” ์ผ๋ฐ˜์ ์œผ๋กœ Sidecar Pattern์œผ๋กœ ๊ตฌ์„ฑ๋ฉ๋‹ˆ๋‹ค.

Sidecar Pattern

Sidecar Pattern์ด๋ž€ ์• ํ”Œ๋ฆฌ์ผ€์ด์…˜์˜ ๋น„์ฆˆ๋‹ˆ์Šค ๋กœ์ง์ด์™ธ์— ๋ณ„๋„๋กœ ํ•„์š”ํ•œ ๋กœ์ง์„ ์ˆ˜ํ–‰ํ•˜๋Š” ํ”„๋กœ์„ธ์Šค๋ฅผ ํ•จ๊ป˜ ๋ฐฐํฌํ•˜๋Š” ๋ฐฉ์‹์„ ์˜๋ฏธํ•ฉ๋‹ˆ๋‹ค. ์ฟ ๋ฒ„๋„คํ‹ฐ์Šค์—์„œ๋Š” ์• ํ”Œ๋ฆฌ์ผ€์ด์…˜ ์ปจํ…Œ์ด๋„ˆ + ์‚ฌ์ด๋“œ์นด ์ปจํ…Œ์ด๋„ˆ๋ฅผ ํ•˜๋‚˜์˜ Pod์œผ๋กœ ๋ฌถ์–ด ๋ฐฐํฌํ•˜๋Š” ๋ฐฉ์‹์„ ์‚ฌ์šฉํ•˜๊ฒŒ ๋ฉ๋‹ˆ๋‹ค.

Service Mesh์—์„œ ์‚ฌ์ด๋“œ์นด๋Š” ์„œ๋น„์Šค๊ฐ„ ๋ชจ๋“  ํŠธ๋ž˜ํ”ฝ์„ ํ”„๋ก์‹œํ•˜๋ฉฐ Service Discovery, Health Check, Routing, Load Balancing, Security, Observability ๊ธฐ๋Šฅ์„ ์ˆ˜ํ–‰ํ•˜๊ฒŒ ๋ฉ๋‹ˆ๋‹ค. ์ถ”๊ฐ€๋กœ Sidecar๋Š” Service Mesh์—์„œ Data Plane์ด๋ผ๊ณ ๋„ ํ•ฉ๋‹ˆ๋‹ค.

์ด๋ฒˆ ๊ธ€์—์„œ๋Š” Service Mesh์˜ ๋“ฑ์žฅ ๋ฐฐ๊ฒฝ๊ณผ ์–ด๋–ป๊ฒŒ ๊ธฐ์กด ๋ฌธ์ œ๋ฅผ ์ฒ˜๋ฆฌํ•˜๋Š”์ง€์— ๋Œ€ํ•ด ์‚ดํŽด๋ณด์•˜์Šต๋‹ˆ๋‹ค. ๋‹ค์Œ ๊ธ€์—์„œ๋Š” Sidecar๋กœ ์‚ฌ์šฉ๋˜๋Š” Envoy Proxy์— ๋Œ€ํ•ด์„œ ์•Œ์•„๋ณด๊ฒ ์Šต๋‹ˆ๋‹ค.

์ฐธ๊ณ ์ž๋ฃŒ

  1. waspro.tistory.com/429
  2. Istio๋กœ ์‹œ์ž‘ํ•˜๋Š” ์„œ๋น„์Šค ๋ฉ”์‹œ - ์—์ด์ฝ˜ ์ถœํŒ์‚ฌ

๋Œ“๊ธ€