IT기초

λ‘œλ“œ λ°ΈλŸ°μ„œλž€ 무엇인가 – νŠΈλž˜ν”½μ„ λΆ„μ‚°ν•˜λŠ” 원리

πŸ₯„ν…Œν¬ ν•œ μŠ€ν‘Ό 2026. 6. 15. 13:50

λͺ©μ°¨

  1. μ„œλ²„ ν•œ λŒ€λ‘œ λͺ¨λ“  νŠΈλž˜ν”½μ„ κ°λ‹Ήν•˜λ©΄ μƒκΈ°λŠ” 문제
  2. λ‘œλ“œ λ°ΈλŸ°μ„œλž€ 무엇인가?
  3. λ‘œλ“œ λ°ΈλŸ°μ‹± μ•Œκ³ λ¦¬μ¦˜μ˜ μ’…λ₯˜
  4. L4 λ‘œλ“œ λ°ΈλŸ°μ„œ vs L7 λ‘œλ“œ λ°ΈλŸ°μ„œ
  5. AWSμ—μ„œ λ‘œλ“œ λ°ΈλŸ°μ„œ μ‚¬μš©ν•˜κΈ° (ALB)
  6. λ‘œλ“œ λ°ΈλŸ°μ„œμ™€ κ³ κ°€μš©μ„±
  7. 정리 및 λ‹€μŒ 단계

1. μ„œλ²„ ν•œ λŒ€λ‘œ λͺ¨λ“  νŠΈλž˜ν”½μ„ κ°λ‹Ήν•˜λ©΄ μƒκΈ°λŠ” 문제

μ„œλΉ„μŠ€κ°€ μ„±μž₯ν•˜λ©΄ ν•œ λŒ€μ˜ μ„œλ²„λ‘œ λͺ¨λ“  μš”μ²­μ„ μ²˜λ¦¬ν•˜λŠ” 데 ν•œκ³„κ°€ μ˜΅λ‹ˆλ‹€. νŠΈλž˜ν”½μ΄ κΈ‰μ¦ν•˜λ©΄ μ„œλ²„κ°€ κ³ΌλΆ€ν•˜λ‘œ 응닡이 λŠλ €μ§€κ±°λ‚˜ λ‹€μš΄λ©λ‹ˆλ‹€. μ„œλ²„ ν•œ λŒ€κ°€ λͺ¨λ“  것을 λ‹΄λ‹Ήν•˜λ©΄ κ·Έ μ„œλ²„κ°€ 죽으면 전체 μ„œλΉ„μŠ€λ„ 멈μΆ₯λ‹ˆλ‹€.

해결책은 두 κ°€μ§€μž…λ‹ˆλ‹€. ν•˜λ‚˜λŠ” μ„œλ²„λ₯Ό 더 쒋은 κ²ƒμœΌλ‘œ λ°”κΎΈλŠ” 수직 ν™•μž₯(Scale Up), λ‹€λ₯Έ ν•˜λ‚˜λŠ” μ„œλ²„λ₯Ό μ—¬λŸ¬ λŒ€λ‘œ λŠ˜λ¦¬λŠ” **μˆ˜ν‰ ν™•μž₯(Scale Out)**μž…λ‹ˆλ‹€.

μˆ˜ν‰ ν™•μž₯을 μ„ νƒν–ˆλ‹€λ©΄ μ—¬λŸ¬ μ„œλ²„μ— νŠΈλž˜ν”½μ„ κ· λ“±ν•˜κ²Œ λΆ„λ°°ν•΄μ£ΌλŠ” λ‘œλ“œ λ°ΈλŸ°μ„œκ°€ ν•„μš”ν•©λ‹ˆλ‹€.

2. λ‘œλ“œ λ°ΈλŸ°μ„œλž€ 무엇인가?

**λ‘œλ“œ λ°ΈλŸ°μ„œ(Load Balancer)**λŠ” ν΄λΌμ΄μ–ΈνŠΈμ˜ μš”μ²­μ„ μ—¬λŸ¬ μ„œλ²„μ— λΆ„μ‚°μ‹œμΌœμ£ΌλŠ” μž₯치 λ˜λŠ” μ†Œν”„νŠΈμ›¨μ–΄μž…λ‹ˆλ‹€.

카페 κ³„μ‚°λŒ€ λΉ„μœ λ‘œ μ΄ν•΄ν•˜λ©΄ μ‰½μŠ΅λ‹ˆλ‹€. μ†λ‹˜μ΄ λͺ°λ¦΄ λ•Œ ν•œ λͺ…μ˜ λ°”λ¦¬μŠ€νƒ€μ—κ²Œλ§Œ 주문이 κ°€λ©΄ 쀄이 κΈΈμ–΄μ§‘λ‹ˆλ‹€. λŒ€μ‹  μ—¬λŸ¬ κ³„μ‚°λŒ€λ‘œ μ†λ‹˜μ„ κ· λ“±ν•˜κ²Œ μ•ˆλ‚΄ν•˜λŠ” μ•ˆλ‚΄ 직원이 λ‘œλ“œ λ°ΈλŸ°μ„œ 역할을 ν•©λ‹ˆλ‹€.

λ‘œλ“œ λ°ΈλŸ°μ„œμ˜ νŠΉμ§•μ„ μ •λ¦¬ν•˜λ©΄ λ‹€μŒκ³Ό κ°™μŠ΅λ‹ˆλ‹€. 단일 μ§„μž…μ (Single Entry Point)을 μ œκ³΅ν•΄ μ‚¬μš©μžλŠ” μ„œλ²„ μ—¬λŸ¬ λŒ€κ°€ μžˆλŠ”μ§€ λͺ¨λ¦…λ‹ˆλ‹€. νŠΈλž˜ν”½μ„ λΆ„μ‚°ν•΄ 각 μ„œλ²„μ˜ λΆ€ν•˜λ₯Ό μ€„μž…λ‹ˆλ‹€. ν•œ μ„œλ²„μ— λ¬Έμ œκ°€ 생기면 ν•΄λ‹Ή μ„œλ²„λ‘œμ˜ μš”μ²­μ„ μ€‘λ‹¨ν•©λ‹ˆλ‹€. μ„œλ²„λ₯Ό μΆ”κ°€ν•˜κ±°λ‚˜ μ œκ±°ν•΄λ„ μ„œλΉ„μŠ€ 쀑단 없이 ν™•μž₯ν•  수 μžˆμŠ΅λ‹ˆλ‹€.

3. λ‘œλ“œ λ°ΈλŸ°μ‹± μ•Œκ³ λ¦¬μ¦˜μ˜ μ’…λ₯˜

λ‘œλ“œ λ°ΈλŸ°μ„œκ°€ μ–΄λ–€ μ„œλ²„μ— μš”μ²­μ„ 보낼지 κ²°μ •ν•˜λŠ” λ°©μ‹μž…λ‹ˆλ‹€.

λΌμš΄λ“œ 둜빈(Round Robin) μ„œλ²„ λͺ©λ‘μ„ μˆœμ„œλŒ€λ‘œ λŒμ•„κ°€λ©° μš”μ²­μ„ λ°°λΆ„ν•©λ‹ˆλ‹€. κ°€μž₯ λ‹¨μˆœν•˜κ³  일반적인 λ°©μ‹μž…λ‹ˆλ‹€. μ„œλ²„ 사양이 λΉ„μŠ·ν•  λ•Œ μ ν•©ν•©λ‹ˆλ‹€.

가쀑 λΌμš΄λ“œ 둜빈(Weighted Round Robin) μ„œλ²„λ§ˆλ‹€ κ°€μ€‘μΉ˜λ₯Ό λΆ€μ—¬ν•΄ μ„±λŠ₯이 쒋은 μ„œλ²„μ— 더 λ§Žμ€ μš”μ²­μ„ λ³΄λƒ…λ‹ˆλ‹€. μ„œλ²„ 사양이 λ‹€λ₯Ό λ•Œ μ‚¬μš©ν•©λ‹ˆλ‹€.

μ΅œμ†Œ μ—°κ²°(Least Connections) ν˜„μž¬ μ—°κ²° μˆ˜κ°€ κ°€μž₯ 적은 μ„œλ²„λ‘œ μš”μ²­μ„ λ³΄λƒ…λ‹ˆλ‹€. 처리 μ‹œκ°„μ΄ λ‹€μ–‘ν•œ μš”μ²­μ„ κ· λ“±ν•˜κ²Œ λΆ„μ‚°ν•  λ•Œ νš¨κ³Όμ μž…λ‹ˆλ‹€.

IP ν•΄μ‹œ(IP Hash) ν΄λΌμ΄μ–ΈνŠΈ IPλ₯Ό ν•΄μ‹œν•΄ 항상 같은 μ„œλ²„λ‘œ μ—°κ²°ν•©λ‹ˆλ‹€. μ„Έμ…˜μ„ μ„œλ²„μ— μ €μž₯ν•˜λŠ” κ΅¬μ‘°μ—μ„œ 같은 μ‚¬μš©μžκ°€ 항상 같은 μ„œλ²„μ— μ—°κ²°λ˜μ–΄μ•Ό ν•  λ•Œ μ‚¬μš©ν•©λ‹ˆλ‹€.

4. L4 λ‘œλ“œ λ°ΈλŸ°μ„œ vs L7 λ‘œλ“œ λ°ΈλŸ°μ„œ

λ‘œλ“œ λ°ΈλŸ°μ„œλŠ” OSI 7계측 λͺ¨λΈμ˜ μ–΄λŠ λ ˆμ΄μ–΄μ—μ„œ λ™μž‘ν•˜λŠ”μ§€μ— 따라 κ΅¬λΆ„λ©λ‹ˆλ‹€.

L4 λ‘œλ“œ λ°ΈλŸ°μ„œ (전솑 계측) TCP/UDP μˆ˜μ€€μ—μ„œ IP μ£Όμ†Œμ™€ 포트λ₯Ό 기반으둜 νŠΈλž˜ν”½μ„ λΆ„μ‚°ν•©λ‹ˆλ‹€. λΉ λ₯΄κ³  λ‹¨μˆœν•˜μ§€λ§Œ URL, μΏ ν‚€ 같은 HTTP λ‚΄μš©μ„ 보지 μ•ŠμŠ΅λ‹ˆλ‹€.

L7 λ‘œλ“œ λ°ΈλŸ°μ„œ (μ‘μš© 계측) HTTP λ‚΄μš©(URL 경둜, 헀더, μΏ ν‚€ λ“±)을 보고 λΌμš°νŒ…ν•©λ‹ˆλ‹€. URL에 따라 λ‹€λ₯Έ μ„œλ²„λ‘œ λ³΄λ‚΄κ±°λ‚˜, 이미지 μš”μ²­λ§Œ νŠΉμ • μ„œλ²„λ‘œ λ³΄λ‚΄λŠ” λ“± μ„Έλ°€ν•œ μ œμ–΄κ°€ κ°€λŠ₯ν•©λ‹ˆλ‹€. AWS의 ALB(Application Load Balancer)κ°€ L7 λ‘œλ“œ λ°ΈλŸ°μ„œμž…λ‹ˆλ‹€.

5. AWSμ—μ„œ λ‘œλ“œ λ°ΈλŸ°μ„œ μ‚¬μš©ν•˜κΈ° (ALB)

AWSμ—μ„œλŠ” **ALB(Application Load Balancer)**λ₯Ό κ°€μž₯ 많이 μ‚¬μš©ν•©λ‹ˆλ‹€.

ALB μ„€μ • 방법을 κ°„λž΅νžˆ μ •λ¦¬ν•©λ‹ˆλ‹€. EC2 μ½˜μ†”μ—μ„œ λ‘œλ“œ λ°ΈλŸ°μ„œ > λ‘œλ“œ λ°ΈλŸ°μ„œ 생성을 ν΄λ¦­ν•©λ‹ˆλ‹€. Application Load Balancerλ₯Ό μ„ νƒν•©λ‹ˆλ‹€. λ¦¬μŠ€λ„ˆλ₯Ό μ„€μ •ν•©λ‹ˆλ‹€(80번 HTTP, 443번 HTTPS). λŒ€μƒ κ·Έλ£Ή(Target Group)을 λ§Œλ“€κ³  λ‘œλ“œ λ°ΈλŸ°μ‹±ν•  EC2 μΈμŠ€ν„΄μŠ€λ₯Ό λ“±λ‘ν•©λ‹ˆλ‹€. μƒνƒœ 확인(Health Check) 경둜λ₯Ό μ„€μ •ν•©λ‹ˆλ‹€. 생성 ν›„ DNS 이름을 도메인에 μ—°κ²°ν•©λ‹ˆλ‹€.

ALBλŠ” λ“±λ‘λœ μΈμŠ€ν„΄μŠ€λ₯Ό 주기적으둜 μƒνƒœ ν™•μΈν•©λ‹ˆλ‹€. μΈμŠ€ν„΄μŠ€κ°€ μ‘λ‹΅ν•˜μ§€ μ•ŠμœΌλ©΄ μžλ™μœΌλ‘œ ν•΄λ‹Ή μΈμŠ€ν„΄μŠ€λ‘œμ˜ νŠΈλž˜ν”½μ„ μ€‘λ‹¨ν•©λ‹ˆλ‹€.

6. λ‘œλ“œ λ°ΈλŸ°μ„œμ™€ κ³ κ°€μš©μ„±

λ‘œλ“œ λ°ΈλŸ°μ„œλŠ” **κ³ κ°€μš©μ„±(High Availability)**을 κ΅¬ν˜„ν•˜λŠ” 핡심 μ»΄ν¬λ„ŒνŠΈμž…λ‹ˆλ‹€.

μ„œλ²„ ν•œ λŒ€κ°€ λ‹€μš΄λ˜μ–΄λ„ λ‘œλ“œ λ°ΈλŸ°μ„œκ°€ μžλ™μœΌλ‘œ λ‹€λ₯Έ μ„œλ²„λ‘œ νŠΈλž˜ν”½μ„ μ „ν™˜ν•΄ μ„œλΉ„μŠ€κ°€ μ€‘λ‹¨λ˜μ§€ μ•ŠμŠ΅λ‹ˆλ‹€. 이λ₯Ό **μž₯μ•  쑰치(Failover)**라고 ν•©λ‹ˆλ‹€.

더 λ‚˜μ•„κ°€ μ—¬λŸ¬ κ°€μš© μ˜μ—­(AZ)에 μ„œλ²„λ₯Ό λΆ„μ‚° λ°°μΉ˜ν•˜κ³  λ‘œλ“œ λ°ΈλŸ°μ„œλ‘œ μ—°κ²°ν•˜λ©΄ ν•œ 데이터센터에 λ¬Έμ œκ°€ 생겨도 λ‹€λ₯Έ λ°μ΄ν„°μ„Όν„°μ˜ μ„œλ²„κ°€ μ„œλΉ„μŠ€λ₯Ό 이어받을 수 μžˆμŠ΅λ‹ˆλ‹€.

7. 정리 및 λ‹€μŒ 단계

였늘 배운 핡심을 μ •λ¦¬ν•©λ‹ˆλ‹€.

  • λ‘œλ“œ λ°ΈλŸ°μ„œλŠ” μ—¬λŸ¬ μ„œλ²„μ— νŠΈλž˜ν”½μ„ λΆ„μ‚°ν•΄ μ„±λŠ₯κ³Ό κ°€μš©μ„±μ„ λ†’μ΄λŠ” μž₯μΉ˜μž…λ‹ˆλ‹€.
  • λΌμš΄λ“œ 둜빈, μ΅œμ†Œ μ—°κ²° λ“± λ‹€μ–‘ν•œ μ•Œκ³ λ¦¬μ¦˜μœΌλ‘œ μ„œλ²„λ₯Ό μ„ νƒν•©λ‹ˆλ‹€.
  • L4λŠ” IP/포트 기반, L7은 HTTP λ‚΄μš© 기반으둜 더 μ„Έλ°€ν•œ λΌμš°νŒ…μ΄ κ°€λŠ₯ν•©λ‹ˆλ‹€.
  • AWS ALBλŠ” μƒνƒœ ν™•μΈμœΌλ‘œ 문제 μ„œλ²„λ₯Ό μžλ™μœΌλ‘œ μ œμ™Έν•΄ κ³ κ°€μš©μ„±μ„ κ΅¬ν˜„ν•©λ‹ˆλ‹€.

λ‹€μŒ κΈ€μ—μ„œλŠ” 도메인 이메일을 λ§Œλ“œλŠ” 방법, λ‚΄ λ„λ©”μΈμœΌλ‘œ 이메일을 μš΄μ˜ν•˜λŠ” 법을 μ•Œμ•„λ³΄κ² μŠ΅λ‹ˆλ‹€.