์—ฌ๋Ÿฌ ๋ฐฑ์—”๋“œ์— ํŠธ๋ž˜ํ”ฝ์„ ๋ถ„์‚ฐํ•˜๋Š” ๋ฉ”์ปค๋‹ˆ์ฆ˜. ์–ด๋А ๊ณ„์ธต์—์„œ ๋ถ„์‚ฐํ•˜๋А๋ƒ(DNS / L4 / L7), VIP๋ฅผ ์–ด๋–ป๊ฒŒ ๋„์šฐ๋А๋ƒ(๊ณ ์ • IP / VRRP / BGP), ํ—ฌ์Šค์ฒดํฌยทfailover๋ฅผ ์–ด๋””์„œ ์ฒ˜๋ฆฌํ•˜๋А๋ƒ๊ฐ€ ์„ค๊ณ„ ์ถ•์ด๋‹ค.

๋ถ„๋ฅ˜

DNS ๋ ˆ๋ฒจ

๋„๋ฉ”์ธ์˜ A ๋ ˆ์ฝ”๋“œ์— ์—ฌ๋Ÿฌ IP๋ฅผ ๋งคํ•‘ํ•ด ํด๋ผ์ด์–ธํŠธ๊ฐ€ ๋ฐ›์•„๊ฐ€๋Š” IP๋ฅผ ๋ถ„์‚ฐ์‹œํ‚ค๋Š” ๋ฐฉ์‹. **DNS Round Robin (DNS RR)**์ด ๋Œ€ํ‘œ์ .

  • ๋ณ„๋„ Load Balancer ์—†์ด DNS๋งŒ์œผ๋กœ ๊ตฌ์„ฑ ๊ฐ€๋Šฅ.
  • ํ•œ๊ณ„:
    • ํ—ฌ์Šค์ฒดํฌ ๋ถ€์žฌ: ๋…ธ๋“œ 1๋Œ€๊ฐ€ ๋‹ค์šด๋ผ๋„ DNS๋Š” ๊ทธ IP๋ฅผ ๊ณ„์† ๋ฐ˜ํ™˜. ํด๋ผ์ด์–ธํŠธ๊ฐ€ ์ฃฝ์€ IP๋ฅผ ๋ฐ›์œผ๋ฉด ๊ทธ๋ƒฅ ์‹คํŒจ.
    • DNS ์บ์‹ฑ์œผ๋กœ ๋ถ„์‚ฐ ๋น„๊ท ๋“ฑ: TTL ๋™์•ˆ ๋™์ผ ํด๋ผ์ด์–ธํŠธ๊ฐ€ ๊ฐ™์€ IP์— ๋ฌถ์ž„.
    • ์ฆ‰๊ฐ์  failover ๋ถˆ๊ฐ€: DNS ๊ฐฑ์‹ ์ด TTL์— ๋ฌถ์—ฌ ์ฆ‰์‹œ์„ฑ์ด ์—†์Œ.
  • ๋ฐœ์ „ํ˜•: GSLB(Route 53 health check, NS1 ๋“ฑ)๋Š” DNS ์‘๋‹ต์„ ๋™์ ์œผ๋กœ ์กฐ์ •ํ•ด ํ—ฌ์Šค์ฒดํฌยท์ง€์—ญ๋ณ„ ๋ผ์šฐํŒ…์„ ์ฒ˜๋ฆฌํ•œ๋‹ค.

L4 (์ „์†ก ๊ณ„์ธต)

IP์™€ Port๋ฅผ ๊ธฐ์ค€์œผ๋กœ TCP/UDP ์—ฐ๊ฒฐ์„ ๋ถ„์‚ฐ. ์‘์šฉ ๊ณ„์ธต์˜ Payload๋ฅผ ํ•ด์„ํ•˜์ง€ ์•Š์œผ๋ฏ€๋กœ ๋น ๋ฅด๊ณ  ํ”„๋กœํ† ์ฝœ ์ค‘๋ฆฝ์ .

  • VIP(Virtual IP) + Failover: ์—ฌ๋Ÿฌ ๋…ธ๋“œ๊ฐ€ ํ•˜๋‚˜์˜ IP๋ฅผ ๊ณต์œ ํ•˜๊ณ , ์•กํ‹ฐ๋ธŒ ๋…ธ๋“œ๊ฐ€ ์ฃฝ์œผ๋ฉด ๋‹ค๋ฅธ ๋…ธ๋“œ๊ฐ€ ์ธ๊ณ„.
    • Keepalived / VRRP: ์ „ํ†ต์ ์ธ On-premise ํŒจํ„ด.
    • MetalLB: Bare-metal K8s์˜ ๋Œ€ํ‘œ ๊ตฌํ˜„. Layer 2 ๋ชจ๋“œ๋Š” ํ•œ ๋…ธ๋“œ๊ฐ€ VIP๋ฅผ ๊ด‘๊ณ ํ•˜๊ณ  ์žฅ์•  ์‹œ ๋‹ค๋ฅธ ๋…ธ๋“œ๊ฐ€ ์ธ๊ณ„ํ•œ๋‹ค. BGP ๋ชจ๋“œ๋Š” ์—ฌ๋Ÿฌ ๋…ธ๋“œ๊ฐ€ ๋™๋“ฑํ•œ ๊ฒฝ๋กœ๋ฅผ ๊ด‘๊ณ ํ•˜๊ณ , Multipath๋ฅผ ์ง€์›ํ•˜๋Š” ๋ผ์šฐํ„ฐ๊ฐ€ ECMP๋กœ ์—ฐ๊ฒฐ์„ ๋ถ„์‚ฐํ•œ๋‹ค.
    • kube-vip: ์ปจํŠธ๋กค ํ”Œ๋ ˆ์ธ VIPยทService VIP ๋ชจ๋‘ ์ฒ˜๋ฆฌ. ARP ๋˜๋Š” BGP ๊ธฐ๋ฐ˜.
  • IPVS / LVS: Linux ์ปค๋„ ๋ ˆ๋ฒจ L4 LB. K8s kube-proxy์˜ IPVS ๋ชจ๋“œ๋Š” 1.35๋ถ€ํ„ฐ Deprecated๋˜์—ˆ์œผ๋ฉฐ, ๊ธฐ์กด ํ™˜๊ฒฝ์„ ์‹๋ณ„ํ•˜๊ณ  ๋ฌธ์ œ๋ฅผ ์กฐ์‚ฌํ•  ์ •๋„๋กœ๋งŒ ์•Œ์•„๋‘๋ฉด ๋จ. ๋Œ€์ฒด์žฌ์ธ nftables ๋ชจ๋“œ๋Š” 1.33๋ถ€ํ„ฐ GA์ด๋ฉฐ, 1.37์—์„œ๋„ ๊ธฐ๋ณธ๊ฐ’์€ ์•„์ง iptables์ง€๋งŒ ํ–ฅํ›„ ๋ณ€๊ฒฝ์— ๋Œ€๋น„ํ•ด ๋ชจ๋“œ๋ฅผ ๋ช…์‹œํ•˜์ง€ ์•Š์œผ๋ฉด ๊ฒฝ๊ณ ํ•จ.
  • ํด๋ผ์šฐ๋“œ ๋งค๋‹ˆ์ง€๋“œ: AWS NLB, GCP Network LB, Azure LB. ํ—ฌ์Šค์ฒดํฌยท์ž๋™ failoverยท๊ณ ๊ฐ€์šฉ์„ฑ์„ ๋งค๋‹ˆ์ง€๋“œ๋กœ ์ œ๊ณต.

L7 (์‘์šฉ ๊ณ„์ธต)

HTTP ํ—ค๋”ยท๊ฒฝ๋กœยทํ˜ธ์ŠคํŠธ ๊ธฐ๋ฐ˜ ๋ผ์šฐํŒ…. URL/path/Host/Header ๋ฃฐ๋กœ ๋ฐฑ์—”๋“œ ์„ ํƒ.

  • ์†Œํ”„ํŠธ์›จ์–ด: NGINX, HAProxy, Envoy, Traefik.
  • K8s: Ingress Controller, Gateway API ๊ตฌํ˜„์ฒด(Envoy Gateway, Istio, NGINX Gateway Fabric, AGC ๋“ฑ).
  • ํด๋ผ์šฐ๋“œ ๋งค๋‹ˆ์ง€๋“œ: AWS ALB, GCP HTTP(S) LB, Azure Application Gateway.

์•Œ๊ณ ๋ฆฌ์ฆ˜

์•Œ๊ณ ๋ฆฌ์ฆ˜๋™์ž‘๋น„๊ณ 
Round Robin์ˆœ์„œ๋Œ€๋กœ ๋ฐฑ์—”๋“œ ์ˆœํ™˜๊ฐ€์žฅ ๋‹จ์ˆœ, ๋ฐฑ์—”๋“œ ๋™์งˆ ๊ฐ€์ •
Least Connectionsํ˜„์žฌ ์—ฐ๊ฒฐ ์ˆ˜ ๊ฐ€์žฅ ์ ์€ ๋ฐฑ์—”๋“œ์—ฐ๊ฒฐ ์‹œ๊ฐ„ ํŽธ์ฐจ ํด ๋•Œ ์œ ํšจ
Source IP Hashํด๋ผ์ด์–ธํŠธ IP ํ•ด์‹œ ๊ธฐ๋ฐ˜ ๊ณ ์ •sticky session ํšจ๊ณผ
Weighted๊ฐ€์ค‘์น˜ ๋น„๋ก€ ๋ถ„์‚ฐ๋ฐฑ์—”๋“œ ์‚ฌ์–‘ ์ฐจ์ด ๋ณด์ •
Consistent Hash / Maglev์š”์ฒญ ํ‚ค๋ฅผ ๊ธฐ์ค€์œผ๋กœ ๋ฐฑ์—”๋“œ ๊ณ ์ •๋…ธ๋“œ ์ถ”๊ฐ€ยท์‚ญ์ œ ์‹œ ์žฌํ• ๋‹น ์ตœ์†Œํ™”

ํ•ต์‹ฌ ๊ณ ๋ ค์‚ฌํ•ญ

  • ํ—ฌ์Šค์ฒดํฌ: ๋น„์ •์ƒ ๋ฐฑ์—”๋“œ๋ฅผ ๋ถ„์‚ฐ ๋Œ€์ƒ์—์„œ ์ œ์™ธํ•˜๊ฑฐ๋‚˜ failoverํ•˜๋Š” ๊ธฐ์ค€. ๋‹จ์ˆœ DNS RR์—๋Š” ์—†์ง€๋งŒ GSLB๋‚˜ Load Balancer๊ฐ€ ๋ณ„๋„๋กœ ์ œ๊ณตํ•  ์ˆ˜ ์žˆ์Œ.
  • ์„ธ์…˜ ์œ ์ง€(Sticky Session): ์ƒํƒœ ์žˆ๋Š” ๋ฐฑ์—”๋“œ๋ฅผ ์œ„ํ•œ ํด๋ผ์ด์–ธํŠธ-๋ฐฑ์—”๋“œ ๊ณ ์ •. cookie ๊ธฐ๋ฐ˜(L7) ๋˜๋Š” source IP hash(L4).
  • TLS ์ข…๋‹จ: L7 LB๋Š” ๋ณดํ†ต TLS termination์„ ๋‹ด๋‹น. ๋ฐฑ์—”๋“œ๊นŒ์ง€ TLS๋ฅผ ๋Œ๊ณ  ๊ฐˆ์ง€(end-to-end) ๊ฒฐ์ • ํ•„์š”.
  • PROXY protocol: L4 LB๊ฐ€ ํด๋ผ์ด์–ธํŠธ IP๋ฅผ ๋ฐฑ์—”๋“œ์— ์ „๋‹ฌํ•˜๋Š” ํ‘œ์ค€. NGINXยทHAProxy ๋ชจ๋‘ ์ง€์›.

๋ฌด์ค‘๋‹จ ์ด๊ด€ (Zero-downtime Migration)

Docker Compose โ†’ K8s์ฒ˜๋Ÿผ ์ธํ”„๋ผ์™€ Application์„ ์ด๊ด€ํ•  ๋•Œ์˜ ๊ธฐ๋ณธ ํŒจํ„ด.

Backend: DNS์™€ LB์˜ ์ „ํ™˜ ์ •๋ฐ€๋„

DNS ๊ฐ€์ค‘์น˜ ๋ผ์šฐํŒ…(Route 53 weighted ๋“ฑ)์œผ๋กœ๋„ ๊ตฌยท์‹  ํ™˜๊ฒฝ์„ ํ•จ๊ป˜ ์œ ์ง€ํ•˜๋ฉฐ ๋ฌด์ค‘๋‹จ ์ด๊ด€ํ•  ์ˆ˜ ์žˆ๋‹ค. ๋‹ค๋งŒ ResolverยทOSยทRuntime Cache ๋•Œ๋ฌธ์— ์„ค์ •ํ•œ Weight๊ฐ€ ์‹ค์ œ ์œ ์ž… ๋น„์œจ์— ์ •ํ™•ํžˆ ๋ฐ˜์˜๋˜์ง€ ์•Š๊ณ , ๋ชจ๋“  Client์˜ ์ „ํ™˜ ์‹œ์ ๋„ ํ†ต์ œํ•  ์ˆ˜ ์—†๋‹ค. DNS๋Š” ๋А์Šจํ•œ ์ ์ง„์  ์ด๊ด€์—๋Š” ์“ธ ์ˆ˜ ์žˆ์ง€๋งŒ ์ฆ‰์‹œ ์Šค์œ„์นญ๊ณผ Rollback์—๋Š” ์ ํ•ฉํ•˜์ง€ ์•Š๋‹ค.

์ •๋ฐ€ํ•œ ์ „ํ™˜์ด ํ•„์š”ํ•˜๋ฉด ๋‹จ์ผ LB ๋’ค์— ๊ตฌยท์‹  ๋ฐฑ์—”๋“œ ํ’€์„ ๋™์‹œ์— ๋“ฑ๋กํ•˜๊ณ  LB ๋ ˆ๋ฒจ์—์„œ ๊ฐ€์ค‘์น˜๋ฅผ ์กฐ์ ˆํ•œ๋‹ค.

  • Weight ๋ณ€๊ฒฝ์€ ์šด์˜์ž๋‚˜ ๋ฐฐํฌ Pipeline์ด ์„ค์ • ๋˜๋Š” API๋กœ ๋ช…์‹œ์ ์œผ๋กœ ์ˆ˜ํ–‰ํ•˜๋ฉฐ, LB๊ฐ€ ์‹œ๊ฐ„์— ๋”ฐ๋ผ ์ž๋™์œผ๋กœ ์ด๊ด€ํ•˜์ง€๋Š” ์•Š์Œ
  • ALB๋Š” Target Group ๋‚ด๋ถ€์˜ ๊ฐœ๋ณ„ Target์„ ์ž๋™์œผ๋กœ Health Checkํ•˜๊ณ , ๋“ฑ๋ก ํ•ด์ œ๋œ Target์˜ Connection์„ Draining
  • ํ•œ Weighted Target Group ์ „์ฒด๊ฐ€ ๋น„์ •์ƒ์ด ๋˜์–ด๋„ ๋‹ค๋ฅธ Group์œผ๋กœ Weight๋ฅผ ์ž๋™ ์ด์ „ํ•˜์ง€ ์•Š์œผ๋ฏ€๋กœ ๋ณ„๋„ ๊ฐ์‹œ์™€ Rollback์ด ํ•„์š”
  • ๋” ์ •๋ฐ€ํ•œ ์ œ์–ด๊ฐ€ ํ•„์š”ํ•˜๋ฉด Service Mesh(Istio) traffic split
  • DBยทSession Store๋Š” ๊ตฌยท์‹  ๋ฒ„์ „์ด ํ•จ๊ป˜ ๋™์ž‘ํ•˜๋„๋ก ํ˜ธํ™˜์„ฑ์„ ๋จผ์ € ํ™•๋ณด

Frontend: Hash ๊ธฐ๋ฐ˜ Cache Busting

Frontend์™€ API๋ฅผ ํ•จ๊ป˜ ๋ณ€๊ฒฝํ•˜๋ฉด ๋ธŒ๋ผ์šฐ์ €ยทCDN์— ๋‚จ์€ ์ด์ „ Bundle์ด ์ƒˆ API๋ฅผ ํ˜ธ์ถœํ•  ์ˆ˜ ์žˆ์œผ๋ฏ€๋กœ, API ํ•˜์œ„ ํ˜ธํ™˜์„ฑ๊ณผ Cache ๊ฐฑ์‹ ์„ ํ•จ๊ป˜ ์„ค๊ณ„ํ•ด์•ผ ํ•œ๋‹ค.

๊ธฐ๋ณธ ํŒจํ„ด์€ ๋ฒˆ๋“ค ํŒŒ์ผ๋ช…์— contenthash๋ฅผ ๋ฐ•์•„ ์ƒˆ ๋ฒ„์ „์„ ์ƒˆ ํŒŒ์ผ๋กœ ๋งŒ๋“ค๊ณ , HTML๋งŒ ์งง์€ TTL/no-cache๋กœ ๋‘๋Š” ๊ฒƒ์ด๋‹ค.

  • app.[contenthash].js โ€” ๋‚ด์šฉ ๊ฐ™์œผ๋ฉด ํŒŒ์ผ๋ช… ๋™์ผ, CDN immutable ์บ์‹ฑ ์ ๊ทน ํ™œ์šฉ
  • HTML์€ ๋งค๋ฒˆ fresh fetch โ†’ ๊ทธ ์•ˆ์˜ ์ƒˆ hash ๋ฒˆ๋“ค ์ฐธ์กฐ
  • SPA์— Service Worker๊ฐ€ ์žˆ์œผ๋ฉด ๋ณ„๋„์˜ ๊ฐฑ์‹  ์ •์ฑ…์ด ํ•„์š”. skipWaiting๊ณผ clients.claim์€ ์ƒˆ Worker๋ฅผ ์ฆ‰์‹œ ํ™œ์„ฑํ™”ํ•˜๋ฏ€๋กœ ๊ธฐ์กด Page์™€์˜ ํ˜ธํ™˜์„ฑ ๋˜๋Š” ์ƒˆ๋กœ๊ณ ์นจ ํ๋ฆ„์„ ํ•จ๊ป˜ ์„ค๊ณ„

๊ฒฝํ—˜ ํšŒ๊ณ 

SK hynix On-premise (2021~2024)

๊นกํ†ต ํ”„๋ก์‹œ ๋…ธ๋“œ 3๋Œ€๋ฅผ ๋‘๊ณ , ๋„๋ฉ”์ธ์˜ A ๋ ˆ์ฝ”๋“œ๋ฅผ 3๊ฐœ IP์— ๋งคํ•‘ํ•˜์—ฌ ํŠธ๋ž˜ํ”ฝ์„ ๋ถ„์‚ฐํ–ˆ๋‹ค. ํ”„๋ก์‹œ ๋…ธ๋“œ๋Š” ๋ฐฑ์—”๋“œ๋กœ ํฌ์›Œ๋”ฉ๋งŒ ๋‹ด๋‹น.

  • ํด๋ผ์šฐ๋“œ LB๋„ K8s MetalLB/kube-vip๋„ ์—†๋Š” ์ตœ์†Œ ๊ตฌํ˜„์ด์—ˆ๋‹ค.
  • ์ง€๊ธˆ์ด๋ผ๋ฉด: ๋„คํŠธ์›Œํฌ ํ™˜๊ฒฝ์— ๋”ฐ๋ผ MetalLB ๋˜๋Š” kube-vip๋กœ VIP Failover๋ฅผ ์ž๋™ํ™”ํ•  ์˜์—ญ์ด๋‹ค.

์ฐธ๊ณ  ์ž๋ฃŒ