πŸ“Œ Forward Proxy, Reverse Proxy, Load Balancer


(Network) Proxy

  • μ •μ˜ : 남을 λŒ€μ‹ ν•˜μ—¬ 일을 μ²˜λ¦¬ν•¨ (λŒ€λ¦¬)

Proxy Server

  • λŒ€μ‹  μ²˜λ¦¬ν•˜λŠ” μ„œλ²„
  • ν΄λΌμ΄μ–ΈνŠΈμ™€ μ„œλ²„κ°„μ˜ 쀑계 μ„œλ²„λ‘œ, 톡신을 λŒ€λ¦¬ μˆ˜ν–‰ν•˜λŠ” μ„œλ²„
  • μΊμ‹œ/λ³΄μ•ˆ/νŠΈλž˜ν”½ λΆ„μ‚° λ“± μ—¬λŸ¬ μž₯점을 κ°€μ§ˆ 수 있음

μ’…λ₯˜

  • Forward Proxy
  • Reverse Proxy

Forward Proxy

  • 일반적으둜 λ§ν•˜λŠ” Proxy
  • 예제
    • 인터넷 속도λ₯Ό ν–₯상 μ‹œν‚€κΈ° μœ„ν•΄ proxy μ„€μ •
    • IP 좔적을 λ°©μ§€ν•˜κΈ° μœ„ν•΄ Proxy μ„€μ •

  • ν΄λΌμ΄μ–ΈνŠΈμ™€ 인터넷 사이에 μœ„νžˆ

νŠΉμ§•

캐싱

  • ν΄λΌμ΄μ–ΈνŠΈκ°€ μš”μ²­ν•œ λ‚΄μš©μ„ 캐싱
  • λ™μΌν•œ μš”μ²­μ— λŒ€ν•œ 응닡 값을 캐싱함
  • μž₯점
    • 전솑 μ‹œκ°„ μ ˆμ•½
    • λΆˆν•„μš”ν•œ μ™ΈλΆ€ 전솑 x
    • μ™ΈλΆ€ μš”μ²­ κ°μ†Œλ‘œ 인해 λ„€νŠΈμ›Œν¬ 병λͺ© ν˜„μƒ 방지

읡λͺ…μ„±

  • ν΄λΌμ΄μ–ΈνŠΈκ°€ 보낸 μš”μ²­μ„ 감좀
  • ν΄λΌμ΄μ–ΈνŠΈ μš”μ²­μ΄ 마치 ν”„λ‘μ‹œ μ„œλ²„κ°€ μš”μ²­μ„ 보낸것 처럼 정보λ₯Ό 감좜 수 있음
  • μ„œλ²„κ°€ 받은 μš”μ²­μ„ λˆ„κ°€ λ³΄λƒˆλŠ”μ§€ μ•Œμ§€ λͺ»ν•˜κ²Œ 함 (μ„œλ²„κ°€ 받은 μš”μ²­ IPλŠ” Proxy의 IP이기 λ•Œλ¬Έ)

Reverse Proxy

  • 인터넷과 μ„œλ²„λ“€ 사이에 μœ„μΉ˜

νŠΉμ§•

캐싱

  • ν΄λΌμ΄μ–ΈνŠΈκ°€ μš”μ²­ν•œ λ‚΄μš©μ„ 캐싱
  • Forward Proxy와 동일

λ³΄μ•ˆ

  • μ„œλ²„ 정보λ₯Ό ν΄λΌμ΄μ–ΈνŠΈλ‘œ λΆ€ν„° μˆ¨κΉ€
  • ν΄λΌμ΄μ–ΈνŠΈλŠ” μš”μ²­μ„ ν•  λ•Œ μ„œλ²„λ“€μ„ 직접 μ•Œμ§€ λͺ»ν•¨
  • ν΄λΌμ΄μ–ΈνŠΈλŠ” μ„œλ²„μ˜ Reverse Proxy에 μš”μ²­μ„ 보냄
  • Reverse ProxyλŠ” μžμ‹ μ΄ μ•Œκ³  μžˆλŠ” μ„œλ²„μ— μš”μ²­μ„ 전달
  • ν΄λΌμ΄μ–ΈνŠΈλŠ” Reverse Proxyλ₯Ό μ‹€μ œ μ„œλ²„λΌκ³  μƒκ°ν•˜μ—¬ μš”μ²­
  • μ‹€μ œ μ„œλ²„μ˜ IPκ°€ λ…ΈμΆœλ˜μ§€ μ•ŠμŒ

Load Balancing

  • ν•˜λŠ” κ²½μš°λ„, ν•˜μ§€ μ•ŠλŠ” κ²½μš°λ„ μžˆμ–΄ μ„ νƒμ μž„

Load Balancing

  • λΆ€ν•˜λΆ„μ‚°
  • 즉 ν•΄μ•Όν•  μž‘μ—…μ„ λ‚˜λˆ„μ–΄ μ„œλ²„μ˜ λΆ€ν•˜λ₯Ό λΆ„μ‚°μ‹œν‚€λŠ” μ„œλΉ„μŠ€ (μš”μ²­μ„ μ„œλ²„λ“€μ—κ²Œ λ‚˜λˆ„μ–΄μ€Œ)
  • μ„œλ²„μ— λ‚˜λˆ μ£ΌλŠ” λ‹€μ–‘ν•œ μ•Œκ³ λ¦¬μ¦˜μ΄ 쑴재

λ‚˜νƒ€λ‚œ λ°°κ²½

  • μ„œλ²„ ν•œλŒ€λ‘œ μš΄μ˜ν•˜λ‹€κ°€ μ‚¬μš©μžκ°€ λŠ˜μ–΄λ‚œ 경우 μ„œλ²„μ— λΆ€ν•˜κ°€ μ˜€λŠ” 문제 λ°œμƒ
  • μ„œλ²„μ˜ scale up을 ν•œλ‹€ν•΄λ„ 이런 뢀담을 ν•΄κ²°ν•  수 μ—†μŒ (μ†ŒμΌ“μ΄ ν•œμ •μ μ΄κΈ° λ•Œλ¬Έ)
  • μ„œλ²„λ₯Ό μ—¬λŸ¬λŒ€λ‘œ λ‘μž!

μ’…λ₯˜

  • L2 : MAC μ£Όμ†Œλ₯Ό λ°”νƒ•μœΌλ‘œ
  • L3 : IP μ£Όμ†Œλ₯Ό λ°”νƒ•μœΌλ‘œ
  • L4 : Transport Layer (IP & Port) λ₯Ό λ°”νƒ•μœΌλ‘œ (TCP/UDP)
    • https://newwisdom.github.io/ 둜 μ ‘κ·Ό μ‹œ μ„œλ²„ A, μ„œλ²„ B둜 λ‚˜λˆ μ€Œ
  • L7 : Application Layer (User Request) λ₯Ό λ°”νƒ•μœΌλ‘œ (HTTPS, HTTP, FTP)
    • https://newwisdom.github.io/ 에 μ ‘κ·Όμ‹œ /category 와 /search λ₯Ό λ‹΄λ‹Ή μ„œλ²„λ“€λ‘œ λ‚˜λˆ μ€Œ

참고자료