🌐 λ‘œλ“œ λ°ΈλŸ°μ‹± μ™„λ²½ 정리

Minseo LimΒ·2025λ…„ 3μ›” 20일

πŸ“Œ 1. λ‘œλ“œ λ°ΈλŸ°μ‹±μ„ μ™œ μ‚¬μš©ν• κΉŒ?

μΈν„°λ„·μ˜ λ°œλ‹¬λ‘œ μ„œλΉ„μŠ€ μ΄μš©μžκ°€ ν­μ¦ν•˜λ©΄μ„œ μ„œλ²„μ— κ°€ν•΄μ§€λŠ” νŠΈλž˜ν”½λ„ κΈ‰κ²©νžˆ μ¦κ°€ν–ˆλ‹€.
단일 μ„œλ²„μ˜ μ„±λŠ₯을 아무리 높여도 κ³Όλ„ν•œ νŠΈλž˜ν”½μ„ κ°λ‹Ήν•˜λŠ” λ°μ—λŠ” ν•œκ³„κ°€ μžˆλ‹€...
이λ₯Ό ν•΄κ²°ν•˜κΈ° μœ„ν•΄ μ—¬λŸ¬ λŒ€μ˜ μ„œλ²„λ‘œ νŠΈλž˜ν”½μ„ λΆ„μ‚°ν•˜λŠ” 기술이 ν•„μš”ν•˜λ©°, λ°”λ‘œ λ‘œλ“œ λ°ΈλŸ°μ‹±μ΄ κ·Έ ν•΄κ²°μ±…μœΌλ‘œ λ“±μž₯ν–ˆλ‹€.


πŸ“Œ 2. λ‘œλ“œ λ°ΈλŸ°μ‹±μ΄λž€?

λ‘œλ“œ λ°ΈλŸ°μ‹±μ€ λ„€νŠΈμ›Œν¬ λ˜λŠ” μ„œλ²„μ— κ°€ν•΄μ§€λŠ” λΆ€ν•˜(νŠΈλž˜ν”½)λ₯Ό μ—¬λŸ¬ μ„œλ²„μ— κ· λ“±ν•˜κ²Œ λΆ„μ‚°μ‹œμΌœ μ‹œμŠ€ν…œ μ„±λŠ₯을 μœ μ§€ν•˜κ³  μ•ˆμ •μ„±μ„ λ†’μ΄λŠ” 기술.

βœ… 핡심 λͺ©μ 
β€’ μ„œλ²„ κ³ΌλΆ€ν•˜ λ°©μ§€
β€’ μ„œλΉ„μŠ€ μ•ˆμ •μ„± ν–₯상
β€’ μ‹œμŠ€ν…œ ν™•μž₯μ„± 확보


πŸ“Œ 3. μ„œλ²„ ν™•μž₯ 방식: Scale Up vs Scale Out

πŸ”Ž 3.1 Scale Up (수직 ν™•μž₯)

β€’ μ •μ˜: κΈ°μ‘΄ μ„œλ²„μ˜ CPU, λ©”λͺ¨λ¦¬, λ””μŠ€ν¬ λ“±μ˜ 사양을 μ—…κ·Έλ ˆμ΄λ“œν•˜λŠ” 방식

βœ… μž₯점
β€’ 단일 μ‹œμŠ€ν…œμœΌλ‘œ 관리가 κ°„νŽΈν•¨
β€’ μ½”λ“œ λ³€κ²½ 없이 μ„±λŠ₯ κ°œμ„  κ°€λŠ₯

❌ 단점
β€’ ν•˜λ“œμ›¨μ–΄ μ—…κ·Έλ ˆμ΄λ“œ ν•œκ³„ 쑴재
β€’ λΉ„μš© 증가 폭이 큼
β€’ μž₯μ•  λ°œμƒ μ‹œ μ„œλΉ„μŠ€ 전체가 λ‹€μš΄λ  μœ„ν—˜


πŸ”Ž 3.2 Scale Out (μˆ˜ν‰ ν™•μž₯)

β€’ μ •μ˜: μ„œλ²„μ˜ 개수λ₯Ό μΆ”κ°€ν•˜μ—¬ μ—¬λŸ¬ λŒ€μ˜ μ„œλ²„κ°€ λΆ€ν•˜λ₯Ό λ‚˜λˆ„μ–΄ μ²˜λ¦¬ν•˜λ„λ‘ ν•˜λŠ” 방식

βœ… μž₯점
β€’ 무쀑단 μ„œλΉ„μŠ€ κ΅¬ν˜„ κ°€λŠ₯
β€’ νŠΈλž˜ν”½ 증가에 μœ μ—°ν•˜κ²Œ λŒ€μ‘
β€’ μž₯μ•  μ‹œμ—λ„ 일뢀 μ„œλ²„λ§Œ 영ν–₯λ°›μŒ

❌ 단점
β€’ μ„œλ²„ κ°„ 데이터 일관성 μœ μ§€ 어렀움
β€’ λ‘œλ“œ λ°ΈλŸ°μ„œ ν•„μš”
β€’ λ³΅μž‘ν•œ μ‹œμŠ€ν…œ 관리 ν•„μš”


πŸ“Œ 4. λ‘œλ“œ λ°ΈλŸ°μ„œμ˜ μ •μ˜μ™€ μ—­ν• , μ’…λ₯˜

πŸ”Ž λ‘œλ“œ λ°ΈλŸ°μ„œλž€?
β€’ ν΄λΌμ΄μ–ΈνŠΈμ™€ μ„œλ²„(Pool) μ‚¬μ΄μ—μ„œ νŠΈλž˜ν”½μ„ μ—¬λŸ¬ μ„œλ²„μ— κ³ λ₯΄κ²Œ λΆ„μ‚°ν•˜λŠ” ν•˜λ“œμ›¨μ–΄ λ˜λŠ” μ†Œν”„νŠΈμ›¨μ–΄
β€’ νŠΉμ • μ„œλ²„κ°€ κ³ΌλΆ€ν•˜λ˜μ§€ μ•Šλ„λ‘ λΆ€ν•˜λ₯Ό μ‘°μ ˆν•˜λ©° μ„œλΉ„μŠ€μ˜ μ•ˆμ •μ„±μ„ 보μž₯

βœ… λ‘œλ“œ λ°ΈλŸ°μ„œμ˜ μ£Όμš” μ—­ν• 
β€’ νŠΈλž˜ν”½ κ· λ“± λΆ„μ‚°
β€’ μ„œλ²„ μƒνƒœ λͺ¨λ‹ˆν„°λ§ (비정상 μ„œλ²„λ‘œ νŠΈλž˜ν”½ 전달 λ°©μ§€)
β€’ 무쀑단 배포 지원 (μ„œλ²„ μΆ”κ°€Β·μ œκ±° μ‹œ μ„œλΉ„μŠ€ 쀑단 λ°©μ§€)


πŸ”Ž 4.1 L4 Load Balancer (전솑 계측 기반)

β€’ νŠΉμ§•: OSI 7계측 쀑 4계측(전솑 계측)μ—μ„œ λ™μž‘ν•˜λ©°, IP μ£Όμ†Œμ™€ 포트 번호λ₯Ό κΈ°μ€€μœΌλ‘œ νŠΈλž˜ν”½μ„ λΆ„μ‚°
β€’ μž₯점: λΉ λ₯Έ 처리 속도, λ„€νŠΈμ›Œν¬ μ„±λŠ₯에 μ΅œμ ν™”
β€’ 단점: νŒ¨ν‚·μ˜ λ‚΄μš© 뢄석 λΆˆκ°€ (HTTP 헀더, μΏ ν‚€ 기반 λΌμš°νŒ… λΆˆκ°€)

βœ… μ‚¬μš© μ˜ˆμ‹œ
β€’ TCP, UDP 기반의 μ„œλΉ„μŠ€ (예: FTP, 메일 μ„œλ²„)


πŸ”Ž 4.2 L7 Load Balancer (μ‘μš© 계측 기반)

β€’ νŠΉμ§•: OSI 7계측 쀑 7계측(μ‘μš© 계측)μ—μ„œ λ™μž‘ν•˜λ©°, HTTP 헀더, URL, μΏ ν‚€λ₯Ό 기반으둜 νŠΈλž˜ν”½μ„ μ„ΈλΆ„ν™”ν•΄ λΆ„μ‚°
β€’ μž₯점: λ³΅μž‘ν•œ λΌμš°νŒ… 처리 κ°€λŠ₯ (νŠΉμ • κ²½λ‘œμ— λ”°λ₯Έ μ„œλ²„ λΆ„λ°°)
β€’ 단점: 처리 속도 느림, λ³΅μž‘ν•œ μ„€μ • ν•„μš”

βœ… μ‚¬μš© μ˜ˆμ‹œ
β€’ μ›Ή μ„œλΉ„μŠ€ (URL에 따라 이미지 μ„œλ²„μ™€ API μ„œλ²„λ‘œ 뢄리)
β€’ μΏ ν‚€ 기반 μ„Έμ…˜ μœ μ§€


πŸ“Œ 5. λ‘œλ“œ λ°ΈλŸ°μ‹± μ•Œκ³ λ¦¬μ¦˜

πŸ”„ 5.1 λΌμš΄λ“œ 둜빈 (Round Robin)

β€’ μ •μ˜: μš”μ²­μ„ μ„œλ²„ λͺ©λ‘μ˜ 첫 λ²ˆμ§ΈλΆ€ν„° 순차적으둜 μˆœν™˜ν•˜λ©° λ°°λΆ„ν•˜λŠ” 방식

βœ… μž₯점
β€’ κ΅¬ν˜„μ΄ κ°„λ‹¨ν•˜κ³  κ· λ“±ν•˜κ²Œ λΆ€ν•˜λ₯Ό λΆ„μ‚°

❌ 단점
β€’ μ„œλ²„ μ„±λŠ₯ 차이λ₯Ό κ³ λ €ν•˜μ§€ μ•ŠμŒ

πŸ“Š μ˜ˆμ‹œ
β€’ μ„œλ²„ A, B, Cκ°€ μžˆμ„ λ•Œ: A β†’ B β†’ C β†’ A 순으둜 μš”μ²­ 전달


πŸ”’ 5.2 가쀑 λΌμš΄λ“œ 둜빈 (Weighted Round Robin)

β€’ μ •μ˜: 각 μ„œλ²„μ— κ°€μ€‘μΉ˜(weight)λ₯Ό λΆ€μ—¬ν•΄ 더 높은 μ„±λŠ₯의 μ„œλ²„μ— 더 λ§Žμ€ μš”μ²­μ„ λ°°λΆ„

βœ… μž₯점
β€’ μ„œλ²„ μ„±λŠ₯에 λ”°λ₯Έ λΆ€ν•˜ 쑰절 κ°€λŠ₯

❌ 단점
β€’ κ°€μ€‘μΉ˜ μ„€μ •μ˜ λ³΅μž‘μ„±

πŸ“Š μ˜ˆμ‹œ
β€’ μ„œλ²„ A(60%), B(30%), C(10%)둜 μ„€μ •ν•˜λ©΄ μš”μ²­ 10개 쀑 A에 6개 전달


🌐 5.3 IP ν•΄μ‹œ (IP Hash)

β€’ μ •μ˜: ν΄λΌμ΄μ–ΈνŠΈμ˜ IP μ£Όμ†Œλ₯Ό ν•΄μ‹œ ν•¨μˆ˜λ‘œ λ³€ν™˜ν•΄ νŠΉμ • μ„œλ²„λ‘œ μš”μ²­μ„ μ „λ‹¬ν•˜λŠ” 방식

βœ… μž₯점
β€’ λ™μΌν•œ μ‚¬μš©μžκ°€ 항상 같은 μ„œλ²„λ‘œ μ—°κ²° (μ„Έμ…˜ μœ μ§€)

❌ 단점
β€’ μ„œλ²„ 수 λ³€κ²½ μ‹œ ν•΄μ‹œ μž¬κ³„μ‚° ν•„μš”

πŸ“Š μ˜ˆμ‹œ
β€’ μ‚¬μš©μž IP 192.168.1.10 β†’ μ„œλ²„ A둜 항상 μ—°κ²°


πŸ“‰ 5.4 μ΅œμ†Œ μ—°κ²° (Least Connections)

β€’ μ •μ˜: ν˜„μž¬ ν™œμ„±ν™”λœ μ—°κ²° μˆ˜κ°€ κ°€μž₯ 적은 μ„œλ²„λ‘œ νŠΈλž˜ν”½μ„ 전달

βœ… μž₯점
β€’ μ„œλ²„ λΆ€ν•˜κ°€ κ· λ“±ν•˜κ²Œ μœ μ§€λ¨

❌ 단점
β€’ μ„Έμ…˜ μœ μ§€κ°€ ν•„μš”ν•œ μ„œλΉ„μŠ€μ— 비적합

πŸ“Š μ˜ˆμ‹œ
β€’ μ„œλ²„ A(5개 μ—°κ²°), μ„œλ²„ B(2개 μ—°κ²°) β†’ μ„œλ²„ B둜 μƒˆλ‘œμš΄ μš”μ²­ 전달


⏳ 5.5 μ΅œμ†Œ 응닡 μ‹œκ°„ (Least Response Time)

β€’ μ •μ˜: κ°€μž₯ λΉ λ₯΄κ²Œ μ‘λ‹΅ν•˜λŠ” μ„œλ²„λ‘œ μš”μ²­μ„ 전달

βœ… μž₯점
β€’ μ‚¬μš©μžμ—κ²Œ 더 λΉ λ₯Έ 응닡 제곡

❌ 단점
β€’ 응닡 μ‹œκ°„ μΈ‘μ •μ˜ μ˜€λ²„ν—€λ“œ λ°œμƒ

πŸ“Š μ˜ˆμ‹œ
β€’ μ„œλ²„ A(응닡 μ‹œκ°„ 20ms), μ„œλ²„ B(응닡 μ‹œκ°„ 10ms) β†’ μ„œλ²„ B둜 μš”μ²­ 전달


🎯 마무리

λ‘œλ“œ λ°ΈλŸ°μ‹±μ€ μ„œλΉ„μŠ€μ˜ μ•ˆμ •μ„±κ³Ό μ„±λŠ₯을 μœ μ§€ν•˜λŠ” 핡심 κΈ°μˆ μ΄λ‹€.
μ„œλ²„ ν™•μž₯ 방식과 λ‘œλ“œ λ°ΈλŸ°μ„œ μ’…λ₯˜, λ‹€μ–‘ν•œ μ•Œκ³ λ¦¬μ¦˜μ„ μ΄ν•΄ν•˜κ³  상황에 λ§žλŠ” 졜적의 방식을 μ„ νƒν•˜λŠ” 것이 μ€‘μš”ν•  것 κ°™λ‹€.


profile
ν”„λ‘œλ•νŠΈ μ—”μ§€λ‹ˆμ–΄ μž„λ―Όμ„œμž…λ‹ˆλ‹€.

0개의 λŒ“κΈ€