업데이트:

태그:

카테고리:

AWS 강의실

ELB

  • 수신되는 트래픽을 하나 이상의 AZ에 있는 EC2 인스턴스, 컨테이너, IP주소 등에 자동으로 분산한다.
  • Health check를 통해 등록된 대상의 상태를 계속 모니터링하고, 트래픽을 정상인 대상에게만 라우팅한다.
  • Route53, CloudFront등을 사용한다면, 이들 서비스는 특정 주소에 대한 요청을 개별 서버가 아닌, 로드밸런서에 전달하는 역할을 한다.
  • Auto Scaling과 연동할 수 있다.
  • 지속적으로 IP주소가 바뀌기때문에 항상 도메인 기반으로 사용해야한다.
    • 네트워크 로드밸런서는 elastic IP를 붙여서 주소기반으로 사용할 수 있다.
  • ELB에는 3가지 종류가 존재하며,
    1. Application Load Balancer(7계층)
    2. Network Load Balancer(4계층)
    3. Gateway Load Balancer(3계층)
    4. Classic Load Balancer(지원안됨) 가 있으며, 각각 작동하는 네트워크 계층이 다르다.




  • 내용이 너무 많으니, ALB에대해서만 일단 알아보자.

Application Load Balancer

개요

  • OSI 7계층 중 어플리케이션 계층에서 작동한다.
  • 요청 수신 후, 우선순위에 따라 Listener규칙을 평가해 적용할 규칙을 결정하고, Target Group에서 Target을 선택한다.



구성요소

스크린샷 2023-02-09 10 10 19

Listener

  • 프로토콜과 포트를 확인해서 클라이언트의 요청을 확인한다.
  • 리스너의 Rule 정의에따라 등록된 target으로 어떻게 라우팅할지 결정된다.
  • Rule이 충족되면 해당 작업이 수행된다.


Target Group

  • 지정한 프로토콜, 포트번호를 사용해 EC2인스턴스와 같은 Target으로 요청을 라우팅한다.
  • 여러 Target Group에 Target을 등록해둘 수 있다.
  • Health Check는 Target Group에 등록된 모든 Target에서 수행된다.


  • 구성
    • Target Type
      1. 인스턴스
      2. IP(Private)주소
      3. Lambda
      4. ALB
    • 프로토콜
      1. HTTP
      2. HTTPS : ALB로 쉽게 HTTPS 설정가능
      3. gRPC
    • 라우팅 알고리즘 등등


Auto scaling group과 연동

  • ELB의 매력은 Target group에 대한 Health check를 통해, unhealthy한 인스턴스가 있다면, 해당 인스턴스를 재시작할 수 있다는 점이다.
  • Auto Scaling Group에 로드밸런서의 타겟그룹을 설정하고, health check를 ELB로 설정하면된다.

댓글남기기