[Computer Science][Network] πŸš€ λ‘œλ“œ λ°ΈλŸ°μ‹±(Load Balancing) μ΄ν•΄ν•˜κΈ°

κΉ€μƒμš±Β·2024λ…„ 8μ›” 20일
post-thumbnail

λ‘˜ μ΄μƒμ˜ CPU λ˜λŠ” μ €μž₯μž₯μΉ˜μ™€ 같은 컴퓨터 μžμ›λ“€μ—κ²Œ μž‘μ—…μ„ λΆ„λ°°ν•˜λŠ” κ³Όμ •

μ˜€λŠ˜λ‚  μ›Ή μ‚¬μ΄νŠΈμ— μ ‘μ†ν•˜λŠ” μ‚¬μš©μžκ°€ κΈ‰κ²©νžˆ 증가함에 따라, λͺ¨λ“  νŠΈλž˜ν”½μ„ 단일 μ„œλ²„κ°€ κ°λ‹Ήν•˜κΈ°μ—” 어렀움이 μžˆμŠ΅λ‹ˆλ‹€. 이 문제λ₯Ό ν•΄κ²°ν•˜κΈ° μœ„ν•΄ ν•˜λ“œμ›¨μ–΄μ˜ μ„±λŠ₯을 λ†’μ΄κ±°λ‚˜(Scale-up), μ—¬λŸ¬ λŒ€μ˜ μ„œλ²„κ°€ μž‘μ—…μ„ λ‚˜λˆ„μ–΄ μ²˜λ¦¬ν•˜λ„λ‘ ν•˜λŠ”(Scale-out) 방식이 μ‚¬μš©λ©λ‹ˆλ‹€. 이 쀑 Scale-out 방식이 λΉ„μš© 효율적이며, μ—¬λŸ¬ μ„œλ²„λ‘œ 무쀑단 μ„œλΉ„μŠ€λ₯Ό μ œκ³΅ν•˜κΈ°μ— μ ν•©ν•©λ‹ˆλ‹€. μ΄λ•Œ μ—¬λŸ¬ μ„œλ²„λ‘œ νŠΈλž˜ν”½μ„ κ³ λ₯΄κ²Œ λΆ„μ‚°μ‹œν‚€λŠ” μž‘μ—…μ΄ λ°”λ‘œ λ‘œλ“œ λ°ΈλŸ°μ‹±μž…λ‹ˆλ‹€.

λ‘œλ“œ λ°ΈλŸ°μ‹±μ€ λΆ„μ‚°ν˜• μ›Ή μ„œλΉ„μŠ€μ—μ„œ μ—¬λŸ¬ μ„œλ²„μ— λΆ€ν•˜(Load)λ₯Ό λ‚˜λˆ„λŠ” 역할을 ν•˜λ©°, ν΄λΌμ΄μ–ΈνŠΈμ™€ μ„œλ²„ 사이에 μœ„μΉ˜ν•œ λ‘œλ“œ λ°ΈλŸ°μ„œκ°€ 이λ₯Ό λ‹΄λ‹Ήν•©λ‹ˆλ‹€. λ‘œλ“œ λ°ΈλŸ°μ„œλ₯Ό 톡해 μ„œλ²„μ— νŠΈλž˜ν”½μ΄ κ· λ“±ν•˜κ²Œ λΆ„μ‚°λ˜λ©΄, μ›Ή μ„œλ²„μ˜ λΆ€ν•˜λ₯Ό 효과적으둜 관리할 수 μžˆμŠ΅λ‹ˆλ‹€.

🎯 λ‘œλ“œ λ°ΈλŸ°μ„œκ°€ μ„œλ²„λ₯Ό μ„ νƒν•˜λŠ” 방식

λ‘œλ“œ λ°ΈλŸ°μ„œκ°€ μ„œλ²„μ— νŠΈλž˜ν”½μ„ λΆ„λ°°ν•˜λŠ” λ°©μ‹μ—λŠ” μ—¬λŸ¬ κ°€μ§€κ°€ μžˆμŠ΅λ‹ˆλ‹€. 각각의 방식은 상황에 따라 μž₯단점이 μžˆμœΌλ―€λ‘œ, μ„œλΉ„μŠ€ νŠΉμ„±μ— 맞게 μ„ νƒν•˜λŠ” 것이 μ€‘μš”ν•©λ‹ˆλ‹€.

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

λΌμš΄λ“œ λ‘œλΉˆμ€ CPU μŠ€μΌ€μ€„λ§μ˜ μΌμ’…μœΌλ‘œ, λ“€μ–΄μ˜€λŠ” μš”μ²­μ„ μˆœμ„œλŒ€λ‘œ μ„œλ²„μ— λ°°λΆ„ν•˜λŠ” λ°©μ‹μž…λ‹ˆλ‹€.

  • μž₯점: κ΅¬ν˜„μ΄ κ°„λ‹¨ν•˜λ©°, λ³„λ„μ˜ μ„œλ²„ μƒνƒœ 정보λ₯Ό ν•„μš”λ‘œ ν•˜μ§€ μ•ŠμŠ΅λ‹ˆλ‹€.
  • 단점: μ„œλ²„μ˜ μ„±λŠ₯μ΄λ‚˜ ν˜„μž¬ λΆ€ν•˜ μƒνƒœλ₯Ό κ³ λ €ν•˜μ§€ μ•Šμ•„, κ³ΌλΆ€ν•˜λ‚˜ λΆ€ν•˜ λΆˆκ· ν˜•μ΄ λ°œμƒν•  수 μžˆμŠ΅λ‹ˆλ‹€. λ˜ν•œ μ„œλ²„ κ°„ μ—°κ²° μƒνƒœλ‚˜ μ„Έμ…˜μ„ κ³ λ €ν•˜μ§€ μ•Šμ•„, 지속적인 연결이 ν•„μš”ν•œ μ• ν”Œλ¦¬μΌ€μ΄μ…˜μ—μ„œλŠ” λΉ„νš¨μœ¨μ μΌ 수 μžˆμŠ΅λ‹ˆλ‹€.

βš–οΈ Least Connections

μ—°κ²° κ°œμˆ˜κ°€ κ°€μž₯ 적은 μ„œλ²„μ— μƒˆλ‘œμš΄ μš”μ²­μ„ ν• λ‹Ήν•˜λŠ” λ°©μ‹μž…λ‹ˆλ‹€.

  • μž₯점: 각 μ„œλ²„μ˜ λΆ€ν•˜ μƒνƒœλ₯Ό λ°˜μ˜ν•˜μ—¬ νŠΈλž˜ν”½μ„ λΆ„μ‚°μ‹œν‚€λ―€λ‘œ, κ³ΌλΆ€ν•˜ 방지에 νš¨κ³Όμ μž…λ‹ˆλ‹€. 특히 μž₯κΈ°κ°„ μ„Έμ…˜μ΄ μœ μ§€λ˜λŠ” κ²½μš°μ— μœ μš©ν•©λ‹ˆλ‹€.
  • 단점: μ„œλ²„μ˜ μ—°κ²° 수만으둜 λΆ€ν•˜λ₯Ό μ™„μ „νžˆ λ°˜μ˜ν•˜κΈ° μ–΄λ €μšΈ 수 μžˆμŠ΅λ‹ˆλ‹€. 예λ₯Ό λ“€μ–΄, 적은 μ—°κ²° 수의 μ„œλ²„κ°€ 무거운 μž‘μ—…μ„ 처리 쀑일 수 μžˆμŠ΅λ‹ˆλ‹€.

πŸ” Source(IP ν•΄μ‹±)

μ‚¬μš©μžμ˜ IP μ£Όμ†Œλ₯Ό ν•΄μ‹±ν•˜μ—¬ νŠΉμ • μ„œλ²„μ— μš”μ²­μ„ ν• λ‹Ήν•˜λŠ” λ°©μ‹μž…λ‹ˆλ‹€.

  • μž₯점: νŠΉμ • μ„œλ²„μ™€ μ‚¬μš©μžμ˜ 관계λ₯Ό μœ μ§€ν•  수 μžˆμ–΄, 동일 ν΄λΌμ΄μ–ΈνŠΈκ°€ 항상 같은 μ„œλ²„μ— μ—°κ²°λ˜λ„λ‘ 보μž₯ν•©λ‹ˆλ‹€.
  • 단점: νŠΉμ • μ„œλ²„μ— μš”μ²­μ΄ 집쀑될 수 있으며, μ‚¬μš©μžμ˜ IP μ£Όμ†Œκ°€ 변경될 경우 μ„Έμ…˜ μœ μ§€λ₯Ό μ–΄λ ΅κ²Œ ν•  수 μžˆμŠ΅λ‹ˆλ‹€.

πŸ›‘οΈ λ‘œλ“œ λ°ΈλŸ°μ„œ μž₯μ•  λŒ€λΉ„

λ‘œλ“œ λ°ΈλŸ°μ„œ μžμ²΄κ°€ μž₯μ• λ₯Ό μΌμœΌν‚¬ 수 있기 λ•Œλ¬Έμ—, λ‘œλ“œ λ°ΈλŸ°μ„œλ₯Ό μ΄μ€‘ν™”ν•˜μ—¬ λŒ€λΉ„ν•˜λŠ” 것이 μ€‘μš”ν•©λ‹ˆλ‹€.

πŸ”„ Active-Passive 이쀑화 ꡬ성

🟒 Active μƒνƒœ

Active μƒνƒœμ˜ λ‘œλ“œ λ°ΈλŸ°μ„œλŠ” λͺ¨λ“  νŠΈλž˜ν”½μ„ μ²˜λ¦¬ν•˜λ©°, ν΄λΌμ΄μ–ΈνŠΈμ˜ μš”μ²­μ„ μ„œλ²„λ‘œ μ „λ‹¬ν•˜λŠ” 역할을 ν•©λ‹ˆλ‹€. 이 λ‘œλ“œ λ°ΈλŸ°μ„œλŠ” 주기적으둜 μžμ‹ μ˜ μƒνƒœλ₯Ό λͺ¨λ‹ˆν„°λ§ν•˜κ³ , λ¬Έμ œκ°€ λ°œμƒν•˜λ©΄ 이λ₯Ό κ°μ§€ν•˜μ—¬ μž₯μ• λ₯Ό μ•Œλ¦¬λŠ” κΈ°λŠ₯을 κ°–μΆ”κ³  μžˆμŠ΅λ‹ˆλ‹€.

🟑 Passive μƒνƒœ

Passive μƒνƒœλŠ” λŒ€κΈ° λͺ¨λ“œλ‘œ, Active λ‘œλ“œ λ°ΈλŸ°μ„œκ°€ μ •μƒμ μœΌλ‘œ λ™μž‘ν•˜λŠ” λ™μ•ˆμ—λŠ” νŠΈλž˜ν”½μ„ μ²˜λ¦¬ν•˜μ§€ μ•ŠμŠ΅λ‹ˆλ‹€. ν•˜μ§€λ§Œ Active λ‘œλ“œ λ°ΈλŸ°μ„œμ˜ μƒνƒœλ₯Ό κ°μ‹œν•˜λ©°, μž₯μ•  λ°œμƒ μ‹œ μžλ™μœΌλ‘œ Active μƒνƒœλ‘œ μ „ν™˜(Failover)λ˜μ–΄ νŠΈλž˜ν”½μ„ μ²˜λ¦¬ν•˜κΈ° μ‹œμž‘ν•©λ‹ˆλ‹€. μž₯μ• κ°€ ν•΄κ²°λœ ν›„, μ›λž˜μ˜ Active λ‘œλ“œ λ°ΈλŸ°μ„œκ°€ 볡ꡬ되면 Failback이 μ΄λ£¨μ–΄μ§‘λ‹ˆλ‹€.

μ΄λ ‡κ²Œ λ‘œλ“œ λ°ΈλŸ°μ„œλ₯Ό μ΄μ€‘ν™”ν•¨μœΌλ‘œμ¨, μ„œλΉ„μŠ€μ˜ μ•ˆμ •μ„±μ„ 높이고 μž₯μ•  λ°œμƒ μ‹œ μ‹ μ†ν•˜κ²Œ λŒ€μ‘ν•  수 μžˆμŠ΅λ‹ˆλ‹€.


이 κΈ€μ—μ„œλŠ” λ‘œλ“œ λ°ΈλŸ°μ‹±μ˜ κ°œλ…κ³Ό λ‘œλ“œ λ°ΈλŸ°μ„œμ˜ μž‘λ™ 방식, 그리고 λ‘œλ“œ λ°ΈλŸ°μ„œ 이쀑화에 λŒ€ν•΄ μ‚΄νŽ΄λ³΄μ•˜μŠ΅λ‹ˆλ‹€. λ‘œλ“œ λ°ΈλŸ°μ‹±μ€ μ›Ή μ„œλΉ„μŠ€μ˜ μ•ˆμ •μ„±κ³Ό νš¨μœ¨μ„±μ„ κ·ΉλŒ€ν™”ν•˜κΈ° μœ„ν•΄ ν•„μˆ˜μ μΈ μš”μ†Œμž…λ‹ˆλ‹€. 각 λ‘œλ“œ λ°ΈλŸ°μ‹± λ°©λ²•μ˜ νŠΉμ„±μ„ μ΄ν•΄ν•˜κ³ , μ μ ˆν•˜κ²Œ ν™œμš©ν•˜λŠ” 것이 μ€‘μš”ν•©λ‹ˆλ‹€.

0개의 λŒ“κΈ€