Load Balancer
λ‘λ λ°Έλ°μ±
μ¬λ¬ μλ²λ€λ‘ λ€νΈμν¬ νΈλν½μ λΆμ° μ²λ¦¬νλ κΈ°μ μ λ‘λ λ°Έλ°μ±μ΄λΌκ³ νλ€. νΈλν½μΌλ‘ μΈν΄ μλ²μ λΆνκ° μκΈΈ κ²½ν μ²λ¦¬νλ λ°©λ²μ΄ λκ°μ§κ° μ‘΄μ¬νλ€.
- Scale-up : μλ²μ μ±λ₯μ λμ΄λ λ°©λ²
- Scale-out : μ¬λ¬ κ°μ μλ²λ₯Ό λλ λ°©λ²
λ‘λ λ°Έλ°μ±μ Scale-outμ μ¬μ©λλ©°, νΈλν½ μ²λ¦¬λ₯Ό μν΄ μμ±λ μ¬λ¬ κ°μ μλ²μ νΈλν½μ λΆμ°νμ¬ νΈλν½μ μ²λ¦¬νλ€.
λ‘λ λ°Έλ°μ
μ΄λ¬ν λ‘λ λ°Έλ°μ± κΈ°μ μ μ 곡νλ μλΉμ€ λλ μ₯μΉλ₯Ό λ‘λ λ°Έλ°μλΌκ³ νλ€. λ‘λ λ°Έλ°μλ μλΈλ€ μ¬μ΄μ μμΉνλ©° VIPμ ν¨κ» ꡬμ±λλ€.
VIP (Virtual IP)
λ‘λ λ°Έλ°μ±μ λμμ΄ λλ μ¬λ¬ μλ²λ₯Ό λννλ κ°μμ IPμ΄λ€. ν΄λΌμ΄μΈνΈλ€μ μλ²μ IPλ‘ μ§μ μμ²μ νλ κ²μ΄ μλλΌ λ‘λ λ°Έλ°μλ₯Ό κ°μ§κ³ μλ VIPμ μμ²νλ€. κ·Έλ¦¬κ³ λ‘κ·Έ λ°Έλ°μλ₯Ό ν΄λΉ μμ²μ λΆμ°λ μλ²μ μ€μ λ λ°©λ²μ λ°λΌ λΆμ°νλ€.
L4
μ μ
IP, Port κ·Έλ¦¬κ³ TCP/DUPμ κ°μ OSI 7 κ³μΈ΅ μ€ 4κ³μΈ΅μΈ μ μ‘ κ³μ μ μ 보λ₯Ό κΈ°λ°μΌλ‘ νΈλν½μ λΆμ°νλ€. L4λ ν¨ν·μμ HTTP λ΄μ©μ μ½μ§ μλλ€.
λμ μ리
TCP μ°κ²°μ΄ ν΄λΌμ΄μΈνΈλ‘ λΆν° λ€μ΄μ€λ©΄ λ‘λ λ°Έλ°μλ μλμ κ°μ μ 보λ₯Ό νμΈνλ€.
- Source IP
- Destination IP
- Source Port
- Destination Port
- Protocol(TCP/UDP)
μ΄ν, λ‘λ λ°Έλ°μμ μ€μ μ λ°λΌ μμ²μ μ μ ν μλ²μ μ λ¬νλ€. μ΄λ, μλ²λ HTTP μμ²μμ μ΄λ€ HTTP λ©μλλ₯Ό μ¬μ©νλμ§ κ·Έλ¦¬κ³ μ΄λ€ URLμΌλ‘ μμ²μ νλμ§ λͺ¨λ₯Έλ€.
μ₯λ¨μ
- μ₯μ
- ν¨ν· λ 벨μμλ§ λ‘λλ₯Ό λΆμ°νκΈ° λλ¬Έμ λ§€μ° λΉ λ₯΄λ€
- μ²λ¦¬λμ΄ ν¬λ€
- CPU μ¬μ©λμ΄ μ λ€
- TCP/UDP λͺ¨λ κ°λ₯νλ€
- λ¨μ
- URL κΈ°λ° λΆκΈ°κ° λΆκ°λ₯νλ€
- Header νμΈμ΄ λΆκ°λ₯νλ€
- Cookie νμΈμ΄ λΆκ°λ₯νλ€
L7
μ μ
OSI 7κ³μΈ΅μ μ 보(HTTP, HTTPS, gRPC, REST API)λ±μ λ°μ΄ν°λ₯Ό κΈ°λ°μΌλ‘ νΈλν½μ λΆμ°νλ€. L4μμ νμΈνμ§ μλ HTTP λ©μλμ URLκΉμ§ νμΈνλ€.
λμ μ리
ν΄λΌμ΄μΈνΈκ° μλμ κ°μ μμ²μ 보λΈλ€.
GET /login HTTP/1.1
Host: example.com
L7 λ‘λ λ°Έλ°μλ ν΄λΉ μμ²μ λ°μ μλμ λ°μ΄ν°λ₯Ό λΆμνλ€.
- Method : GET
- URL : /login
- HOST : example.com
- Cookie, Header, User-Agnet λ±
κ·Έλ¦¬κ³ κ·μΉμ λ°λΌ μμ²μ μλ²μ λΆμ°νλ€.
- /login β Auth Server
- /image β Image Server
μ₯λ¨μ
- μ₯μ
- μμ κ³μΈ΅μμ λ‘λλ₯Ό λΆμ°νκΈ° λλ¬Έμ μ¬μΈν λΌμ°ν μ΄ κ°λ₯νλ€
- μΊμ± κΈ°λ₯μ μ 곡νλ€
- λΉμ μμ μΈ νΈλν½μ μ¬μ μ νν°λ§ν μ μμ΄ μλΉμ€ μμ μ±μ΄ λλ€
- λ¨μ
- ν¨ν·μ λ΄μ©μ 볡νΈνν΄μΌνκΈ° λλ¬Έμ λΉμ©μ΄ λ°μνλ€
μκ³ λ¦¬μ¦
- Round Robin : μμ²μ μμλλ‘ κ° μλ²μ κ· λ±νκ² λΆλ°°νλ€
- IP Hash Method : ν΄λΌμ΄μΈνΈμ IPλ₯Ό ν΄μ±ν΄ λ‘λλ₯Ό λΆλ°°νλ€
- Least Connection : μλ²μ μ°κ²°λμ΄ μλ 컀λ₯μ κ°μλ§ κ°κ³ λ¨μλΉκ΅νμ¬ κ°μ₯ μ μ κ³³μ μ λ¬νλ€
- Weight Least Connections : μλ²μ λΆμ¬λ κ°μ€μΉ κ°μ κΈ°λ°μΌλ‘ 컀λ₯μ μμ κ°μμ κ°μ΄ κ³ λ €νμ¬ ν λΉνλ€
- Fastest Response Time : κ°μ₯ 빨리 μλ΅νλ μλ²μ μμ²μ μ°κ²°νλ λ°©λ²μ΄λ€
- Bandwidth : μλ²λ€κ³Όμ λμνμ κ³ λ €νμ¬ μλ²μ λΆμ°νλ€
μ°Έκ³ μλ£
L4/L7 λ‘λλ°Έλ°μ± μ½κ² μ΄ν΄νκΈ°
[λ] L4 load balancer vs L7 load balancer λ?
[λ€νΈμν¬] λ‘λλ°Έλ°μμ κΈ°λ³Έ (L4 λ‘λλ°Έλ°μ L7 λ‘λλ°Έλ°μ) (AWS ELB, NLB, ALB)