์ฌ๋ฌ ๋ฐฑ์๋์ ํธ๋ํฝ์ ๋ถ์ฐํ๋ ๋ฉ์ปค๋์ฆ. ์ด๋ ๊ณ์ธต์์ ๋ถ์ฐํ๋๋(DNS / L4 / L7), VIP๋ฅผ ์ด๋ป๊ฒ ๋์ฐ๋๋(๊ณ ์ IP / VRRP / BGP), ํฌ์ค์ฒดํฌยทfailover๋ฅผ ์ด๋์ ์ฒ๋ฆฌํ๋๋๊ฐ ์ค๊ณ ์ถ์ด๋ค.
๋ถ๋ฅ
DNS ๋ ๋ฒจ
๋๋ฉ์ธ์ A ๋ ์ฝ๋์ ์ฌ๋ฌ IP๋ฅผ ๋งคํํด ํด๋ผ์ด์ธํธ๊ฐ ๋ฐ์๊ฐ๋ IP๋ฅผ ๋ถ์ฐ์ํค๋ ๋ฐฉ์. **DNS Round Robin (DNS RR)**์ด ๋ํ์ .
- ๊ฐ์ฅ ์์์ ์ด๊ณ ์ธ๋ถ ์์กด์ฑ ์์.
- ํ๊ณ:
- ํฌ์ค์ฒดํฌ ๋ถ์ฌ: ๋ ธ๋ 1๋๊ฐ ๋ค์ด๋ผ๋ DNS๋ ๊ทธ IP๋ฅผ ๊ณ์ ๋ฐํ. ํด๋ผ์ด์ธํธ๊ฐ ์ฃฝ์ IP๋ฅผ ๋ฐ์ผ๋ฉด ๊ทธ๋ฅ ์คํจ.
- DNS ์บ์ฑ์ผ๋ก ๋ถ์ฐ ๋น๊ท ๋ฑ: TTL ๋์ ๋์ผ ํด๋ผ์ด์ธํธ๊ฐ ๊ฐ์ IP์ ๋ฌถ์.
- ๋์ failover ๋ถ๊ฐ: DNS ๊ฐฑ์ ์ด TTL์ ๋ฌถ์ฌ ์ฆ์์ฑ์ด ์์.
- ๋ฐ์ ํ: GSLB(Route 53 health check, NS1 ๋ฑ)๋ DNS ์๋ต์ ๋์ ์ผ๋ก ์กฐ์ ํด ํฌ์ค์ฒดํฌยท์ง์ญ๋ณ ๋ผ์ฐํ ์ ์ฒ๋ฆฌํ๋ค.
L4 (์ ์ก ๊ณ์ธต)
IP/TCP/UDP ๋ ๋ฒจ์์ ๋ถ์ฐ. ํ์ด๋ก๋๋ฅผ ๋ณด์ง ์์ผ๋ฏ๋ก ๋น ๋ฅด๊ณ ํ๋กํ ์ฝ ์ค๋ฆฝ์ .
- VIP(Virtual IP) + Failover: ์ฌ๋ฌ ๋
ธ๋๊ฐ ํ๋์ IP๋ฅผ ๊ณต์ ํ๊ณ , ์กํฐ๋ธ ๋
ธ๋๊ฐ ์ฃฝ์ผ๋ฉด ๋ค๋ฅธ ๋
ธ๋๊ฐ ์ธ๊ณ.
- Keepalived / VRRP: ์ ํต์ ์ธ On-premise ํจํด.
- MetalLB Layer 2 / BGP ๋ชจ๋: On-premise K8s ํ๊ฒฝ์์ ์ฌ์ค์ ํ์ค. BGP ๋ชจ๋๋ ๋ผ์ฐํฐ์ BGP ํผ์ด๋งํ์ฌ ECMP๋ก ๋ถ์ฐ๊น์ง ์ฒ๋ฆฌ.
- kube-vip: ์ปจํธ๋กค ํ๋ ์ธ VIPยทService VIP ๋ชจ๋ ์ฒ๋ฆฌ. ARP ๋๋ BGP ๊ธฐ๋ฐ.
- IPVS / LVS: Linux ์ปค๋ ๋ ๋ฒจ L4 LB. K8s
kube-proxy์ ipvs ๋ชจ๋๋ ๊ฐ์ ๊ธฐ์ . - ํด๋ผ์ฐ๋ ๋งค๋์ง๋: 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 | ๊ฐ์ค์น ๋น๋ก ๋ถ์ฐ | ๋ฐฑ์๋ ์ฌ์ ์ฐจ์ด ๋ณด์ |
| Maglev / EH | ์ผ๊ด์ฑ ํด์ฑ ๊ธฐ๋ฐ (Google) | ๋ ธ๋ ์ถ๊ฐยท์ญ์ ์ ์ฌํ ๋น ์ต์ํ |
ํต์ฌ ๊ณ ๋ ค์ฌํญ
- ํฌ์ค์ฒดํฌ: ๋ชจ๋ LB์ ๊ฐ์ฅ ์ค์ํ ๊ธฐ๋ฅ. DNS RR์ด ๊ฐ์ฅ ์ฝํจ, ํด๋ผ์ฐ๋ LB๊ฐ ๊ฐ์ฅ ๊ฐํจ.
- ์ธ์ ์ ์ง(Sticky Session): ์ํ ์๋ ๋ฐฑ์๋๋ฅผ ์ํ ํด๋ผ์ด์ธํธ-๋ฐฑ์๋ ๊ณ ์ . cookie ๊ธฐ๋ฐ(L7) ๋๋ source IP hash(L4).
- TLS ์ข ๋จ: L7 LB๋ ๋ณดํต TLS termination์ ๋ด๋น. ๋ฐฑ์๋๊น์ง TLS๋ฅผ ๋๊ณ ๊ฐ์ง(end-to-end) ๊ฒฐ์ ํ์.
- PROXY protocol: L4 LB๊ฐ ํด๋ผ์ด์ธํธ IP๋ฅผ ๋ฐฑ์๋์ ์ ๋ฌํ๋ ํ์ค. NGINXยทHAProxy ๋ชจ๋ ์ง์.
๊ฒฝํ ํ๊ณ
SK hynix On-premise (2021~2024)
๊นกํต ํ๋ก์ ๋ ธ๋ 3๋๋ฅผ ๋๊ณ , ๋๋ฉ์ธ์ A ๋ ์ฝ๋๋ฅผ 3๊ฐ IP์ ๋งคํํ์ฌ ํธ๋ํฝ์ ๋ถ์ฐํ๋ค. ํ๋ก์ ๋ ธ๋๋ ๋ฐฑ์๋๋ก ํฌ์๋ฉ๋ง ๋ด๋น.
- ํด๋ผ์ฐ๋ LB๋ K8s MetalLB/kube-vip๋ ์๋ ์ต์ ๊ตฌํ์ด์๋ค.
- ์ง๊ธ์ด๋ผ๋ฉด: MetalLB BGP ๋๋ kube-vip๋ก VIP failover๊น์ง ์๋ํํ ์์ญ์ด๋ค.