ABOUT ME

-

Today
-
Yesterday
-
Total
-
  • [AWS] ELB (정의와 종류 + "X - Forwarded - For")
    AWS 2024. 2. 10. 20:13
    ELB (Elastic Load Balancers)

     

    • 수많은 서버의 흐름을 균형있게 흘려보내는데 중추적인 역할을 함
    • 하나의 서버로 traffic이 몰리는 병목현상(bottleneck) 방지 → 서버의 원활한 흐림 및 방지에 도움
    • Traffic의 흐름을 Unhealthy instance → healthy instance로 보내주는 것
      EC2 인스턴스는 예상치 못한 이유로 건강치 않게 된다.
      원인 중 하나는 인스턴스가 갑자기 셧다운이 생기거나 시간 초과같은 이유

    ELB의 종류

     

    1. Application Load Balancer : OSI Layer 7(응용계층)에서 작동됨

    • HTTP, HTTPS와 같은 traffic의 load balancing에 가장 적합함
    • 고급 request 라우팅 설정을 통하여 특정 서버로 request를 보낼 수 있다
      즉, 루트를 변경시켜주는 것. ELB가 임의로 하지 않고 커스터마이즈인 라우팅이 가능하다는 뜻

    2. Network Load Balancer : OSI Layer 4(전송계층)에서 작동됨

    매우 빠른 속도를 자랑하며 Production 환경에서 종종 쓰임

    • 극도의 Perfomance가 요구되는 TCP traffic에서 적합함
      Transport Layer에서 작동되는 이 로드 밸런서는 TCP 트래픽을 정리하는데 적합
    • 매우 강력하기 때문에 초당 수백만개의 request를 아주 미세한 delay로 처리 가능 (한번에 해결)

    ✪ 구글이나 네이버와 같이 큰 서버에 적합

    3. Classic Load Balancer (Legacy ELB)

    현재 Legacy로 간주됨. 따라서 거의 쓰이지 않음

    위 ELB들 보다는 성능이 조금 뒤처지나,

    Layer 7의 HTTP/HTTPS 라우팅 기능 지원과

    Layer 4의 TCP traffic 라우팅 기능을 한꺼번에 지원


    EC2 인스턴스를 사용할 때 언제나 정상적으로 작동된다는 보장이 없다

    특히 ELB는 에러를 발견하여 사용자에게 에러메세지를 제공한다

    Load Balancer Error : 504 ERROR

    ⮕ 어플리케이션이나 서버가 응답을 받지 못하는 경우 나타나는 현상

    ⮕ 주로 웹 서버 레이어 혹은 데이터베이스 레이어에서 문제해결가능


    X - Forwarded - For 헤더

    public IP address(왼쪽)를 ⮕ DNS request를 통하여 ⮕ ELB(가운데)에 도달한다.

    ELB는 request를 받고 Private IP address로 인식을 한다.

    그리고 EC2 인스턴스로 이 request를 전송하여 ⮕ EC2는 이 request에 대한 정보를 살피게 된다.

     

    ✪ EC2는 Private IP address 밖에 볼 수가 없다.

    따라서 출처가 어디인지 전혀 알 수가 없다

    이럴때 x - Forwarded - For 헤드로 통해 원래 Public IP address를 찾아볼 수 있다.

Designed by Tistory.