ALB리스너 룰에 대해 알아보자!

2022.05.23

소개

안녕하세요! 클래스메소드 금상원 입니다. 이번 블로그에서는 ALB 리스너 룰에 대해 알아 보도록 하겠습니다.

ALB리스너 룰 이란?

각 리스너는 기본 규칙을 가지고 있으며, 각 규칙은 우선 순위, 하나 이상의 작업, 하나 이상의 조건으로 구성됩니다. 언제든 규칙을 추가하거나 편집하여 대상으로 요청을 라우팅하는 방법 입니다.

요구사항

  • 각 규칙에는 [전달 대상], [리다이렉션 대상], [고정 응답 반환] 또는 [인증] 작업 중 하나가 꼭 포함되어 있어야 하며, 이 작업이 수행할 마지막 작업이어야 합니다.
  • [전달 대상] 작업은 요청을 [대상 그룹]으로 라우팅합니다. 전달 대상 작업을 추가하기 전에 대상 그룹을 만들고 대상 그룹에 대상을 추가합니다.
  • 각 규칙에는 [호스트헤더], [경로], [소스IP], [HTTP 요청 메소드] 조건 중 0개 또는 1개가 포함될 수 있으며, [HTTP 헤더][쿼리 문자열] 조건 중 0개 이상이 포함될 수 있습니다.
  • 조건당 최대 3개의 비교 문자열과 규칙당 최대 5개의 비교 문자열을 지정할 수 있습니다.

IF에 대하여

호스트 헤더

HTTP 프로토콜의 호스트 헤더를 기반으로 요청을 다른 경로로 라우팅 하는 규칙을 정의할 수 있습니다. 여기서 호스트 헤더란 사용자가 입력한 도메인입니다.

예를 들어 [login.xxx.com] 와 같은 서브 도메인을 이용하여 특정 EC2인스터스에 접속 할 수 있습니다.

경로

경로 조건을 사용하여 요청의 URL을 기반으로 요청을 라우팅하는 규칙을 정의할 수 있습니다.

예를 들어 [xxx.com/login.html] 와 같이 URL을 기반으로 요청하여 특정 EC2인스터스에 접속 할 수 있습니다.

소스IP

소스 IP 주소 조건을 사용하여 요청의 소스 IP 주소를 기반으로 요청을 라우팅하는 규칙을 구성할 수 있습니다.

IP 주소는 CIDR 형식으로 지정해야 합니다. IPv4 및 IPv6 주소를 모두 사용할 수 있습니다.

예를 들어 특정 아이피에서 요청을 받은 경우 특정 EC2인스터스에 접속하도록 하게 할 수 있습니다.

HTTP 헤더(Cookie)

HTTP 헤더 필드의 이름을 지정하여 요청의 HTTP 헤더를 기반으로 요청을 라우팅하는 규칙을 구성할 수 있습니다.

예를 들어 리스너 룰에 헤더의 이름을 입력하고 비교 문자열을 하나 이상 추가 합니다.

사용자가 헤더 지정한 값이 포함된 요청인 경우 특정 EC2인스터스에 접속 할 수 있습니다.

HTTP 요청 메소드

HTTP 요청 메서드 조건을 사용하여 요청의 HTTP 요청 메서드를 기반으로 요청을 라우팅하는 규칙을 구성할 수 있습니다.

예를 들어 기본적으로 GET 방식으로 동작하고 있는데, POST 방식을 이용한 요청인 경우 특정 EC2인스터스에 접속 할 수 있습니다.

쿼리 문자열

쿼리 문자열 조건을 사용하여 특정 쿼리스트링이 덧붙여진 URL로 요청을 라우팅하는 규칙을 구성할 수 있습니다.

예를 들어 [xxx.com?key=value] 와 같이 key=value가 포함된 URL로 요청하여 특정 EC2인스터스에 접속 할 수 있습니다.

THEN에 대하여

전달 대상

요청을 타겟그룹으로 전달합니다.

리다이렉션 대상

한 URL의 클라이언트 요청을 다른 URL로 리디렉션할 수 있습니다. 요구 사항에 따라 리디렉션을 임시(HTTP 302) 또는 영구(HTTP 301)로 구성할 수 있습니다.

고정 응답 반환

클라이언트 요청을 삭제하고 사용자 지정 HTTP 응답을 반환할 수 있습니다. 이 작업을 사용하여 2XX, 4XX, 5XX 응답 코드와 선택적 메시지를 반환할 수 있습니다.

인증

Amazon Cognito나 OpenID Connect(OIDC)와 호환되는 자격 증명 공급자를 사용하여 사용자를 인증합니다.

마무리

이번 블로그에서는 리스너 룰에 대해 알아보았습니다. ALB에서 특정 요청이 오면 어떻게 대응을 할지 설정이 가능함으로 평소에 이러한 기능을 원하시는 분들에게 조금이나마 도움이 되었으면 좋겠습니다.

참고 자료

본 블로그 게시글을 보시고 문의 사항이 있으신 분들은 클래스메소드코리아 (info@classmethod.kr)로 연락 주시면 빠른 시일 내 담당자가 회신 드릴 수 있도록 하겠습니다 !