AWS/실습

ALB를 통한 로드 밸런싱

이덩우 2022. 11. 13. 21:17

CloudFormation을 통한 기본 환경이다.

ALB 로드 밸런서를 생성해 HTTP 서비스에 대한 부하 분산을 해보자.

로드밸런서 생성을 클릭 -> ALB 선택 -> 리스너에 HTTP(포트80) 선택 -> 가용영역에서 ALB가 포함될 VPC 선택하고, 두개의 가용영역과 각 서브넷을 선택 -> 이후 보안그룹 지정 -> 대상 그룹을 생성하여 라우팅 지정(상태검사 까지 모든 프로토콜을 HTTP로 지정)

다음과 같이 도식화가 완성된다.


검증

생성한 ALB의 DNS주소를 복사하고, putty를 통해 My-VPC내의 인스턴스로 SSH접근을 시도하고, curl 명령을 통해 ALB로 HTTP 접근을 시도한다.

다음과 같이 로드밸런서를 통해 번갈아 가면서 ELB-VPC 내의 인스턴스에 접근하는 것을 확인할 수 있다.

현재 ELB-EC2-1는 /index.html 페이지와 /dev/index.html 페이지를 가지고있고,

ELB-EC2-2는 /index.html 페이지와 /mgt/index.html 페이지를 가지고있다.

이번엔 ALB DNS에 /dev/index.html 페이지와 /mgt/index.html 페이지로 접근을 시도해보자.

ALB를 통해 ELB-EC2-1, ELB-EC2-2가 번갈아서 접속되므로 응답을 주고, 응답을 주지못하는 상황이 번갈아서

생긴다.

이를 해결하기위해 dev페이지 접속시 ELB-EC2-1에만 연결하고, mgt페이지 접속시 ELB-EC2-2에만 연결하는

경로 기반 라우팅 기능을 활용한다.


두개의 대상그룹을 다시 생성한다. 과정은 아래와 같다.

dev 대상그룹 생성과정)

대상 그룹 생성 -> 이름과 VPC 지정(생성완료) -> 대상 탭 진입 -> ELB-EC2-1 선택

mgt 대상그룹도 동일한 방법으로 생성한다.

이후 ALB 페이지의 리스너 탭에서 생성한 리스너를 선택하고 규칙 편집에 들어간다.

새 규칙만들기를 통해 다음과 같이 설정한다.

2개의 규칙을 모두 추가하면 이제 /dev/ 경로로 향하는 주소는 DEV-GROUP 그룹에 속한 인스턴스로 전달하고

/mgt/ 경로로 향하는 주소는 MGT-GROUP 그룹에 속한 인스턴스로 전달된다.

즉 경로 기반 라우팅 설정이 끝났다.


검증

위와 같이 /dev/ 경로는 모두 ELB-EC2-1 으로 향하고, /mgt/ 경로는 모두 ELB-EC2-2로 향한다.

 

출처 : 따라하며 배우는 AWS 네트워크 입문