[AWS] AWS ELB

YEONSUN YOON·2022년 1월 6일
0

AWS

목록 보기
1/4
post-thumbnail

💻 AWS ELB

💡 네트워크 부하 분산(로드밸런싱)

  • 부하 분산이란 처리해야 할 요청을 나누어 처리 하는 것
  • 네트워크 측면에서 이를 로드밸런싱(Load Balancing) 이라고 함
  • 서버를 운영하게 되면 규모가 커짐에 따라 자연스럽게 클라이언트의 요청이 늘어날 수 밖에 없고 서버에 과부하가 오게 되어 서버에 장애가 생길 수 있는데, 이 때 서버를 Scale-Out 하고 로드밸런싱을 통해 적절하게 요청을 분배하여 처리
  • 로드밸런서는 서버들의 상태를 파악하고 요청을 분산하여 전달하는 역할을 수행
스크린샷 2021-09-02 오후 5 44 41 스크린샷 2021-09-02 오후 5 46 13

서버 하나만으로 서비스를 운영하다 보면 서버에 장애가 발생했을 때 재시작하기 전까지 서버를 중단해야 하는 경우가 있는데, 이 때 여러 대의 서버를 배치하고 로드밸런싱을 통해 적절하게 요청을 분배하면 서버의 장애를 예방할 수 있고 서버의 장애가 생겨도 서버 중단 없이 다른 서버에서 요청을 처리할 수 있다는 장점이 있음

💡 AWS ELB

스크린샷 2021-09-02 오후 5 57 01
  • AWS ELB(Elastic Load Balancing)는 AWS에서 제공하는 로드 밸런싱기능
  • ELB는 클라이언트로부터의 요청을 받고 대상 그룹 내 인스턴스에게 라우팅
  • ELB에 등록된 대상 그룹의 상태들을 지속적으로 모니터링하여 정상적인 상태의 인스턴스에게 요청을 라우팅(비정상적인 상태의 인스턴스에게는 라우팅하지 않음)
  • 하나 이상의 리스너(Listener) 를 지정하여 ELB에 들어오는 요청들에 대해 프로토콜 + 포트번호로 차단 및 허용 여부 결정
  • 최소 둘 이상의 가용 영역을 사용하여 고가용성을 보장하도록 구성(가용 영역 하나에 문제가 발생해도 나머지 다른 가용 영역으로 요청을 라우팅)
    • 정상적인 가용 영역 내 에서만 ELB 노드가 생성되고 계속 라우팅할 수 있음
  • 사용자는 Route 53을 통해 도메인 주소로 접근
    • 각 가용 영역의 NLB 노드는 가용 영역마다 네트워크 인터페이스를 생성하고 Static(Elastic) IP를 할당

📌 AWS ELB 구성

스크린샷 2021-09-02 오후 6 41 39
  • 리스너(Listener)
    • 프로토콜 및 포트를 사용하여 연결 요청을 확인. 로드밸런서에서 부하 분산을 하기 위한 프로토콜과 포트를 지정하는 규칙(Rule)을 생성
  • 대상 그룹(Target Group)
    • 부하 분산을 위해 하나 이상의 대상을 대상 그룹으로 지정. 그룹 내 대상들에 대해 주기적으로 확인하고 정상적인 상태의 대상에게만 트래픽을 전달

📌 AWS ELB 통신 방식

스크린샷 2021-10-05 오후 1 27 28
  • Internet Facing Load Balancer
    • Public IP, Private IP 둘 다 가지고 있음
    • 외부에서 인터넷 접속이 가능함
    • 외부 사용자들의 접근을 위한 인스턴스(웹 서버)대상으로 라우팅 되도록 구성
스크린샷 2021-10-05 오후 1 29 05
  • Internal Load Balancer
    • Private IP 만 가지고 있음
    • 내부에서의 접근만 허용
    • 내부 인스턴스들을 대상으로 라우팅 되도록 구성

✔️ 교차 영역 로드밸런싱(Cross-Zone Load Balancing)

  • 기본적으로 ELB는 Round-Robin 알고리즘으로 요청을 분산(여러 트래픽의 우선순위를 정하지 않고 시간 순서에 따라 하나씩 분산)
  • 가용 영역 내 인스턴스의 수가 다르게 존재하는 경우 가용 영역 내 인스턴스에 대한 부하 불균형이 발생할 수 있는데, 이를 해결하기 위한 방법이 교차 영역 로드밸런싱
  • 기본적으로 NLB는 비활성화, ALB는 활성화
  • 비활성화 상태
스크린샷 2021-10-05 오후 2 43 17

각각 인스턴스에 부하 불균형 발생

  • 활성화 상태
스크린샷 2021-10-05 오후 2 44 01

Untitled 10

각각 인스턴스에 골고루 부하 전달

📌 AWS ELB 종류

스크린샷 2021-09-02 오후 6 28 17
  • ALB(Application Load Balancer)

    • HTTP/HTTPS에 가장 적합한 로드 밸런서.
    • OSI 모델중 7계층(애플리케이션 계층)에 해당
    • 웹 애플리케이션에 대한 트래픽을 URI단위로 분산할 수 있기 때문에 세밀한 분산이 가능하다는 장점
    • 처리 속도가 상대적으로 느리며 고정 IP 설정이 불가능
  • NLB(Network Load Balancer)

    • TCP/UDP/TLS에 가장 적합한 로드 밸런서.
    • OSI 모델중 4계층(전송 계층)에 해당
    • 트래픽의 패킷만을 확인하여 분산하기 때문에 ALB에 비해 세밀한 분산이 어렵다는 단점
    • 처리 속도가 상대적으로 빠르며 고정 IP 설정이 가능
  • GLB(Gateway Load Balancer)

    • OSI 모델중 3계층(네트워크 계층)에 해당
  • CLB(Classic Load Balancer)

    • 이전 세대의 로드밸런서
    • 지원하는 프로토콜이 많다는 장점이 있으나 주로 ALB, NLB로 대체됨

0개의 댓글