ALB 규칙 설정

김재익·2023년 9월 15일
0
post-thumbnail

웹 소켓을 이용한 대기열 기능의 비동기적 처리를 구현하고 해당 기능의 트러블을 해결하면서 알게된 ALB의 규칙 설정으로
특정 경로로 들어오는 요청을 특정 서버(대상 그룹) 으로 보내는 방법

어디까지 노출되면 안되는지는 잘 모르겠다.. 혹시 몰라서 다 가렸다

우리 프로젝트의 로드 밸런서이다 80포트는 443포트로 연결되도록 리디렉션 시켜주었고 원래는 443포트의 규칙도 1개로 규칙없음과 동일한 상태였다.
그러나 우리는 웹 소켓 통신을 담당하는 전용 서버를 만들었고 /ws로 들어오는 연결 요청은 해당 서버로만 흐르도록 구현해야했는데 이를 ALB에선 규칙이라는 이름으로 기능을 제공해주고 있다.

기본적으로 적용되어있는 규칙이다 모든 요청을 해당 대상 그룹으로 가도록 설정 되어있다. pt-group은 오토 스케일링으로 생성되는 서버를 포함하여 모든 서버가 등록되어진다. 우리는 MSA가 아닌 모든 요청을 처리하는 분산 서버이기 때문이다.

규칙을 지정하기전에 웹 소켓 전용서버만 담겨있는 대상 그룹을 생성해준다.


pt-ws에 등록된 하나의 인스턴스에는 모니터링을 구현해놓은 인스턴스인데 메모리의 여유가있어서 웹 소켓 서버도 함께 구동하였다.
(현재 서버를 잠깐 내려놔서 unused상태)

규칙 설정

규칙을 등록하는법은 간단하다.

규칙 추가

규칙 이름 적어주고 다음

조건 추가

경로 선택

/ws의 경로를 지정해주고 다음 (pub sub 패턴도 결국 /ws/sub 형태로 전송되기때문에 이 규칙이 적용된다.)

확인하고 다음

대상 그룹을 선택해준다.

URL로 리디렉션은 해당 도메인에서 포트번호를 변경하여 요청 하고싶거나 완전한 풀URL을 작성하여 그곳으로 요청을 보낼 수 도 있다.
고정 응답 반환은 HTTP 상태(200, 202, 404 등)을 반환하고 본문값을 작성하여 전달 해줄 수 있다.(잘 활용하면 굳이 서버 로직에 코드 몇줄 적는거보다 간편하게 사용할 수 있을 것 같다.)

우선순위를 작성해서 모든 요청에 이 규칙이 최우선적으로 적용되도록 조정한다. (규칙이 여러개 있을 땐 우선 순위를 잘 정해야 하겠다)

제대로 작성했는지 확인 후 다음

이름 외에 규칙 자체에 태그를 더 설정하고 싶다면 편집하고 없을 시 생성

제대로 등록됐는지 확인 (해당 게시글을 위해 규칙을 새로 만들었다. 게시글 작성후 규칙 삭제 예정)

이제 웹 소켓 연결 /ws 요청은 pt-ws 대상 그룹에 있는 인스턴스로만 요청이 가게되었다.

억지부리자면 MSA라고도 볼 수 있겠다.

profile
개발자호소인

0개의 댓글