Elastic Load Balancer

최수환·2022년 9월 9일
0

AWS-SAA

목록 보기
5/23

ELB

  • ELB는 Auto scailing Group앞에 배치되 이 그룹을 타깃그룹으로 설정한다. 타깃그룹으로 설정된 Auto scailing Group에 있는 인스턴스들에게 균등하게 트래픽을 분산시킨다.

  • 또한 균등하게 분산시킨 트래픽을 통하여 인스턴스의 이상유무를 확인하는 헬스체크 를 가능하게 한다. 만약 헬스체크를 통해 이상이 감지되었다면 해당 인스턴스로 가는 트래픽을 즉시 중단시키고 Auto scailing Group은 문제가 있는 인스턴스를 폐기후 새 인스턴스로 대체해 다시 그룹안에 포함시킨다.

💡 트래픽 감소에 따라 인스턴스를 종료할 때 무작위로 종료하는 것이 아니라 체크리스트에 따라 종료한다.

  • SETP 1 : 가장 많은 인스턴스가 있는 AZ선택
  • STEP 2 : 가장 오래된 구성 인스턴스 선택
  • STEP 3 : 가장 결제시간에 가까운 인스턴스 선택

💡 ELB는 리전에 국한된 서비스다.
💡 ELB는 크게 Aplication Load Balancer(ALB), Network Load Balancer(NLB), Classic Load Balancer(CLB)로 나누어 진다.

ALB

  • ALB는 Layer 7 (HTTP, HTTPS)를 기반으로 한다.
  • 느린 시작구성을 통해 트래픽증가가 예상될때 요청전에 미리 예열한다.
  • 여러 타깃그룹을 가질 수 있으며, 타깃그룹별로 트래픽을 분산시킬수도 있다.
  • 리스너 규칙을 통해서 HTTP->HTTPS, HTTPS->HTTPS, HTTP->HTTP로 리디렉션이 가능하다
    📌 HTTPS->HTTP는 불가능하다.

💡IDLE TIME OUT

ALB는 트래픽을 보내 응답이 없다면 이상을 감지하는 헬스체크가 중요하다. 하지만 인스턴스의 응답없음이 사실 문제가 생긴것이 아닌 어떤 작업을 수행하거나 잠시 중지 상태일 수 있다. IDLE TIME OUT을 이용해 이상이 있다고 감지하는 시간을 설정할 수 있다.
EX) IDLE IME OUT이 3분이라면 인스턴스가 트래픽에 대한 응답을 3분동안은 하지 않아도 이상있다고 판단하지않는다.
📌 DEFAULT시간 =60초

💡 Connection Draining

인스턴스를 바로 종료하지않고 시간을 주고 종료한다.
이해하기 쉽게 예를 들겠다.
ex) 만약 Auto scailing액션을 통해 인스턴스를 축소하기 위해 인스턴스를 종료하는 상황이다. 이때 해당 인스턴스는 이미 작업중인 process가 있고 작업 마무리까지 5분이 남았다고하자. 해당 인스턴스를 종료해버리면 5분남은 작업은 마무리되지않고 종료되버린다. 따라서 Connection Draining설정을 통해 바로 종료하지않고 term을 두고 작업이 완료되면 인스턴스를 제거한다.
📌 DEFAULT시간 = 300초
📌 CAN BE DISABLED

NLB

  • Layer 4 (TCP,UDP)프로토콜을 기반으로 한다
  • NLB는 고정 IP를 갖고 있고 EIP를 할당할 수 있다
    📌NLB의 타깃그룹은 ALB,EC2인스턴스,Auto scailing group이 될 수 있다.
    --> ALB앞에 NLB를 배치해 ALB를 타깃그룹으로 만들면 ALB의 변동적인 IP를 NLB의 고정IP로 고정시킬 수 있다.
    ** ALB와 CLB는 타깃그룹으로 EC2인스턴스,Auto scailing group만 가능하다.

CLB

  • Layer4(TCP,UDP) , Layer7(HTTP,HTTPS) 지원 가능.
  • 기본적인 로드밸런서를 제공한다.

마치며

이번 포스팅에서는 로드밸런서의 종류와 기능을 알아보았다. 시험에서도 제일 언급이 많이되는 기술이며, 필자 또한 인스턴스의 자동확장,헬스체크의 기능을 가능하게 해주는 AWS핵심 기술중에 하나라고 생각한다. 다음 포스팅에서는 스토리지에 대해서 포스팅 할 예정이다.

profile
성실하게 열심히!

0개의 댓글