Load Balancing

Jihun Kim·2022년 3월 31일
0

aws solutions architect

목록 보기
37/57
post-thumbnail

Load Balancing이란?

Load Balances란 트래픽을 여러 개의 서버(e.g., EC2 instances)로 보내는 것(downstream)을 말한다.

Load balancer를 쓰는 이유

  • 부하를 여러 downstream 인스턴스로 분산할 수 있다.
  • 애플리케이션으로 향하는 단일 액세스 지점을 expose 할 수 있다.
  • downstream 인스턴스의 장애를 원활히 해결할 수 있다.
    - 왜냐하면, 로드 밸런서가 health check을 통해 어떤 인스턴스로 트래픽을 보낼 수 없는지 확인해 주기 때문이다.
  • 인스턴스들에 대해 주기적으로 health check을 해준다.
  • 웹사이트에 대한 SSL termination(HTTPS)을 제공해 준다.
    - 그렇기 때문에 웹 사이트에 암호화된 HTTPS 트래픽을 가질 수 있다.
  • 쿠키를 이용해 stickiness를 강화할 수 있다.
  • 영역에 걸친 고가용성을 지닌다.
  • 클라우드 내에서 private 트래픽과 public 트래픽을 분리할 수 있다.

그렇다면 Elastic Load Balancer를 쓰는 이유는?

  • ELB는 관리형 로드 밸런서이다.
    - aws가 운영하며 업그레이드, 관리, 고가용성을 보장해 준다.
    - aws가 구성을 위한 길잡이를 일부 제공해 준다.
  • 자체 로드 밸런서를 직접 구현하는 것보다 확장성 측면에서 덜 번거롭고 좋다.
  • 다수의 aws 서비스들과 통합되어 있다.

Health checks

  • ELB가 EC2 인스턴스가 올바르게 작동하고 있는지 확인하기 위해 사용한다.
  • port와 route에서 health check이 이루어진다.



Load Balancer의 종류

  • Classic Load Balancer (v1 - old generation)
    - 2009년에 등장
    - HTTP, HTTPS, TCP, SSL(secureTCP) 지원
  • Application Load Balancer (v2 - new generation)
    - 2016년에 등장
    - HTTP, HTTPS, WebSocket 지원
  • Network Load Balancer (v2 - new generation)
    - 2017에 등장
    - TCP, TLS(secureTCP), UDP 지원
  • Gateway Load Balancer
    - 2020년에 등장
    - 3계층인 네트워크 계층에서 동작하며 IP Protocol에서 작동한다.

원한다면 internal(private), external(public) 설정 역시 가능하다.


보안 그룹

  • Load Balancer는 HTTPS/HTTP 타입에 대해 public access가 가능해야 한다.
  • EC2 인스턴스를 사용하는 경우 해당 인스턴스는 로드 밸런서로부터 오는 트래픽만을 허용해야 한다.
    - 따라서, EC2 인스턴스의 보안그룹의 소스에 ip주소가 아니라 사용하려는 로드 밸런서의 보안그룹이 들어가야 한다.


profile
쿄쿄

0개의 댓글