사용자 지정 오리진(EC2 인스턴스 또는 로드 밸런서)에서 애플리케이션을 사용할 수 있지만 CloudFront에서 오류가 발생합니다. 이유가 무엇입니까?

최종 업데이트 날짜: 2019년 6월 24일

Amazon Elastic Compute Cloud(Amazon EC2) 인스턴스 또는 로드 밸런서를 웹 사이트 또는 애플리케이션에 대한 사용자 지정 오리진으로 사용하고 있습니다. 사용자 지정 오리진에 직접 액세스할 수 있지만 Amazon CloudFront에서 동일한 콘텐츠를 가져올 수 없거나 CloudFront가 오류를 반환합니다. 이 문제를 해결하려면 어떻게 해야 합니까? 

해결 방법

다음 문제 해결 단계를 수행하십시오.

오류 응답 식별

브라우저 개발자 도구의 네트워크 탭을 검토하여 CloudFront에서 반환되는 HTTP 응답 헤더를 확인합니다. 또는 cURL 같은 유틸리티를 사용해도 됩니다.

HTTP 502 상태 코드(잘못된 게이트웨이) 응답이 수신되는 경우 CloudFront와 오리진 간의 SSL 연결 문제일 수 있습니다. 문제 해결 지침은 HTTP 502 상태 코드(잘못된 게이트웨이)를 참조하십시오.

HTTP 504 상태 코드(게이트웨이 제한 시간) 응답이 수신되는 경우 보안 그룹 또는 방화벽의 액세스 구성 문제일 수 있습니다. 문제 해결 지침은 HTTP 504 상태 코드(게이트웨이 제한 시간)를 참조하십시오.

요청 헤더, 쿠키 또는 쿼리 문자열 기반 전달 확인

애플리케이션에 특정 요청 헤더, 쿠키 또는 쿼리 문자열이 필요한 경우 필요한 파라미터를 오리진으로 전달하도록 배포의 캐시 동작을 업데이트합니다. 기본 설정에서는 CloudFront가 필요한 파라미터를 전달하지 않을 수 있습니다.

자세한 내용은 쿠키를 기반으로 콘텐츠 캐싱, 쿼리 문자열 파라미터 기반의 콘텐츠 캐싱, 요청 헤더에 따라 콘텐츠 캐싱을 참조하십시오.

허용되는 HTTP 메서드 확인

기본적으로 CloudFront는 GET 및 HEAD HTTP 메서드를 허용합니다. 애플리케이션을 오리진 서버에서 실행하고 CloudFront를 통해 애플리케이션에 액세스하는 경우 애플리케이션 호출에 필요한 HTTP 메서드를 확인하십시오. 이러한 HTTP 메서드는 배포에서도 허용되어야 합니다. 예를 들어 양식 제출을 위해 애플리케이션을 실행하는 경우 배포에서 POST 메서드를 허용해야 합니다. 배포에서 허용되는 HTTP 메서드를 변경하는 방법에 대한 지침은 허용된 HTTP 메서드 방법을 참조하십시오.

클라이언트와 CloudFront 간의 SSL 문제 해결

SSL 문제로 인해 CloudFront를 통해 웹 사이트 또는 애플리케이션에 액세스할 수 없는 경우 CloudFront가 HTTPS를 통해 도메인 이름을 서비스하지 않는 이유는 무엇입니까?를 참조하십시오.

반복적인 리디렉션 문제 해결

CloudFront를 통해 웹 사이트 또는 애플리케이션을 로드할 때 반복적인 리디렉션이 발생하는 경우 CloudFront의 오리진 구성을 확인하십시오. 또한 오리진 서버의 리디렉션 정책을 확인합니다.

일반적인 워크플로에서 클라이언트는 CloudFront에 연결하고 CloudFront는 오리진 서버에 연결합니다. 이 워크플로가 성공하려면 배포의 오리진 프로토콜 정책과 오리진 서버의 리디렉션 정책이 서로 호환되어야 합니다.

예를 들어 오리진 서버가 모든 HTTP 요청을 HTTPS로 리디렉션할 때 배포의 오리진 프로토콜 정책이 HTTP로 설정되어 있으면 요청이 루프로 전송됩니다. 이 시나리오에서 클라이언트가 http://d12345.cloudfront.net/example.image를 요청하면 CloudFront는 HTTP로 콘텐츠를 가져오기 위해 오리진 서버로 요청을 전송합니다. 요청이 오리진 서버에 도착하면 오리진 서버가 HTTP에서 HTTPS로 요청을 리디렉션합니다. 요청은 다시 HTTPS를 사용하여 CloudFront로 라우팅되고 CloudFront는 다시 HTTP를 사용하여 오리진으로 요청을 보내므로 요청 루프가 다시 시작됩니다.

반복적인 리디렉션을 해결하려면 다음 구성 중 하나를 사용하십시오.

  • CloudFront 배포의 오리진 프로토콜 정책을 HTTPS만 사용하도록 변경합니다. 그렇게 하려면 사용자 지정 오리진 서버에 유효한 SSL 인증서가 설치되어 있어야 합니다.
  • 유효한 SSL 인증서가 오리진 서버에 설치되지 않은 경우에는 리디렉션 정책을 제거할 수 있습니다. 그런 다음 HTTP 요청을 수락하도록 오리진 서버를 구성하면 됩니다.
    경고: HTTP 요청은 통신에 일반 텍스트 형식이 사용되므로 중요한 정보에는 사용하지 않는 것이 좋습니다.

이 문서가 도움이 되었습니까?

AWS에서 개선해야 할 부분이 있습니까?


도움이 필요하십니까?