AWS

ALB를 사용한 로드 밸런싱

Ate1es 2022. 8. 30. 16:31

https://docs.aws.amazon.com/ko_kr/elasticloadbalancing/latest/application/introduction.html

 

Application Load Balancer란 무엇입니까? - Elastic Load Balancing

Application Load Balancer란 무엇입니까? Elastic Load Balancing은 둘 이상의 가용 영역에서 EC2 인스턴스, 컨테이너, IP 주소 등 여러 대상에 걸쳐 수신되는 트래픽을 자동으로 분산합니다. 등록된 대상의 상

docs.aws.amazon.com

 

ALB 를 사용해 로드밸런싱을 수행 및 경로기반라우팅을 실습해보겠습니다.

 

환경 구성

환경 구성

  • ELB-EC2-1 와 ELB-EC2-2 인스턴스 간의 로드밸런싱을 구성
  • 로드밸런싱 확인은 My-EC2로 각각 접속하여 확인
  • 경로기반 라우팅 실습을 위해 각각 /dev , /mgt 밑의 index.html 생성

기존 환경 구성 접속

ALB 구성 전 서비스 접속 확인

 

My-EC2에서 ALB 구성 전에 퍼블릭 IP를 통해 웹서비스에 접속 시

각각의 웹서버의 index.html 페이지가 리턴됨을 확인


ALB 생성

1- EC2 콘솔의 로드밸런싱 메뉴에서 로드밸런서 생성 클릭

2- VPC 선택 및 로드밸런서가 Targetting 할 서브넷 선택

 

* ALB 생성할 때 대상그룹이 없기 때문에 대상 그룹을 먼저 생성해줘야함. EC2-1 , EC2-2 (웹서버 2개) 를 포함하는 대상 그룹을 생성해 준 뒤 ALB 생성 과정에서 ALB의 대상 그룹으로 등록해준다. [과정생략]

3- 나머지는 기본 설정으로 준 뒤 ALB 생성 확인

4- 로드밸런서 동작 확인

 

로드밸런서의 대상그룹에 등록된 EC2-1, EC2-2 두개의 웹서버가 번갈아가면서 응답을 주고 있다.

-> 이 이유는 로드밸런서의 기본 알고리즘은 라운드 로빈(Round Robin)으로 되어있기 때문, 알고리즘 변경도 가능

ALB 동작

 

5- 하위 경로로 요청시 문제가 발생

 

하위 경로 즉 /dev/index.html 요청 시 EC2-1 인스턴스에는 해당 html 파일이 존재하기 때문에 정상적으로 리턴

 

-> 그러나 다음 차례로 리턴하는 EC2-2 인스턴스에는 /mgt/index.html 의 경로에 존재하기 때문에 404 error로 리턴


경로 기반 라우팅

이 때 사용할 수 있는 게 경로 기반 규칙을 통해 특정 경로를 특정 인스턴스로 연결 해주는 것

 

1- 각각 EC2-1, EC-2만 대상으로 하는 대상 그룹 생성한다.

 

Dev-Group -> EC2-1 만 포함

Mgt-Group -> EC2-2 만 포함

2- ALB의 리스너 규칙 생성 메뉴로 들어가 경로 기반 규칙 생성

 

http 의 요청 경로가 /mgt/* 일때 -> Mgt-Group(EC2-2) 로 라우팅

http 의 요청 경로가 /dev/* 일때 -> Dev-Group(EC2-1) 로 라우팅

 

3- 경로 별로 응답하는 인스턴스가 바뀌면서 제대로 동작하는지 확인

 

ALB 생성 후 환경 구성