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

최종 업데이트 날짜: 2021년 2월 5일

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

간략한 설명

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

해결 방법

참고: AWS CLI(AWS 명령줄 인터페이스) 명령을 실행할 때 오류가 발생할 경우 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으로 리디렉션되는지 확인합니다.