Amazon CloudFront
개발자 안내서 (API 버전 2016-09-29)

CloudFront에서 HTTPS 요청을 제공하는 방식 선택

최종 사용자가 HTTPS를 사용하고 파일에 다른 도메인 이름을 사용하게 하려면 CloudFront에서 HTTPS 요청을 제공하는 방식에 대해 다음 옵션 중 하나를 선택해야 합니다.

  • 서버 이름 표시(SNI) 사용 - 권장

  • 각 엣지 로케이션에서 전용 IP 주소 사용

이 단원에서는 각 옵션이 어떻게 작동하는지를 설명합니다.

SNI를 사용하여 HTTPS 요청 제공(대부분 클라이언트에 적용)

서버 이름 표시(SNI)는 2010년 이후 출시된 브라우저와 클라이언트에서 지원되는 TLS 프로토콜의 확장 기능입니다. SNI를 사용하여 HTTPS 요청을 제공하도록 CloudFront를 구성한 경우 CloudFront에서는 대체 도메인 이름을 각 엣지 로케이션의 IP 주소와 연결합니다. 최종 사용자가 HTTPS 콘텐츠 요청을 제출하면 DNS는 이 요청을 올바른 엣지 로케이션의 IP 주소로 라우팅합니다. 도메인 이름의 IP 주소는 SSL/TLS 핸드셰이크 협상 중에 결정됩니다(IP 주소는 배포 전용이 아님).

HTTPS 연결 설정 과정 초기에 SSL/TLS 협상이 발생합니다. CloudFront에서 요청과 관련된 도메인을 즉시 확인할 수 없으면 연결이 끊어집니다. SNI를 지원하는 최종 사용자가 콘텐츠에 대해 HTTPS 요청을 전송할 경우 다음과 같은 작업이 수행됩니다.

  1. 최종 사용자는 요청 URL에서 도메인 이름을 자동으로 가져와서 요청 헤더의 필드에 추가합니다.

  2. CloudFront는 요청을 받으면 요청 헤더에서 도메인 이름을 찾아, 해당하는 SSL/TLS 인증서로 요청에 응답합니다.

  3. 최종 사용자와 CloudFront는 SSL/TLS 협상을 수행합니다.

  4. 요청된 콘텐츠를 CloudFront가 최종 사용자에 반환합니다.

SNI를 지원하는 최신 브라우저 목록은 Wikipedia 항목인 Server Name Indication을 참조하십시오.

SNI를 사용하고자 하지만 사용자 브라우저 중 일부에서 SNI가 지원되지 않는 경우 몇 가지 옵션 중 하나를 사용할 수 있습니다.

  • SNI 대신에 전용 IP 주소를 사용하여 HTTPS 요청을 제공하도록 CloudFront를 구성합니다. 자세한 내용은 전용 IP 주소를 사용하여 HTTPS 요청 제공(모든 클라이언트에 적용) 단원을 참조하십시오.

  • 사용자 지정 인증서 대신에 CloudFront SSL/TLS 인증서를 사용합니다. 그러기 위해서는 파일에 대한 URL에서 배포의 CloudFront 도메인 이름을 사용해야 합니다. 예: https://d111111abcdef8.cloudfront.net/logo.png.

    기본 CloudFront 인증서를 사용할 경우 최종 사용자가 SSL 프로토콜 TLSv1 또는 그 이상 버전을 지원해야 합니다. CloudFront는 기본 CloudFront 인증서로 SSLv3을 지원하지 않습니다.

    또한 CloudFront에서 사용 중인 SSL/TLS 인증서를 사용자 지정 인증서에서 기본 CloudFront 인증서로 다음과 같이 변경해야 합니다.

    • 배포를 사용하여 콘텐츠를 배포하지 않은 경우에는 구성을 변경하면 됩니다. 자세한 내용은 배포 업데이트 단원을 참조하십시오.

    • 배포를 사용하여 콘텐츠를 배포한 경우에는 새 CloudFront 배포를 생성하고 파일에 대한 URL을 변경하여 콘텐츠를 사용할 수 없는 시간을 줄이거나 없애야 합니다. 자세한 내용은 사용자 지정 SSL/TLS 인증서에서 기본 CloudFront 인증서로 되돌리기 단원을 참조하십시오.

  • 사용자가 사용하는 브라우저를 개발자가 제어할 수 있는 경우 사용자가 해당 브라우저를 SNI가 지원되는 브라우저로 업그레이드하게 합니다.

  • HTTPS 대신에 HTTP를 사용합니다.

전용 IP 주소를 사용하여 HTTPS 요청 제공(모든 클라이언트에 적용)

서버 이름 표시(SNI)는 요청을 도메인과 연결하는 한 가지 방법입니다. 또 다른 방법으로는 전용 IP 주소 사용을 들 수 있습니다. 2010년 이후 출시 브라우저나 클라이언트로 업그레이드가 불가한 사용자가 있다면 전용 IP 주소를 사용하여 HTTPS 요청을 제공할 수 있습니다. SNI를 지원하는 최신 브라우저 목록은 Wikipedia 항목인 Server Name Indication을 참조하십시오.

중요

전용 IP 주소를 사용하여 HTTPS 요청을 제공하도록 CloudFront를 구성하면 추가 월별 요금이 발생합니다. 요금 발생은 SSL/TLS 인증서를 배포와 연결하고 배포를 활성화할 때 시작됩니다. CloudFront 요금에 대한 자세한 내용은 Amazon CloudFront 요금을 참조하십시오. 또한 여러 개의 CloudFront 배포에 동일한 인증서 사용 단원을 참조하십시오.

전용 IP 주소를 사용하여 HTTPS 요청을 제공하도록 CloudFront를 구성한 경우 CloudFront에서는 대체 도메인 이름을 각 CloudFront 엣지 로케이션의 전용 IP 주소와 연결합니다. 최종 사용자가 콘텐츠에 대해 HTTPS 요청을 전송할 경우 다음과 같은 작업이 수행됩니다.

  1. DNS에서 배포의 해당 엣지 로케이션에 대한 IP 주소로 요청을 라우팅합니다.

  2. CloudFront에서는 이 IP 주소를 사용하여 배포를 식별하고 최종 사용자에게 반환할 SSL/TLS 인증서를 결정합니다.

  3. 최종 사용자와 CloudFront가 SSL/TLS 인증서를 사용하여 SSL/TLS 협상을 수행합니다.

  4. 요청된 콘텐츠를 CloudFront가 최종 사용자에 반환합니다.

이 방법은 사용자가 사용 중인 브라우저나 기타 최종 사용자와 상관없이 모든 HTTPS 요청에 작동합니다.