Application Load Balancer를 사용하여 한 도메인을 다른 도메인으로 리디렉션하려면 어떻게 해야 합니까? 

최종 업데이트 날짜: 2022년 6월 23일

Application Load Balancer를 사용하여 한 도메인을 다른 도메인으로 리디렉션하려면 어떻게 해야 합니까?

간략한 설명

Application Load Balancer 서비스는 HTTP에서 HTTPS로의 리디렉션은 물론 도메인 이름의 리디렉션을 지원합니다. Application Load Balancer를 가리키는 도메인이 있는 경우, Amazon Simple Storage Service(Amazon S3) 대신 Application Load Balancer를 사용하여 리디렉션을 구성하는 것이 좋습니다.

해결 방법

참고: AWS Command Line Interface(AWS CLI) 명령을 실행할 때 오류가 발생할 경우 AWS CLI의 최신 버전을 사용하고 있는지 확인하세요.

Application Load Balancer를 구성의 일부로 사용하면, 이를 사용하여 한 도메인을 다른 도메인으로 리디렉션할 수 있습니다.

  1. Amazon Elastic Compute Cloud(Amazon EC2) 콘솔을 엽니다.
  2. 탐색 창의 로드 밸런싱에서 로드 밸런서를 선택합니다.
  3. 로드 밸런서를 선택한 다음 리스너를 선택합니다.
  4. 사용할 로드 밸런서 리스너에 대한 규칙 보기/편집을 선택합니다.
  5. 규칙 추가 아이콘(더하기 기호)을 선택합니다.
  6. 규칙 삽입을 선택합니다.
  7. 조건 추가를 선택합니다.
  8. 조건 섹션 (IF) 에서 조건 추가를 선택합니다.
    호스트 헤더를 선택한 다음 호스트명 (예: example.com) 을 입력합니다.
    저장하려면 checkmark 아이콘을 선택합니다.
  9. 작업 섹션 (THEN)에서 작업 추가를 선택합니다.
    리디렉션을 선택합니다.
    사용 사례에 따라 프로토콜과 포트를 지정합니다.
    기존 호스트, 경로, 쿼리사용자 지정 호스트, 경로, 쿼리로 변경합니다.
    호스트example2.com을 입력합니다.
    경로쿼리는 기본값을 유지합니다 (사용 사례에서 변경해야 하는 경우가 아니라면).
    응답HTTP 301 "Permanently moved" 또는 HTTP 302 "Found"로 설정하십시오.
    저장하려면 checkmark 아이콘을 선택합니다.
    이제 다음 섹션이 나타납니다.
    https://example2.com:443/#{path}?#{query}로 리디렉션하시겠습니까?
    상태 코드: HTTP_301
  10. 저장을 선택합니다.

참고: 두 도메인이 동일한 Application Load Balancer를 가리키는 경우 다음을 확인해야 합니다.

  • 두 도메인 모두에 대해 별도의 인증서 보유 여부 또는
  • SAN (주체 대체 이름) 인증서를 사용하여 도메인의 유효성을 검사

리디렉션이 작동하는지 확인하려면 다음과 같이 하십시오.

1.    AWS CLI에서 컬 함수를 사용합니다.

curl
    -Iv https://example1.com -L
* Rebuilt URL to: https://example1.com/
. . . 
* Connected to example1.com (1.2.3.4) port 443 (#0)
<SSL handshake> 
> Host: example1.com.   ———> Host name is example1.com 
> User-Agent: curl/7.61.1
>
    Accept: */*
> 
* Connection state changed (MAX_CONCURRENT_STREAMS == 128)!
< HTTP/2 301       ———> ALB does redirection 
< server: awselb/2.0
< date: Fri, 06 Mar 2020 09:18:33 GMT
< content-type: text/html
< content-length: 150
    
< location: https://example2.com:443/.   ——> redirected to “example2.com” 
< 
* Issue another request to this URL: 'https://example2.com:443/‘. ———> Curl initiates another request that is to example2.com 
*   Trying 34.195.219.169...
    
* TCP_NODELAY set
<SSL handshake> 
> Host: example2.com.   ———> Host name has changed to example2.com 
> User-Agent: curl/7.61.1
> Accept: */*
> 
* Connection state changed (MAX_CONCURRENT_STREAMS == 128)!
<
    HTTP/2 200 ——> We got a response

2.    인터넷 브라우저에서 example1.com을 입력하고 example2.com으로 리디렉션되는지 확인합니다.

참고: Application Load Balancer는 301 및 302 리디렉션만 지원합니다. 이러한 리디렉션을 통해 클라이언트가 후속 요청에서 HTTP 메서드를 POST에서 GET으로 변경할 수 있습니다. 307 리디렉션이 필요한 경우 리디렉션은 대상 애플리케이션을 통해 이루어져야 합니다.