Route 53에서 도메인을 다른 도메인으로 리디렉션하려면 어떻게 해야 합니까?

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

Amazon Route 53의 한 도메인에서 다른 도메인으로 클라이언트를 리디렉션해야 합니다. 어떻게 해야 합니까?

간략한 설명

도메인 리디렉션을 구성하는 일반적인 시나리오가 세 가지 있습니다.

1.    한 도메인에서 다른 도메인으로 리디렉션합니다. 예를 들면 다음과 같습니다.
        apex 도메인(example.com)을 apex 도메인(anydomain.com)으로
        www.example.com을 포함해 apex 도메인(example.com)을 하위 도메인(www.aydomain.com)으로
        example.com을 포함해 하위 도메인(www.example.com)을 apex 도메인(anydomain.com)으로
        anysubdomain.example.com을 포함해 하위 도메인(www.example.com)을 하위 도메인(www.anydomain.com)으로
2.    HTTP에서 HTTPS로 도메인을 리디렉션합니다. 예를 들면 다음과 같습니다.
        https://example.com을 포함해 apex 도메인(http://example.com)을 apex 도메인(https://anydomain.com)으로
        https://www.example.com을 포함해 apex 도메인(http://example.com)을 하위 도메인(https://www.anydomain.com)으로
        https://example.com을 포함해 하위 도메인(http://www.example.com)을 apex 도메인(https://anydomain.com)으로
        https://anysubdomain.example.com을 포함해 하위 도메인(http://www.example.com)을 하위 도메인(https://www.anydomain.com)으로
3.    다른 URI 경로로 리디렉션합니다(경로 전달). 예를 들면 다음과 같습니다.
        example.com, example.com/<path>, www.example.com 또는 www.example.com/<path>을
        example.com/<newpath>, www.example.com/<newpath>, anydomain.com/<newpath> 또는 anysubdomain.anydomain.com/<newpath>으로

해결 방법

CNAME 레코드를 사용하여 한 도메인에서 다른 도메인으로 리디렉션

이 시나리오에서는 Route 53 호스팅 영역에 CNAME 레코드를 생성하여 DNS 리디렉션을 구성합니다.

apex 외의 도메인에서 다른 도메인 유형으로 리디렉션하려면 다음 형식 중 하나를 사용하여 CNAME 레코드를 구성합니다(사용 사례에 따라 다름).

  • www.example.com CNAME anysubdomain.example.com 또는 www.anydomain.com
  • www.example.com CNAME example.com 또는 anydomain.com

Amazon S3 및 CloudFront를 사용하여 다른 URI 경로로 또는 HTTP에서 HTTPS로 리디렉션

이러한 두 가지 일반적인 리디렉션 시나리오는 CNAME 레코드를 이용하는 간단한 DNS 리디렉션을 통해 얻을 수 없습니다. 이러한 시나리오에서는 애플리케이션 측에서 리디렉션을 구성해야 합니다. Amazon CloudFront, Amazon 단순 스토리지 서비스(Amazon S3) 정적 웹 호스팅 및 Route 53을 사용하여 요청을 리디렉션할 수 있습니다.
참고: Amazon S3 정적 웹 호스팅은 HTTP 프로토콜만 지원합니다. HTTP에서 HTTPS로의 리디렉션을 수행하려면 CloudFront 배포를 사용해야 합니다.

사전 요구 사항

이 시나리오에서 도메인을 리디렉션하려면 다음이 필요합니다.

  • Route 53에서 호스팅되는 도메인에 대한 호스팅 영역(example.com)
  • 도메인의 호스팅 영역(example.com)에 리소스 레코드를 추가할 수 있는 권한
  • Amazon S3 버킷을 생성할 수 있는 권한
  • CloudFront 배포를 생성할 수 있는 권한
  • 도메인 이름(example.com 및 www.example.com)에 대한 AWS Certificate Manager(ACM) 인증서

Amazon S3 구성

  1. Amazon S3 콘솔을 엽니다.
  2. 전역에서 고유한 이름으로 S3 버킷을 만듭니다.
  3. 방금 만든 버킷을 선택한 후 속성을 선택합니다.
  4. 정적 웹 사이트 호스팅에서 편집을 선택합니다.
  5. 호스팅 유형에서 객체에 대한 요청 리디렉션을 선택합니다.
  6. 호스트 이름(새 리디렉션 위치인 domain.com 또는 domain.com/xxx/xxx)을 입력한 다음 새 도메인의 프로토콜을 선택합니다.
  7. 저장(Save)을 선택합니다.
  8. 버킷의 엔드포인트(example.com.s3-website-us-east-1.amazonaws.com)를 기록해 둡니다. 다음 작업에서 이 정보를 사용하여 CloudFront의 오리진 도메인 이름을 구성합니다.

CloudFront 구성

  1. CloudFront 콘솔을 엽니다.
  2. 배포 생성(Create Distribution)을 선택합니다.
  3. 에서 시작하기(Get Started)를 선택합니다.
  4. 오리진 도메인 이름(Origin Domain Name)에 이전 작업에서 기록한 S3 버킷의 웹 사이트 엔드포인트를 입력합니다.
  5. 뷰어 프로토콜 정책(Viewer Protocol Policy)에서 HTTP에서 HTTPS로의 리디렉션(Redirect HTTP to HTTPS)을 선택합니다.
  6. 요구 사항에 따라 나머지 CloudFront 설정을 구성합니다.
  7. CloudFront에서 사용자 지정 도메인을 사용하지 않는 경우 배포 생성(Create Distribution)을 선택하여 프로세스를 완료합니다.
    사용자 지정 도메인을 사용하는 경우 배포를 생성하기 전에 다음과 같은 추가 단계를 수행하세요.
    대체 도메인 이름(CNAME)에 사용자 지정 도메인(example.com)을 입력합니다.
    SSL 인증서에서 사용자 지정 SSL 인증서를 선택합니다. 그런 다음 배포에 할당할 사용자 지정 SSL 인증서를 선택합니다.
    참고: 인증서 설치에 대한 자세한 내용은 SSL/TLS 인증서를 사용하도록 CloudFront 배포를 구성하려면 어떻게 합니까?를 참조하십시오.
    배포 생성(Create Distribution)을 선택합니다.

루트 53 구성

  1. Route 53 콘솔을 엽니다.
  2. 호스팅 영역(example.com)을 선택합니다.
  3. example.com에 대한 리소스 레코드를 만듭니다.
    레코드 유형(Record Type)에서 A - IPv4 address를 선택합니다.
    별칭(Alias)에서 예(Yes)를 선택합니다.
    별칭 대상(Alias Target)에서 빈 값 필드를 선택합니다. 드롭다운에서, 이전 작업에서 생성한 CloudFront 배포의 도메인 이름을 선택합니다.
  4. 요구 사항에 따라 나머지 설정을 구성한 다음 생성(Create)을 선택합니다.

Application Load Balancer를 사용하여 도메인 이름 리디렉션 또는 HTTP에서 HTTPS로 리디렉션

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

Application Load Balancer를 구성의 일부로 사용하는 경우 다음 단계를 완료하여 한 도메인을 다른 도메인으로 리디렉션하는 서비스를 사용할 수 있습니다.

Application Load Balancer 구성

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

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

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

리디렉션이 의도한 대로 작동하는지 확인

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

1.    AWS CLI에서 curl 유틸리티 명령을 사용합니다.

명령 예제:

curl -IL https://swapnil.live.

출력 예제:

curl -IL https://swapnil.live  --> Initial Link
HTTP/2 301
server: awselb/2.0
date: Sat, 15 May 2021 09:00:14 GMT
content-type: text/html
content-length: 134
location: https://www.example.com:443/  --> New redirected link 

HTTP/2 200  --> 200 OK Response from backend
content-encoding: gzip
accept-ranges: bytes
age: 155230
cache-control: max-age=604800
content-type: text/html; charset=UTF-8
date: Sat, 15 May 2021 09:00:14 GMT
etag: "3147526947"
expires: Sat, 22 May 2021 09:00:14 GMT
last-modified: Thu, 17 Oct 2019 07:18:26 GMT
server: ECS (dcb/7EEF)
x-cache: HIT
content-length: 648

2.    인터넷 브라우저에서 리디렉션할 도메인을 입력하고 대상 도메인으로 리디렉션되는지 확인합니다.

3.    (선택 사항) 자세한 내용은 HTTP 아카이브(HAR) 파일을 검토하세요. HAR 파일은 브라우저에서 기록하는 최신 네트워크 활동이 포함된 JSON 파일입니다.

HAR 파일 캡처

Google Chrome:

  1. 브라우저에서 Google Chrome 맞춤설정 및 제어를 선택합니다.
  2. 도구 더보기개발자 도구를 차례로 선택합니다.
  3. 브라우저에서 개발자 도구를 연 상태에서 네트워크(Network) 패널을 선택합니다.
  4. 로그 보존 확인란을 선택합니다.
  5. 지우기(Clear)를 선택하여 현재 네트워크 요청을 모두 지웁니다.
    참고: 페이지를 다시 로드하면 구성된 리디렉션 수준에 따라 처음 몇 개의 요청에서 발생하는 리디렉션을 볼 수 있습니다.
  6. 개발자 도구(DevTools) 창에서 특정 네트워크 요청에 대해 마우스 오른쪽 버튼을 클릭하여 컨텍스트 메뉴를 엽니다.
  7. 모두 콘텐츠가 있는 HAR로 저장(Save all as HAR with content)을 선택한 다음 파일을 저장합니다.

Microsoft Edge(Chromium):

  1. 브라우저에서 설정 및 기타를 선택합니다.
  2. 도구 더보기개발자 도구를 차례로 선택합니다.
  3. 브라우저에서 개발자 도구를 연 상태에서 네트워크(Network) 패널을 선택합니다.
  4. 로그 보존 확인란을 선택합니다.
  5. 지우기(Clear)를 선택하여 현재 네트워크 요청을 모두 지웁니다.
    참고: 페이지를 다시 로드하면 구성된 리디렉션 수준에 따라 처음 몇 개의 요청에서 발생하는 리디렉션을 볼 수 있습니다.
  6. 개발자 도구(DevTools) 창에서 특정 네트워크 요청에 대해 마우스 오른쪽 버튼을 클릭하여 컨텍스트 메뉴를 엽니다.
  7. 모두 콘텐츠가 있는 HAR로 저장(Save all as HAR with content)을 선택한 다음 파일을 저장합니다.

Mozilla Firefox:

  1. 브라우저에서 메뉴 열기를 선택합니다.
  2. 웹 개발자를 선택합니다.
  3. 웹 개발자 메뉴에서 네트워크를 선택합니다.
    참고: 일부 버전의 Firefox에서는 웹 개발자 메뉴가 도구 메뉴에 있습니다.
  4. 네트워크 모니터에서 로그 유지 확인란을 선택합니다.
  5. 휴지통 아이콘(지우기)을 선택하여 현재 네트워크 요청을 모두 지웁니다.
    참고: 페이지를 다시 로드하면 구성된 리디렉션 수준에 따라 처음 몇 개의 요청에서 발생하는 리디렉션을 볼 수 있습니다.
  6. 네트워크 모니터에서 요청 목록에 있는 특정 네트워크 요청에 대해 마우스 오른쪽 버튼을 클릭하여 컨텍스트 메뉴를 엽니다.
  7. HAR로 모두 저장(Save All As HAR)을 선택한 다음 파일을 저장합니다.

HAR 파일 분석

  1. Google의 HAR 분석기와 같은 원하는 HAR 분석기를 엽니다.
  2. 방금 만든 HAR 파일을 업로드합니다.
  3. 3XX를 제외한 모든 HTTP 코드에 대한 확인란의 선택을 취소합니다.
  4. 리디렉션 요청에 대한 세부 정보를 보려면 나열된 항목 중 하나를 선택합니다.

이 문서가 도움이 되었나요?


결제 또는 기술 지원이 필요하세요?