본문 바로가기
AWS

[AWS] ELB - ALB ; Application Load Balancer

by 가영리 2024. 5. 26.
728x90

ALB란?

ALB는 AWS에서 제공하는 로드밸런서 중 하나로 OSI Layer7 중 L7, 즉 애플리케이션 계에서 동작하는 로드밸런서이다.

Listener

리스너의 규칙에 따라 요청을 라우팅하는 방법이 결정된다.

Target Group 

로드 밸런서가 요청을 처리하는 대상이며 같은 VPC 내의 로드밸런서는 타겟 그룹으로 등록할 수 없다.

ALB 생성하기

1. 로드 밸런서 생성하기

2. 네트워크 매핑

로드 밸런서를 배포할 곳(VPC)와 가용 영역을 선택한다.

3. 보안 그룹

HTTP 트래픽만 허용하도록 새로운 보안 그룹을 생성한다.

4. 리스터 및 라우팅

들어온 트래픽을 대상 그룹으로 라우팅해야 하므로 대상 그룹을 생성한다.

4.1 대상그룹 생성

이제 80번 포트에 있는 리스너와 대상 그룹이 연결됐다.

5. 생성 완료

그러나 HTTP:80포트를 연결할 수 없다고 나와있다.

아무래도 보안그룹에서 HTTP 트래픽 허용을 하지 않았나보다.

ALB의 보안그룹을 수정하자.

아웃바운드 규칙에선 HTTP 프로토콜을 허용했는데 인바운드에서 HTTP 프로토콜을 허용하지 않았다. 아래와 같이 인바운드 규칙을 추가한다.

이제 ALB의 DNS로 접속해보면 웹페이지 접속이 잘 되는 것을 확인할 수 있다.

화면을 계속 새로고침하면 두 개의 아이피가 번갈아가면서 나온다. 저 두 개의 아이피는 내가 생성한 두 개의 인스턴스 아이피이다. 이렇게 로드밸런싱이 잘 되고 있는 것을 확인할 수 있다.

 

EC2인스턴스는 public ip로 접속하는 것보다 로드밸런서를 통해 접속하는 것이 좋다.

DNS로 접속했을 땐 잘 되지만

EC2의 public ip로 연결했을 땐 접속되지 않는 것을 확인할 수 있다.

 

ALB 로드밸런서 규칙

로드밸런서의 리스너 및 규칙에서 규칙 추가를 클릭한다.

조건이란 이 규칙 요청에서 무엇을 필터링할 것인가를 말한다.

/error 경로로 들어오는 요청을 필터링 하기로 하자.

필터링하면 어떤 작업을 하게 할지도 정한다.

404코드를 반환하고 Not founr, custom error! 메시지를 출력하도록 하자.

이제 ALB의 DNS 주소에 /error path를 추가해서 로드해보자.

404코드와 메시지가 잘 출력된다.