관리 메뉴

Tech Log πŸ› οΈ

λ‘œλ“œ λ°ΈλŸ°μ„œ(Load Balancer)λž€ (κ°œλ…, μ•Œκ³ λ¦¬μ¦˜ μ’…λ₯˜) λ³Έλ¬Έ

Computer Science/λ„€νŠΈμ›Œν¬

λ‘œλ“œ λ°ΈλŸ°μ„œ(Load Balancer)λž€ (κ°œλ…, μ•Œκ³ λ¦¬μ¦˜ μ’…λ₯˜)

sehaan 2024. 2. 21. 22:37

 

이미지 좜처 : https://tecoble.techcourse.co.kr/post/2021-11-07-load-balancing/

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

μ–΄ν”Œλ¦¬μΌ€μ΄μ…˜μ€ μ—¬λŸ¬ μ‚¬μš©μžμ˜ μš”μ²­λ“€μ„ λ™μ‹œμ— μ²˜λ¦¬ν•˜κ³  μ•ˆμ •μ μΈ μ„œλΉ„μŠ€λ₯Ό μ œκ³΅ν•΄μ£Όμ–΄μ•Όν•œλ‹€. 

λ¬Όλ‘  ν•œ λŒ€μ˜ μ„œλ²„λ‘œ μ„±λŠ₯을 계속 ν‚€μ›Œμ„œ μ–΄λŠ μ •λ„λŠ” 컀버(Scale-up)ν•  수 μžˆκ² μ§€λ§Œ, 이 방식은 μ–Όλ§ˆ μ•ˆκ°€μ„œ ν•œκ³„λ₯Ό λ§Œλ‚˜κ²Œ λœλ‹€.

λ”°λΌμ„œ μ—¬λŸ¬ λŒ€μ˜ μ„œλ²„λ₯Ό λ‘¬μ„œ μš”μ²­ λΆ€ν•˜λ₯Ό λΆ„μ‚°ν•˜λ„λ‘ ν•˜λŠ” 것(Scale-out)이 λ‘œλ“œ λ°ΈλŸ°μ‹±μ΄κ³  이 역할을 ν•˜λŠ”κ²Œ λ‘œλ“œ λ°ΈλŸ°μ„œμ΄λ‹€.

 

λ‘œλ“œ λ°ΈλŸ°μ„œλŠ” μ‚¬μš©μžμ™€ μ„œλ²„ 사이에 μœ„μΉ˜ν•˜λ©° λͺ¨λ“  λ¦¬μ†ŒμŠ€ μ„œλ²„κ°€ 졜적의 μ„±λŠ₯을 내도둝 λΆ€ν•˜λ₯Ό λΆ„μ‚°ν•œλ‹€.

 

2. λ‘œλ“œ λ°ΈλŸ°μ‹± μ‚¬μš©μ˜ 이점

κ°€μš©μ„±

μ„œλ²„ μž₯μ•  λ˜λŠ” λΆ€ν•˜λ‘œ μΈν•œ λ”œλ ˆμ΄λ₯Ό λ‘œλ“œ λ°ΈλŸ°μ‹±μ„ 톡해 사전에 λ°©μ§€ν•¨μœΌλ‘œμ¨ μ–΄ν”Œλ¦¬μΌ€μ΄μ…˜μ˜ κ°€μš©μ„±μ„ μ¦κ°€μ‹œν‚¨λ‹€.

λ‹€μŒκ³Ό 같은 μž‘μ—…μ„ κ°„νŽΈν•˜κ²Œ μˆ˜ν–‰ν•  수 μžˆλ‹€.

  • μ• ν”Œλ¦¬μΌ€μ΄μ…˜ 가동 쀑지 없이 μ• ν”Œλ¦¬μΌ€μ΄μ…˜ μ„œλ²„ μœ μ§€ 관리 λ˜λŠ” μ—…κ·Έλ ˆμ΄λ“œ μ‹€ν–‰
  • λ°±μ—… μ‚¬μ΄νŠΈμ— μžλ™ μž¬ν•΄ 볡ꡬ 제곡
  • μƒνƒœ 확인을 μˆ˜ν–‰ν•˜κ³  가동 쀑지λ₯Ό μœ λ°œν•  수 μžˆλŠ” 문제 방지

ν™•μž₯μ„±

μ–΄ν”Œλ¦¬μΌ€μ΄μ…˜μ˜ 규λͺ¨λ‚˜ νŠΈλž˜ν”½μ΄ μ¦κ°€ν•˜λ”λΌλ„ λ‘œλ“œ λ°ΈλŸ°μ‹±μ„ 톡해 νŠΈλž˜ν”½λ“€μ„ 지λŠ₯적으둜 μ—¬λŸ¬ μ„œλ²„μ— λΆ„μ‚°ν•  수 μžˆλ‹€.

λ”°λΌμ„œ ν™•μž₯이 μš©μ΄ν•΄μ§„λ‹€.

  • ν•œ μ„œλ²„μ—μ„œ νŠΈλž˜ν”½ 병λͺ© ν˜„μƒ 방지
  • ν•„μš”ν•œ 경우 λ‹€λ₯Έ μ„œλ²„λ₯Ό μΆ”κ°€ν•˜κ±°λ‚˜ μ œκ±°ν•  수 μžˆλ„λ‘ μ• ν”Œλ¦¬μΌ€μ΄μ…˜ νŠΈλž˜ν”½μ„ 예츑
  • μ•ˆμ‹¬ν•˜κ³  μ‘°μ •ν•  수 μžˆλ„λ‘ μ‹œμŠ€ν…œμ— 쀑볡성을 μΆ”κ°€

λ³΄μ•ˆμ„±

λ””λ„μŠ€κ°™μ€ μ•…μ„± νŠΈλž˜ν”½ 곡격을 λ‘œλ“œ λ°ΈλŸ°μ‹±μ„ 톡해 ν”Όν•΄λ₯Ό μ΅œμ†Œν™” ν•  수 μžˆλ‹€.

μ•…μ„± νŠΈλž˜ν”½μ„ μ—¬λŸ¬ μ„œλ²„λ‘œ λΆ„μ‚°μ‹œν‚€κ±°λ‚˜ 방화벽을 톡해 사전 μ°¨λ‹¨ν•œλ‹€.

  • νŠΈλž˜ν”½ λͺ¨λ‹ˆν„°λ§ 및 μ•…μ„± μ½˜ν…μΈ  차단
  • 곡격 νŠΈλž˜ν”½μ„ μ—¬λŸ¬ λ°±μ—”λ“œ μ„œλ²„λ‘œ μžλ™μœΌλ‘œ λ¦¬λ””λ ‰μ…˜ν•˜μ—¬ 영ν–₯ μ΅œμ†Œν™”
  • μΆ”κ°€ λ³΄μ•ˆμ„ μœ„ν•΄ λ„€νŠΈμ›Œν¬ λ°©ν™”λ²½ 그룹을 톡해 νŠΈλž˜ν”½ λΌμš°νŒ…

μ„±λŠ₯ ν–₯상

지λŠ₯적인 λΆ€ν•˜ 뢄산을 톡해 μ–΄ν”Œλ¦¬μΌ€μ΄μ…˜ 응닡 μ„±λŠ₯을 ν–₯μƒμ‹œν‚¨λ‹€.

  • μ„œλ²„ 간에 λ‘œλ“œλ₯Ό κ· λ“±ν•˜κ²Œ λ°°ν¬ν•˜μ—¬ μ• ν”Œλ¦¬μΌ€μ΄μ…˜ μ„±λŠ₯ ν–₯상
  • ν΄λΌμ΄μ–ΈνŠΈ μš”μ²­μ„ μ§€λ¦¬μ μœΌλ‘œ 더 κ°€κΉŒμš΄ μ„œλ²„λ‘œ λ¦¬λ””λ ‰μ…˜ν•˜μ—¬ 지연 μ‹œκ°„ 단좕
  • 물리적 및 가상 μ»΄ν“¨νŒ… λ¦¬μ†ŒμŠ€μ˜ μ‹ λ’°μ„± 및 μ„±λŠ₯ 보μž₯

μ°Έκ³  : https://aws.amazon.com/what-is/load-balancing/?nc1=h_ls

 

3. λ‘œλ“œ λ°ΈλŸ°μ„œμ˜ μ’…λ₯˜

 

λΆ€ν•˜ λΆ„μ‚°μ—λŠ” L4 , L7 λ‘œλ“œ λ°ΈλŸ°μ„œκ°€ κ°€μž₯ 많이 μ‚¬μš©λœλ‹€.

μ—¬κΈ°μ„œ L4λŠ” OSI7 κ³„μΈ΅μ˜ 톡신 계측, L7은 μ–΄ν”Œλ¦¬μΌ€μ΄μ…˜ 계측이닀.

λ”°λΌμ„œ λ‹€λ₯Έ 말둜 λ„€νŠΈμ›Œν¬ λ‘œλ“œ λ°ΈλŸ°μ„œ , μ–΄ν”Œλ¦¬μΌ€μ΄μ…˜ λ‘œλ“œ λ°ΈλŸ°μ„œλΌκ³ λ„ ν•œλ‹€.

 

L4 λ‘œλ“œ λ°ΈλŸ°μ„œ

전솑 κ³„μΈ΅μ˜ IP, PORT 같은 정보듀을 μ‚¬μš©ν•˜μ—¬ λΆ€ν•˜λ₯Ό λΆ„μ‚°ν•œλ‹€.

νŒ¨ν‚·μ΄λ‚˜ 쿠킀같은 데이터듀을 뢄석할 ν•„μš”μ—†μ΄ 비ꡐ적 λ‹¨μˆœν•˜κ²Œ μž‘λ™ν•˜κΈ° λ•Œλ¬Έμ— L7 λ‘œλ“œ λ°ΈλŸ°μ„œμ— λΉ„ν•΄ λΉ λ₯΄κ³  κ°€λ³λ‹€λŠ” μž₯점이 μžˆλ‹€.

 

*Client IP와 μ„œλ²„μ‚¬μ΄μ— μ„œλ²„λ‘œ λ“€μ–΄μ˜€λŠ” νŠΈλž˜ν”½μ€ λ‘œλ“œ λ°ΈλŸ°μ„œλ₯Ό ν†΅ν•˜κ³  λ‚˜κ°€λŠ” νŠΈλž˜ν”½μ€ Client IP와 직접 ν†΅μ‹ ν•œλ‹€.

 

이미지 좜처 : https://dev.classmethod.jp/articles/load-balancing-types-and-algorithm/

 

L7 λ‘œλ“œ λ°ΈλŸ°μ„œ

μ• ν”Œλ¦¬μΌ€μ΄μ…˜ 계측(HTTP, FTP, SMTP)μ—μ„œ λ‘œλ“œλ₯Ό λΆ„μ‚°ν•˜κΈ° λ•Œλ¬Έμ— HTTP 헀더, μΏ ν‚€ λ“±κ³Ό 같은 μ‚¬μš©μžμ˜ μš”μ²­μ„ κΈ°μ€€μœΌλ‘œ νŠΉμ • μ„œλ²„μ— νŠΈλž˜ν”½μ„ λΆ„μ‚°ν•˜λŠ” 것이 κ°€λŠ₯ν•˜λ‹€. ex) 결제 μ„œλ²„, νšŒμ› κ°€μž… μ„œλ²„

L7 λ‘œλ“œ λ°ΈλŸ°μ„œμ˜ 경우 νŠΉμ •ν•œ νŒ¨ν„΄μ„ μ§€λ‹Œ λ°”μ΄λŸ¬μŠ€λ₯Ό 감지해 λ„€νŠΈμ›Œν¬λ₯Ό λ³΄ν˜Έν•  수 있으며, DoS/DDoS와 같은 비정상적인 νŠΈλž˜ν”½μ„ 필터링할 수 μžˆλ‹€.

ν•˜μ§€λ§Œ κΈ°λŠ₯이 λ§Žμ€ λŒ€μ‹  그만큼 μžμ› μ†Œλͺ¨κ°€ ν¬λ‹€λŠ” 단점이 μžˆλ‹€.

 

*Client IP와 μ„œλ²„μ‚¬μ΄μ— λ“€μ–΄μ˜€κ³  λ‚˜κ°€λŠ” νŠΈλž˜ν”½μ΄ λͺ¨λ‘ λ‘œλ“œ λ°ΈλŸ°μ„œμ™€ ν†΅μ‹ ν•œλ‹€.

 

이미지 좜처 : https://dev.classmethod.jp/articles/load-balancing-types-and-algorithm/

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

λŒ€ν‘œμ μΈ μ•Œκ³ λ¦¬μ¦˜ λ”± 3개개만!

 

λΌμš΄λ“œ 둜빈(Round Robin)

μš”μ²­ 받은 μˆœμ„œλŒ€λ‘œ λ‘œλ“œ λ°ΈλŸ°μ‹± μ„œλ²„μ— ν• λ‹Ήν•œλ‹€. 

μ„œλ²„λ“€μ˜ μ„±λŠ₯이 λΉ„μŠ·ν•˜κ³  처리 μ‹œκ°„μ΄ 짧은 경우 μœ λ¦¬ν•˜λ‹€.

 

가쀑 λΌμš΄λ“œ 둜빈(Weighted Round Robin)

μ„œλ²„κ°„ μ„±λŠ₯이 λ‹€λ₯Έ 경우 μ„œλ²„μ— κ°€μ€‘μΉ˜λ₯Ό λΆ€μ—¬ν•˜μ—¬μ„œ λΆ€ν•˜λ₯Ό λΆ„μ‚°ν•œλ‹€.

 

μ΅œμ†Œ μ—°κ²° 방식(Least Connection)

μ—°κ²° μƒνƒœκ°€ κ°€μž₯ 적은 μ„œλ²„μ— μš°μ„ μ μœΌλ‘œ λΆ€ν•˜λ₯Ό λΆ„μ‚°ν•œλ‹€. 

μ„Έμ…˜μ΄ 자주 κΈΈμ–΄μ§€κ±°λ‚˜ λΆ„λ°°λœ νŠΈλž˜ν”½λ“€μ΄ μΌμ •ν•˜μ§€ μ•Šμ„ 경우 μœ λ¦¬ν•˜λ‹€.

 

 

이미지 좜처 https://careerly.co.kr/comments/77905

 

DNS λΌμš΄λ“œ 둜빈

λ‘œλ“œ λ°ΈλŸ°μ„œλ₯Ό ν™œμš©ν•˜μ§€ μ•Šκ³  λ‘œλ“œ λ°ΈλŸ°μ‹±μ„ ν•˜λŠ” 방법이닀. 

DNS λΌμš΄λ“œ 둜빈 방식을 μ‚¬μš©ν•˜λ©΄ λ„€μž„μ„œλ²„λŠ” μ‚¬μš©μžκ°€ μž…λ ₯ν•œ 도메인에 ν•΄λ‹Ήν•˜λŠ” μ—¬λŸ¬ IP 정보듀을 μ‘λ‹΅ν•œλ‹€.

ν΄λΌμ΄μ–ΈνŠΈλŠ” μ—¬λŸ¬ IP μ •λ³΄μ€‘μ—μ„œ ν•˜λ‚˜λ₯Ό 선택할 수 있으며, 결둠적으둜 μ—¬λŸ¬ IP둜 νŠΈλž˜ν”½μ΄ λΆ„μ‚°λœλ‹€.

이 방식은 μ›Ή μ„œλ²„λ“€μ΄ μ§€λ¦¬μ μœΌλ‘œ λΆ„μ‚°λ˜μ–΄ μžˆμ–΄ λΆ€ν•˜ 뢄산이 μ–΄λ ΅κ±°λ‚˜ κ°€λ²Όμš΄ κ΅¬ν˜„ 방식이 ν•„μš”ν•  λ•Œ μ ν•©ν•˜λ‹€.

 

ν•˜μ§€λ§Œ μΊμ‹±μœΌλ‘œ μΈν•΄μ„œ νŠΉμ • IP에 νŠΈλž˜ν”½μ΄ λͺ°λ¦΄ 수 있고, ν—¬μŠ€ 체크λ₯Ό ν•˜μ§€ λͺ»ν•΄μ„œ μš”μ²­ν•œ IP둜 연결이 거뢀될 수 μžˆλ‹€λŠ” 단점이 μžˆλ‹€.