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

3분 분량
0

Application Load Balancer를 사용하여 한 도메인을 다른 도메인으로 리디렉션하려고 합니다.

간략한 설명

Application Load Balancer 서비스는 HTTP에서 HTTPS로의 리디렉션뿐만 아니라 도메인 이름의 리디렉션도 지원합니다. Application Load Balancer를 가리키는 도메인이 있는 경우, Application Load Balancer를 사용하여 도메인을 구성하세요.

참고: Amazon Simple Storage Service(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)을 입력합니다.
    저장하려면, 체크 표시 아이콘을 선택합니다.
  9. 액션 섹션(THEN)에서 액션 추가를 선택합니다. 그런 다음, 다음 단계를 완료합니다.
    리디렉션 대상을 선택합니다.
    사용 사례에 따라 프로토콜과 포트를 지정합니다.
    원본 호스트, 경로, 쿼리사용자 지정 호스트, 경로, 쿼리로 변경합니다.
    호스트example2.com을 입력합니다.
    경로쿼리의 경우, 기본값을 유지합니다(사용 사례에서 기본값을 변경해야 하는 경우 제외).
    응답HTTP 301 "Permanently moved" 또는 **HTTP 302 "Found"**로 설정합니다.
    저장하려면, 체크 표시 아이콘을 선택합니다.
    이제 THEN 섹션이 나타납니다.
    https://example2.com:443/#{path}?#{query}로 리디렉션
    상태 코드: HTTP_301
  10. 저장을 선택하세요.

**참고:**두 도메인이 동일한 Application Load Balancer를 가리키는 경우, 다음 작업 중 하나를 완료하세요.

  • 두 도메인에 대해 별도의 인증서를 보유해야 합니다.
  • SAN(주제 대체 이름) 인증서를 사용하여 도메인을 검증합니다.

리디렉션이 작동하는지 확인하려면, 다음 단계를 완료하세요.

1.    AWS CLI에서 다음 curl 함수를 사용하세요.

curl
    -Iv https://example.com -L
* Rebuilt URL to: https://example.com/
. . .
* Connected to example.com (1.2.3.4) port 443 (#0)
<SSL handshake>
 > Host: example.com.   ------> Host name is example.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.    인터넷 브라우저에서, example.com을 입력하고 example2.com으로 리디렉션되는지 확인합니다.

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

관련 정보

Amazon S3와 Amazon Route 53을 사용하여 최상위 도메인을 하위 도메인이나 다른 도메인으로 리디렉션하려면 어떻게 해야 하나요?

Application Load Balancer는 이제 서버 이름 표시(SNI)를 사용한 스마트 선택 기능을 통해 여러 TLS 인증서를 지원합니다

AWS 공식
AWS 공식업데이트됨 10달 전