로드 밸런싱이란?

로드 밸런서란 서버로 들어오는 트래픽을 다수의 다운스트림 서버에게 포워딩해주는 서버(들)을 의미한다.

로드 밸런싱 시나리오(예시)

로드 밸런싱 시나리오

  • 유저가 서버에 보내는 트래픽을 로드 밸런서가 중개하여 다운 스트림 EC2 인스턴스에게 보내준다.
  • 이 때, 유저는 어떠한 EC2 인스턴스에 연결된지 알 수 없게 된다.

로드 밸런서의 사용 이유

  • 하나의 인스턴스에게 가해지는 부하를 줄일 수 있게 된다.
  • 로드 밸런서가 일종의 프록시 역할을 하여 DNS의 엔드 포인트를 알 수 없게 된다.
  • 다운 스트림 인스턴스의 장애를 원활히 처리할 수 있게 된다. (Health check)
  • SSL 제거가 지원된다.(HTTPS를 지원해주는 의미)
  • 쿠키 고정도를 강화할 수 있다.

Elastic Load Balancer

Why ELB?

  • ELB는 AWS가 관리해주는 로드 밸런서이기 때문에 어떤 경우에도 작동할 것을 보장함.
  • 뿐만 아니라 고가용성도 지원해줌.

Health Checks

  • ELB가 다운 스트림 EC2의 상태를 확인하기 위해 인스턴스에게 보내는 신호
  • Health Check는 특정 프로토콜, 특정 포트, 특정 엔드포인트에 요청할 수 있다.

Types of ELB

  • Classic LB: Deprecated
  • Application LB: HTTP, HTTPS, WebSocket
  • Network LB: TCP, TLS, UDP
  • Gateway LB: 3계층에서 동작함

특정 로드 밸런서는 모두 사용 가능하게 외부에서 동작하도록 설정할 수 있고 반대로 내부에서만 동작하도록 설정할 수 있다.

Load Balancer Security Groups

로드밸런서 보안

  • 로드 밸런서는 유저에게서 모든 트래픽을 받는다.
  • 반대로 EC2는 해당 로드 밸런서의 보안 그룹의 Source만 허용하여 보안을 강화한다. (프록시)

업데이트: