Search
Duplicate

L4 vs L7 Load Balancer

νƒœκ·Έ
1 more property

λ‘œλ“œλ°ΈλŸ°μ„œλž€?

λ‘œλ“œλ°ΈλŸ°μ„œλŠ” μ„œλ²„μ— κ°€ν•΄μ§€λŠ” λΆ€ν•˜(=λ‘œλ“œ)λ₯Ό λΆ„μ‚°(=λ°ΈλŸ°μ‹±)ν•΄μ£ΌλŠ” μž₯치 λ˜λŠ” κΈ°μˆ μ„ ν†΅μΉ­ν•œλ‹€. ν΄λΌμ΄μ–ΈνŠΈμ™€ μ„œλ²„ν’€(Server Pool, λΆ„μ‚° λ„€νŠΈμ›Œν¬λ₯Ό κ΅¬μ„±ν•˜λŠ” μ„œλ²„λ“€μ˜ κ·Έλ£Ή) 사이에 μœ„μΉ˜ν•˜λ©°,Β ν•œ λŒ€μ˜ μ„œλ²„λ‘œ λΆ€ν•˜κ°€ μ§‘μ€‘λ˜μ§€ μ•Šλ„λ‘ νŠΈλž˜ν”½μ„ 관리해 각각의 μ„œλ²„κ°€ 졜적의 퍼포먼슀λ₯Ό 보일 수 μžˆλ„λ‘Β ν•œλ‹€. λ§Œμ•½ Scale-out의 λ°©μ‹μœΌλ‘œ μ„œλ²„λ₯Ό μ¦μ„€ν•˜κΈ°λ‘œ κ²°μ •ν–ˆλ‹€λ©΄ μ—¬λŸ¬ λŒ€μ˜ μ„œλ²„λ‘œ νŠΈλž˜ν”½μ„ κ· λ“±ν•˜κ²Œ λΆ„μ‚°ν•΄μ£ΌλŠ” λ‘œλ“œλ°ΈλŸ°μ‹±μ΄ λ°˜λ“œμ‹œ ν•„μš”ν•˜λ‹€.

OSI 7 κ³„μΈ΅μ΄λž€?

λ„€νŠΈμ›Œν¬ 톡신 μ‹œμŠ€ν…œμ€ 크게 일곱 κ°€μ§€μ˜ 계측(OSI 7 layers, κ°œλ°©ν˜• 톡신을 μœ„ν•œ ꡭ제 ν‘œμ€€ λͺ¨λΈ)으둜 λ‚˜λ‰œλ‹€. 각각의 계측(Layer)이 L1/L2/L3β€₯β€₯L7에 ν•΄λ‹Ήν•œλ‹€.
μƒμœ„ κ³„μΈ΅μ—μ„œ μ‚¬μš©λ˜λŠ” μž₯λΉ„λŠ” ν•˜μœ„ κ³„μΈ΅μ˜ μž₯λΉ„κ°€ κ°–κ³  μžˆλŠ” κΈ°λŠ₯을 λͺ¨λ‘ 가지고 있으며
, μƒμœ„ κ³„μΈ΅μœΌλ‘œ 갈수둝 λ”μš± μ •κ΅ν•œ λ‘œλ“œλ°ΈλŸ°μ‹±μ΄ κ°€λŠ₯ν•˜λ‹€.
각 계측에 ν•΄λ‹Ήν•˜λŠ” λŒ€ν‘œμ μΈ ν”„λ‘œν† μ½œ

L4(Transport Layer)?

주둜 Round Robin 방식을 μ‚¬μš©ν•˜λ©°,Β λ„€νŠΈμ›Œν¬ 계측(IP, IPX)μ΄λ‚˜ 트랜슀포트 계측(TCP, UDP)의 정보λ₯Ό λ°”νƒ•μœΌλ‘œ λ‘œλ“œλ₯Ό λΆ„μ‚°μ‹œν‚¨λ‹€.

L7(Application Layer)?

μ• ν”Œλ¦¬μΌ€μ΄μ…˜ 계측(HTTP, FTP, SMTP)μ—μ„œ λ‘œλ“œλ₯Ό λΆ„μ‚°ν•˜κΈ° λ•Œλ¬Έμ— HTTP 헀더, μΏ ν‚€ λ“±κ³Ό 같은 μ‚¬μš©μžμ˜ μš”μ²­μ„ κΈ°μ€€μœΌλ‘œ νŠΉμ • μ„œλ²„μ— νŠΈλž˜ν”½μ„ λΆ„μ‚°ν•˜λŠ” 것이 κ°€λŠ₯ν•˜λ‹€.
μ‰½κ²Œ λ§ν•΄Β νŒ¨ν‚·μ˜ λ‚΄μš©μ„ ν™•μΈν•˜κ³  κ·Έ λ‚΄μš©μ— 따라 λ‘œλ“œλ₯Ό νŠΉμ • μ„œλ²„μ— λΆ„λ°°ν•˜λŠ” 것이 κ°€λŠ₯ν•œ 것이닀. μœ„ κ·Έλ¦Όκ³Ό 같이 URL에 따라 λΆ€ν•˜λ₯Ό λΆ„μ‚°μ‹œν‚€κ±°λ‚˜, HTTP ν—€λ”μ˜ 쿠킀값에 따라 λΆ€ν•˜λ₯Ό λΆ„μ‚°ν•˜λŠ” λ“±Β ν΄λΌμ΄μ–ΈνŠΈμ˜ μš”μ²­μ„ 보닀 μ„ΈλΆ„ν™”ν•΄ μ„œλ²„μ— 전달할 수 μžˆλ‹€.
λ˜ν•œ L7 λ‘œλ“œλ°ΈλŸ°μ„œμ˜ 경우 νŠΉμ •ν•œ νŒ¨ν„΄μ„ μ§€λ‹Œ λ°”μ΄λŸ¬μŠ€λ₯Ό 감지해 λ„€νŠΈμ›Œν¬λ₯Ό λ³΄ν˜Έν•  수 있으며, DoS/DDoS와 같은 비정상적인 νŠΈλž˜ν”½μ„ 필터링할 수 μžˆμ–΄Β λ„€νŠΈμ›Œν¬ λ³΄μ•ˆ λΆ„μ•Όμ—μ„œλ„ ν™œμš©λœλ‹€.
μ•„λž˜μ˜ ν‘œλ₯Ό 톡해 L4 λ‘œλ“œλ°ΈλŸ°μ„œμ™€ L7 λ‘œλ“œλ°ΈλŸ°μ„œλ₯Ό ν•œ λˆˆμ— 비ꡐ해볼 수 μžˆλ‹€.

λ‘œλ“œλ°ΈλŸ°μ„œ μ•Œκ³ λ¦¬μ¦˜?

β€’
Round Robin(μˆœμ°¨λ°©μ‹): μš”μ²­μ„ μˆœμ„œλŒ€λ‘œ 각 μ„œλ²„μ— κ· λ“±ν•˜κ²Œ λΆ„λ°°ν•˜λŠ” λ°©μ‹μ„œλ²„ 컀λ„₯μ…˜ μˆ˜λ‚˜ μ‘λ‹΅μ‹œκ°„μ— 상관없이 λͺ¨λ“  μ„œλ²„λ₯Ό λ™μΌν•˜κ²Œ 처리, λ‹€λ₯Έ μ•Œκ³ λ¦¬μ¦˜μ— λΉ„ν•΄μ„œ κ°€μž₯ λΉ λ₯΄λ‹€
β€’
IP ν•΄μ‹œ 방식(IP Hash Method)ν΄λΌμ΄μ–ΈνŠΈμ˜ IP μ£Όμ†Œλ₯Ό νŠΉμ • μ„œλ²„λ‘œ λ§€ν•‘ν•˜μ—¬ μš”μ²­μ„ μ²˜λ¦¬ν•˜λŠ” 방식, μ‚¬μš©μžμ˜ IPλ₯Ό ν•΄μ‹±ν•΄(Hashing, μž„μ˜μ˜ 길이λ₯Ό μ§€λ‹Œ 데이터λ₯Ό κ³ μ •λœ 길이의 λ°μ΄ν„°λ‘œ λ§€ν•‘ν•˜λŠ” 것, λ˜λŠ” κ·ΈλŸ¬ν•œ ν•¨μˆ˜) λ‘œλ“œλ₯Ό λΆ„λ°°ν•˜κΈ° λ•Œλ¬Έμ— μ‚¬μš©μžκ°€ 항상 λ™μΌν•œ μ„œλ²„λ‘œ μ—°κ²°λ˜λŠ” 것을 보μž₯ν•œλ‹€.
β€’
Least Connection(μ΅œμ†Œμ ‘μ†λ°©μ‹): μ„œλ²„μ— μ—°κ²°λ˜μ–΄ μžˆλŠ” Connection 개수만 κ°–κ³  λ‹¨μˆœλΉ„κ΅ν•˜μ—¬ κ°€μž₯ 적은곳에 μ—°κ²°
β€’
Weighted Least Connections(κ°€μ€‘μΉ˜ μ΅œμ†Œμ ‘μ†λ°©μ‹): μ„œλ²„μ— λΆ€μ—¬λœ Weight 값을 기반으둜 Connection 수의 κ°œμˆ˜μ™€ 같이 κ³ λ €ν•˜μ—¬ ν• λ‹Ή
β€’
Fastest Response Time(μ‘λ‹΅μ‹œκ°„λ°©μ‹): κ°€μž₯ 빨리 μ‘λ‹΅ν•˜λŠ” μ„œλ²„μ— 이용자 μš”κ΅¬λ₯Ό μ—°κ²°ν•˜λŠ” 방법. μ‘λ‹΅μ‹œκ°„μ€ 각 μ„œλ²„κ°€ νŒ¨ν‚· ν˜•νƒœμ˜ μš”κ΅¬λ₯Ό μ†‘μˆ˜μ‹ ν•˜λŠ”λ° κ±Έλ¦¬λŠ” μ‹œκ°„μ„ μΈ‘μ •ν•œ 것이닀.
β€’
Adaptive(μ΅œμ†ŒλŒ€κΈ°λ°©μ‹): Openλ˜λŠ” Pending(계λ₯˜μ€‘인) 컀λ„₯μ…˜μ„ 적게 가지고 μžˆλŠ” μ„œλ²„λ‘œ λ„€νŠΈμ› 컀λ„₯μ…˜ λ°©ν–₯을 μ§€μ •ν•œλ‹€. Pending 컀λ„₯μ…˜μ€ Full TCP Handshakeλ₯Ό μ™„μ„±ν•˜μ§€ μ•Šμ€ κ²ƒμœΌλ‘œ, 이것은 μ΄ˆλ‹Ή ν΄λΌμ΄μ–ΈνŠΈ Thread의 μˆ˜κ°€ 증가할 λ•Œ λ”μš± 잘 μˆ˜ν–‰λœλ‹€.