[AWS] Application Load Banlancer를 통해 배포하기

김지엽·2023년 11월 20일
0
post-thumbnail
post-custom-banner

1. 개요

이전에는 EC2를 통해 서버를 배포하고 포트 설정을 iptable을 통해서 해주었다. 하지만 load balancer라는 다른 방법이 있다는 것을 알았고 오늘 AWS에서 지원하는 ALB(Application Load Balancer)에 대해 공부해볼려고 한다.

2. ALB의 역할

만약 하나의 서버에 많은 트래픽이 집중된다면 서버에 부하가 생길수 있고 속도 문제 혹은 서버에 장애가 생길 수 있다. 이에 대한 해결책으로 서버를 여러 대로 나누어서 트래픽을 분산시키는 것이 있다.

ALB는 트래픽을 여러 대의 서버 인스턴스로 고르게 분산시키고 관리하는 역할을 한다.

3. ALB 사용해보기

- ALB 생성 세팅

먼저 EC2 인스턴스 2개를 생성하고 세팅을 해두었다.

이제 좌측 네비게이션 바 하단에 로드밸런싱 > 로드밸런서를 들어간다.

다음과 같은 화면이 나오는데 로드 밸런서 생성을 클릭한다.

다음의 세가지 중에 우린 HTTP와 HTTPS를 담당하는 ALB를 생성한다.

이름은 원하는 것으로 입력하고 다른 선택은 그대로 유지한다.

네트워크 매핑을 선택한다.

- ALB 보안그룹 생성

ALB를 사용하기 위해서 ALB를 위한 보안그룹을 따로 생성해야 한다.

새 보안 그룹 생성을 클릭한다.

세부정보를 입력한다. 설명또한 필수라 입력을 해야하며 한글은 불가능하다.

인바운드 규칙으로 HTTP와 HTTPS를 추가하고 Anywhere-ip4로 설정한다.

우측 하단에 보안그룹 생성을 클릭하면 다음과 같이 생성된다.

다시 기존의 ALB 생성 페이지로 돌아와서 본인이 생성한 보안그룹을 지정해준다.

- ALB 대상그룹 생성

또한 로드밸런서를 어떤 서버 인스턴스들에 연결할지 대상그룹을 생성해주어야 한다.

대상그룹 선택 밑에 있는 대상 그룹 생성을 클릭한다.

기본구성에서 이름만 입력하고 나머지 설정은 유지한다. 대상 유형또한 나는 EC2인스턴스를 지정해줄 것이기 때문에 인스턴스로 선택한다.

상태검사는 해당 대상의 인스턴스 서버가 원할하게 작동하는지를 검사하기 위해 GET요청으로 언제든지 접근할 수 있는 경로를 지정해주는 것이다.

본인 서버에서 GET요청으로 아무런 보안, 인증 없이 접근할 수 있는 url을 지정한다.

다음 페이지로 넘어가면 다음과 같이 현재 실행중인 인스턴스 목록이 나열된다.

로드 밸런서에 대상으로 지정해줄 인스턴스들을 선택하고 해당 인스턴스에서 실행중인 서버의 포트를 입력한다.

그리고 아래에 보류 중인 것으로 포함을 클릭하면 다음과 같이 대상으로 지정된다.

대상 그룹 생성을 클릭하면 다음과 같이 생성된다.

다시 기존의 ALB 생성 페이지로 돌아와서 대상 그룹을 선택한다.

로드 밸런서 생성을 클릭하면 다음과 같이 생성된다.

- ALB 테스트 해보기

생성한 ALB로 들어가 DNS이름을 복사한다.

해당 dns를 통해서 api요청을 여러번 보내면 다음과 같이 두 서버에게 분산된다.

aws-web-server

aws-web-server2

참고

부트캠프 강의 영상

profile
욕심 많은 개발자
post-custom-banner

0개의 댓글