이 부분에서는 리스너에 특징인 프로토콜 및 포트를 사용하여 연결 요청을 수신합니다라는 특징이다. 매우 중요한 작업 중 하나이다. 리스너 및 리스너 규칙을 추가, 제거 또는 업데이트를 할 수 있습니다.
만약 예를 들어, 현재 80에 대한 리스너가 지정되어있다고 가정하자. 그러나 우리는 443에 대한 리스너를 포함 시키고 싶다? 그러면 리스너 추가를 선택해 추가를 할 수 있습니다.
리스너 추가
보안 리스너 설정: 보안 정책을 연결합니다. 즉, HTTPS에서 필요로 하는 정책과 인증서를 연결해주어야합니다. 인증서는 ACM과 IAM에서 가져올 수 있습니다.
이 부분이 진짜 Load Balancer에 꽃이라고 할 수 있습니다. 그 이유는 실습을 통해 알아봅시다.
규칙에는 IF(모두 일치) 조건이 있습니다. 조건에는 6가지가 존재합니다. 이 부분은 매우 Shell script와 흡사한 거 같습니다. IF(만약 조건이 맞다면) → Then(실행해라)
호스트 헤더: HTTP 헤더 중 하나인 호스트 헤더(도메인 이름)을 기준으로 삼아 라우팅을 결정하는 규칙입니다. 사용자가 입력한 도메인 이름을 읽고 정확히 일치하는 규칙을 결정합니다
*.skills.com을 적용하자면 마지막 부분이 skills.com이면 OK인 것 입니다.
경로: 경로는 호스트가 제공하는 자원이 존재하는 위치를 뜻합니다. 사용자가 도메인 네임과 함께 경로를 입력하면 리스너는 그 경로를 읽고 규칙 조건으로 삼을 수 있습니다.
HTTP 헤더: 위에서 봤던 호스트 헤더와 경로를 포함한 모든 HTTP 헤더를 의미합니다. 즉 사용자가 원하는 공통 헤더 혹은 요청 헤더를 골라 지정하여 라우팅 규칙으로 삼을 수 있습니다. 또는 쿠키 값대로 응답을 해줄 수 있습니다.
예를들어서 이 상황도 가능하다. Header Key를 User-Agent로 설정하고 브라우저를 Value설정하면 예를들어 User-Agent=Firefox로 설정하고 사용자는 Firefox로 접근하는 모든 대상에게 “Not Fonud Page”로 요청에 대해 응답을 할 수 있게 설정할 수 있다.
즉, 정확한 명칭은 “ALB를 이용하여 콘텐츠 스위칭” 입니다
https://my-studyroom.tistory.com/entry/AWS-ALB를-이용하여-컨텐츠-관리하기
HTTP 요청 메서드: HTTP 요청 메서드는 사용자가 서버에게 자신의 요청 목적 혹은 종류를 알리는 수단을 의미합니다. 종류에는 CRUD, HEAD 등이 있습니다. 예를 들어 GET 메서드는 서버의 리소스 전달을 요청하는 메서드이고 HEAF 메서드는 메시지 헤더, 문서 정보를 요청하는 메서드 입니다. 이처럼 요청 메서드를 규칙 조건으로 삼아 규칙 작업을 실시할 수 있습니다.
예를 들어 현재 ALB DNS에 wget 요청을 denied하고 싶다면 HTTP Request Method는 GET으로 하고 고정 응답반환을 통해 error를 발생시켜야한다.
쿼리 문자열: 키/값 페어를 하나 이상 추가합니다. 각 키/값 페어에 대해 키를 생략하고 값만 지정할 수 있습니다. 즉 예를 들어 user=test로 오는 요청은 ~것을 해주겠다! 이렇게 됩니다. (A, B Testing 유용함)
소스 IP: Source IP(소스 IP)를 선택하고 CIDR 블록을 하나 이상 추가. 예를 들자면 나의 Source IP를 입력하고 특정 타겟 그룹으로 라우팅되도록 설정할 수 있다!
작업에는 3가지가 있습니다.
전달 대상: 들어오는 요청을 지정한 타겟 그룹으로 라우팅합니다. 아래 처럼 대상 그룹을 지정 후 트래픽을 가중치 기반으로 할 수 있습니다.
리디렉션 대상: HTTP Status Code 301 또는 302를 반환하는데, 가장 많이 쓰이는 경우는 HTTPS로 요청을 리다이렉트 시킬 때이빈다. 아래 처럼 리디렉션 대상을 리디렉션 할 수 있으며 경로와 쿼리까지 지정할 수 있습니다.
고정 응답 반환: 원하는 응답 코드가 포함된 정적 응답을 생성합니다. 콘텐츠 유형도 선택가능합니다.
Authenticate: 이 것은 HTTPS 리스너만 해당되는 사항입니다. Cognito 또는 OIDC 공급자를 사용하여 요청을 인증합니다.