특정 HTTP 상태 코드에 대한 사용자 지정 오류 페이지 생성 - Amazon CloudFront

특정 HTTP 상태 코드에 대한 사용자 지정 오류 페이지 생성

기본 메시지 대신 나머지 웹 사이트와 동일한 형식을 사용하는 페이지와 같은 사용자 지정 오류 메시지를 표시하려는 경우, CloudFront가 최종 사용자에게 사용자 지정 오류 메시지가 포함된 HTML 파일 등의 객체를 반환하게 하면 됩니다.

반환하려는 파일과 이 파일을 반환해야 하는 오류를 지정하려면 CloudFront 배포를 업데이트하여 해당 값을 지정합니다. 자세한 내용은 오류 응답 동작 구성 섹션을 참조하세요.

예를 들어 다음은 사용자 지정 오류 페이지입니다.

사용자 지정 AWS 404 페이지 예시 스크린샷.

지원되는 HTTP 상태 코드 각각에 서로 다른 객체를 지정하거나 지원되는 상태 코드 전체에 동일한 객체를 사용할 수 있습니다. 일부 상태 코드에 사용자 지정 오류 페이지를 지정하고 다른 상태 코드에는 사용자 지정 오류 페이지를 지정하지 않도록 선택할 수 있습니다.

CloudFront를 통해 제공하는 객체는 다양한 이유로 사용 불가능할 수 있습니다. 이러한 이유는 넓게 보면 다음 두 가지 범주로 나뉩니다.

  • 클라이언트 오류: 요청에 문제가 있음을 나타냅니다. 지정된 이름의 객체를 사용할 수 없거나, 사용자에게 Amazon S3 버킷의 객체를 가져오기 위해 필요한 권한이 없는 경우를 예로 들 수 있습니다. 클라이언트 오류가 발생하면 오리진에서는 4xx 범위의 HTTP 상태 코드를 CloudFront에 반환합니다.

  • 서버 오류: 오리진 서버에 문제가 있음을 나타냅니다. HTTP 서버가 사용 중이거나 사용 불가능한 상태인 경우를 예로 들 수 있습니다. 서버 오류가 발생하면 오리진 서버에서 5xx 범위의 HTTP 상태 코드를 CloudFront에 반환합니다. 또는 특정 기간 동안 CloudFront에서 오리진 서버로부터 응답을 가져오지 않고 504 상태 코드(게이트웨이 시간 초과)를 적용합니다.

CloudFront에서 사용자 지정 오류 페이지를 반환할 수 있는 HTTP 상태 코드에는 다음이 포함됩니다.

  • 400, 403, 404, 405, 414, 416

  • 500, 501, 502, 503, 504

    참고
    • CloudFront에서 요청이 안전하지 않을 수 있음을 감지하면 CloudFront는 사용자 지정 오류 페이지 대신 400(잘못된 요청) 오류를 반환합니다.

    • HTTP 상태 코드 416(요청된 범위를 충족할 수 없음)에 대한 사용자 지정 오류 페이지를 만들 수 있으며 오리진에서 CloudFront로 상태 코드 416을 반환할 경우 CloudFront에서 최종 사용자로 반환하는 HTTP 상태 코드를 변경할 수 있습니다. 자세한 내용은 CloudFront에서 반환하는 응답 코드 변경 단원을 참조하십시오. 그러나 CloudFront에서는 상태 코드 416 응답을 캐싱하지 않습니다. 따라서 상태 코드 416에 대해 [오류 캐싱 최소 TTL(Error Caching Minimum TTL)]의 값을 지정하더라도 CloudFront에 이 값이 사용되지 않습니다.

    • 경우에 따라서는 HTTP 503 상태 코드에 대한 사용자 지정 오류 페이지를 반환하도록 CloudFront를 구성하더라도 이 페이지가 반환되지 않습니다. CloudFront 오류 코드가 Capacity Exceeded 또는 Limit Exceeded인 경우 CloudFront는 사용자 지정 오류 페이지를 사용하지 않고 최종 사용자에게 503 상태 코드를 반환합니다.

    • 사용자 지정 오류 페이지를 생성한 경우 CloudFront는 다음 응답 코드에 대해 Connection: close 또는 Connection: keep-alive를 반환합니다.

      • CloudFront는 400, 405, 414, 416, 500, 501 상태 코드에 대해 Connection: close를 반환합니다.

      • CloudFront는 403, 404, 502, 503, 504 상태 코드에 대해 Connection: keep-alive를 반환합니다.

CloudFront에서 오리진에서 보낸 오류 응답을 처리하는 방법에 대한 자세한 설명을 보려면 CloudFront에서 오리진의 HTTP 4xx 및 5xx 상태 코드를 처리하는 방법 단원을 참조하세요.