[AWS] Elastic Load Balancer

김아름·2022년 3월 1일
0

AWS

목록 보기
9/25
post-custom-banner

로드밸런싱

  • 오토스케일링 그룹을 통해 다수의 인스턴스를 생성하고 관리함으로써 고가용성을 확보할 수있고 안정적인 서비스를 제공할 수 있다.
  • 그렇지만 이것을 사용하는 유저 입장에서는 모든 인스턴스의 정보를 알아야 접근 할 수 있다.
  • 인스턴스의 모든 IP주소를 알아야한다.
  • 만약 3번 인스턴스가 떨어져나서 새로 올라가서 IP주소가 바뀐다면 그것도 알아야 하고 별도의 조치를 취해야한다.
  • 그리고 만약에 인스턴스가 8개가 아니라 엄청 많을 때는 관리비용이 엄청 증가 함
  • 오토스케일링 그룹 자체는 좋지만 별도의 로드밸런싱, 부하를 분산해주는 서비스 없이는 활용 불가
  • 그래서 나온 서비스가 Elastic Load Balancing 임
  • 로드밸런서에서 트래픽을 하나의 경로로 받아서 다수의 인스턴스에 분산
  • 각 인스턴스의 IP로 접근하는 것이 아니라 하나의 adress로 접속하기만 해도 로드밸런서가 알아서 트래픽들을 분산해줌
  • 인스턴스가 떨어져나가거나 오류가 나서 트래픽을 수신하지 못할 때는 로드밸런서가 알아서 트래픽을 전송하지 않음
  • 새로운 인스턴스가 등록이 되면 자동으로 분산을 시켜줌



Elastic Load Balancer

  • 다수의 서비스(EC2,Lamda...)에 트래픽을 분산시켜주는 서비스

  • 들어오는 애플리케이션 트래픽을 Amazon EC2 인스턴스, 컨테이너, IP주소, Lambda함수 같은 여러 대상에 자동으로 분산시킴

  • 여러 가용영역에 분산 가능

  • 단일 가용영역 또는 여러 가용영역에서 다양한 애플리케이션 부하를 처리할 수 있음

  • Elastic Load Balancing이 제공하는 세가지 로드밸런서는 모두 애플리케이션의 내결함성에 필요한 고가용성, 자동확장/축소, 강력한 보안을 갖추고 있음

  • Health Check : 직접 트래픽을 발생시켜 인스턴스가 살아있는지 체크

  • Autoscaling과 연동가능

  • 지속적으로 IP주소가 바뀌며 IP 고정 불가능: 항상 도메인 기반으로 사용
    (<--> 네트워크 로드밸런서는 고정 가능)


ELB의 종류

1. APPlication Load Balancer

  • 똑똑한 녀석
  • 트래픽을 모니터하여 라우팅 가능
    ex) image.sample.com은 이미지 서버로, web.sample.com은 웹서버로 트래픽 분산

2. Network Load Balancer

  • 빠른 녀석
  • TCP기반 빠른 트래픽 분산
  • Elastic IP(IP를 고정시켜주는 서비스) 할당 가능

3. Classic Load Balancer

  • 옛날 녀석
  • 예전에 사용되던 타입으로 현재는 잘 사용X

4. Gateway Load Balancer

  • 먼저 트래픽 체크하는 녀석
  • 가상 어플라이언스 배포/확장 관리를 위한 서비스
  • 클라이언트가 게이트웨이 로드밸런서로 EC2등의 서비스에 접속 할 때, 이 트래픽을 네트워크 어플라이언스로 전달을 시켜서 이 트래픽으로 무엇인가를 하는 것
  • 트래픽을 EC2에 도달하기전에 먼저 트래픽을 검사하거나 분석하거나 인증하거나 로깅...

대상그룹(Target Group)

  • 애플리케이션 로드밸런서(ALB) 중심으로 살펴보자
  • ALB가 라우팅 할 대상의 집합

  • ALB는 똑똑해서 주소을, 포트번호 등 읽을 수 있음
  • dashboard.mydomain.com으로 왔으면 대시보드 대상그룹으로 트래픽을 전송
  • ALB가 분산을 할 때 어디로 분산할 것이냐를 모은 그룹들이 대상그룹 이다.
  • 대상그룹 자체를 오토스케일링 그룹으로 만들 수 있다.

구성

  • 3+1가지 종류
    1) 인스턴스
    2) IP (private O, public X)
    3) Lambda (서버리스 서비스: 간단하게 코드 실행시킴)
    +1) ALB (다른 ALB와 연결 )

  • 프로토콜 (HTTP, HTTPS, gRPC 등)

  • 기타설정
    1) 트래픽 분산 알고리즘
    2) 고정세션 등


일반적인 아키텍쳐

  • AWS Cloud 안에 VPC가 있고 다양한 가용영역 안에 오토스케일링 그룹을 통해서 EC2를 분산해놓음
  • 이렇게 구성해놓은 애플리케이션은 고가용성과 장애내구성 확보O
profile
쿄쿄쿄
post-custom-banner

0개의 댓글