CloudFront 오리진 페일오버를 통한 고가용성 최적화 - 아마존 CloudFront

기계 번역으로 제공되는 번역입니다. 제공된 번역과 원본 영어의 내용이 상충하는 경우에는 영어 버전이 우선합니다.

CloudFront 오리진 페일오버를 통한 고가용성 최적화

고가용성이 필요한 시나리오에 대해 오리진 장애 조치를 설정할 CloudFront 수 있습니다. 시작하려면 2개의 오리진(기본 오리진 및 보조 오리진)이 포함된 오리진 그룹을 만듭니다. 기본 오리진을 사용할 수 없거나 장애를 나타내는 특정 HTTP 응답 상태 코드를 반환하는 경우 CloudFront 자동으로 보조 오리진으로 전환됩니다.

오리진 장애 조치를 설정하려면 최소 2개의 오리진이 있는 배포가 전제되어야 합니다. 다음으로, 2개의 오리진이 포함된 배포에 대한 오리진 그룹을 만들고 그 중 1개의 오리진을 기본 오리진으로 설정합니다. 마지막으로, 오리진 그룹을 사용하도록 캐시 동작을 생성하거나 업데이트합니다.

오리진 그룹을 설정하고 특정 오리진 장애 조치 옵션을 구성하는 단계는 오리진 그룹 생성 단원을 참조하십시오.

캐시 동작에 대한 원본 장애 조치를 구성한 후 최종 사용자 CloudFront 요청에 대해 다음을 수행합니다.

  • 캐시 적중 시 요청된 객체를 CloudFront 반환합니다.

  • 캐시가 누락된 경우 요청을 오리진 그룹의 기본 오리진으로 CloudFront 라우팅합니다.

  • 기본 오리진이 HTTP 2xx 또는 3xx 상태 코드와 같이 페일오버를 위해 구성되지 않은 상태 코드를 반환하면 요청된 객체를 뷰어에게 CloudFront 제공합니다.

  • 다음과 같은 문제가 발생하는 경우:

    • 기본 오리진이 장애 조치를 위해 구성된 HTTP 상태 코드를 반환합니다.

    • CloudFront 기본 오리진에 연결할 수 없습니다.

    • 기본 오리진의 응답이 너무 오래 걸립니다(시간 초과).

    그런 다음 요청을 오리진 그룹의 보조 오리진으로 CloudFront 라우팅합니다.

    참고

    비디오 콘텐츠 스트리밍과 같은 일부 사용 사례의 경우 보조 오리진으로 빠르게 페일오버해야 CloudFront 할 수 있습니다. 보조 오리진으로의 CloudFront 페일오버 속도를 조정하려면 을 참조하십시오오리진 제한 시간 및 시도 횟수 제어.

CloudFront 이전 요청이 보조 오리진으로 페일오버된 경우에도 모든 수신 요청을 기본 오리진으로 라우팅합니다. CloudFront 기본 오리진에 대한 요청이 실패한 후에만 보조 오리진으로 요청을 보냅니다.

CloudFront 최종 사용자 요청의 HTTP 메서드가 GETHEAD, 또는 인 경우에만 보조 오리진으로 장애 OPTIONS 조치합니다. CloudFront 최종 사용자가 다른 HTTP 메서드 (예: POST 등) 를 보내는 PUT 경우 장애 조치가 수행되지 않습니다.

다음 다이어그램에서는 오리진 장애 조치의 작동 방식을 보여 줍니다.


				오리진 장애 조치의 작동 방식

오리진 그룹 생성

오리진 그룹을 생성하려면
  1. 에 AWS Management Console 로그인하고 에서 CloudFront 콘솔을 엽니다https://console.aws.amazon.com/cloudfront/v4/home.

  2. 오리진 그룹을 만들려는 분포를 선택합니다.

  3. 오리진 탭을 선택합니다.

  4. 배포에 둘 이상의 원본이 있는지 확인합니다. 그렇지 않으면 두 번째 원본을 추가합니다.

  5. 원본(Origins) 탭의 원본 그룹(Origin groups) 창에서 원본 그룹 생성(Create origin group)을 선택합니다.

  6. 오리진 그룹에 대한 오리진을 선택합니다. 오리진을 추가한 후 화살표를 사용하여 우선순위를 설정합니다. 즉, 기본 오리진과 보조 오리진을 지정합니다.

  7. 원본 그룹의 이름을 입력합니다.

  8. 장애 조치 기준으로 사용할 HTTP 상태 코드를 선택합니다. 상태 코드 400, 403, 404, 416, 500, 502, 503 또는 504의 어떠한 조합도 선택할 수 있습니다. 지정한 상태 코드 중 하나가 포함된 응답을 CloudFront 받으면 보조 오리진으로 페일오버됩니다.

    참고

    CloudFront 최종 사용자 요청의 HTTP 메서드가 GETHEAD, 또는 인 경우에만 보조 오리진으로 OPTIONS 페일오버합니다. CloudFront 최종 사용자가 다른 HTTP 메서드 (예: POST 등) 를 보내는 PUT 경우 장애 조치가 수행되지 않습니다.

  9. 원본 그룹 생성(Create origin group)을 선택합니다.

배포에 대한 오리진 그룹 지정에 대한 자세한 내용은 명칭 단원을 참조하십시오.

오리진 제한 시간 및 시도 횟수 제어

기본적으로 는 오리진 그룹의 기본 오리진에 30초 동안 연결을 CloudFront 시도한 후 (각각 10초씩 연결 3회 시도) 보조 오리진으로 페일오버합니다. 스트리밍 비디오 콘텐츠와 같은 일부 사용 사례의 경우 보조 오리진으로 더 빨리 CloudFront 페일오버하는 것이 필요할 수 있습니다. 다음 설정을 조정하여 보조 오리진으로 페일오버하는 CloudFront 속도에 영향을 줄 수 있습니다. 오리진이 보조 오리진이거나 오리진 그룹에 속하지 않은 오리진인 경우 이러한 설정은 HTTP 504 응답이 뷰어에 CloudFront 반환되는 속도에 영향을 줍니다.

더욱 신속하게 장애 조치하려면 더 짧은 연결 제한 시간, 더 적은 연결 시도 횟수 또는 둘 다를 지정합니다. 사용자 지정 오리진(정적 웹 사이트 호스팅으로 구성된 Amazon S3 버킷 오리진 포함)의 경우 오리진 응답 제한 시간을 조정할 수도 있습니다.

오리진 연결 제한 시간

원본 연결 제한 시간 설정은 오리진에 연결을 설정하려고 할 때 CloudFront 대기하는 시간에 영향을 줍니다. 기본적으로 연결이 설정되는 데 10초가 걸리지만 1~10초 (포함) 를 지정할 수 있습니다. CloudFront 자세한 설명은 연결 제한 시간 섹션을 참조하세요.

오리진 연결 시도 횟수

원본 연결 시도 설정은 오리진에 연결을 CloudFront 시도하는 횟수에 영향을 줍니다. 기본적으로 연결을 3번 CloudFront 시도하지만 1—3 (포함) 으로 지정할 수 있습니다. 자세한 설명은 연결 시도 섹션을 참조하세요.

사용자 지정 오리진 (정적 웹 사이트 호스팅으로 구성된 Amazon S3 버킷 포함) 의 경우 이 설정은 오리진 응답 제한 시간이 초과된 경우 오리진으로부터 응답을 CloudFront 받으려고 시도하는 횟수에도 영향을 줍니다.

오리진 응답 제한 시간
참고

이는 사용자 지정 오리진에만 적용됩니다.

오리진 응답 제한 시간 설정은 오리진으로부터 응답을 받거나 전체 응답을 받을 때까지 CloudFront 기다리는 시간에 영향을 줍니다. 기본적으로 30초 동안 CloudFront 대기하지만 1~60초 (포함) 를 지정할 수 있습니다. 자세한 설명은 응답 제한 시간(사용자 지정 오리진만 해당) 섹션을 참조하세요.

이러한 설정을 변경하는 방법

CloudFront 콘솔에서 이러한 설정을 변경하려면

  • 새 오리진 또는 새 배포의 경우 리소스를 생성할 때 이러한 값을 지정하십시오.

  • 기존 배포의 기존 오리진의 경우 오리진을 편집할 때 이 값을 지정하십시오.

자세한 내용은 배포를 만들거나 업데이트할 때 지정하는 값 단원을 참조하세요.

Lambda@Edge 함수와 함께 오리진 장애 조치 사용

오리진 그룹으로 설정한 배포판에 Lambda @Edge 함수를 CloudFront 사용할 수 있습니다. Lambda 함수를 사용하려면, 캐시 동작을 생성할 때 오리진 그룹에 대한 오리진 요청 또는 오리진 응답 트리거에 이 함수를 지정합니다. 오리진 그룹과 함께 Lambda@Edge 함수를 사용하는 경우, 단일 최종 사용자 요청에 대해 함수를 두 번 트리거할 수 있습니다. 예를 들어 다음 시나리오를 고려해 보십시오.

  1. 오리진 요청 트리거를 사용하여 Lambda@Edge 함수를 생성합니다.

  2. Lambda 함수는 기본 오리진에 요청을 보낼 CloudFront 때 (캐시 실패 시) 한 번 트리거됩니다.

  3. 기본 오리진은 장애 조치를 위해 구성된 HTTP 상태 코드로 응답합니다.

  4. Lambda 함수는 동일한 요청을 보조 오리진으로 전송할 CloudFront 때 다시 트리거됩니다.

다음 다이어그램에서는 오리진 요청이나 응답 트리거에 Lambda@Edge 함수가 포함된 경우 오리진 장애 조치가 작동하는 방식을 보여 줍니다.


					오리진 장애 조치가 Lambda@Edge 함수와 함께 작동하는 방식

Lambda@Edge 트리거 사용에 대한 자세한 내용은 Lambda@Edge 함수에 대한 트리거 추가 단원을 참조하십시오.

오리진 장애 조치와 함께 사용자 지정 오류 페이지 사용

사용자 지정 오류 페이지를 오리진 장애 조치에 대해 설정되지 않은 오리진에 사용하는 경우와 유사한 방식으로 사용자 지정 오류 페이지를 오리진 그룹에 사용할 수 있습니다.

오리진 장애 조치를 사용하는 경우 기본 또는 보조 오리진 (또는 둘 다) 에 대한 사용자 지정 오류 페이지를 CloudFront 반환하도록 구성할 수 있습니다.

  • 기본 오리진에 대한 사용자 지정 오류 페이지 반환 — 기본 오리진이 장애 조치를 위해 구성되지 않은 HTTP 상태 코드를 반환하면 뷰어에게 사용자 지정 오류 페이지를 CloudFront 반환합니다.

  • 보조 오리진에 대한 사용자 지정 오류 페이지 반환 — 보조 오리진으로부터 오류 상태 코드를 CloudFront 수신하면 사용자 지정 오류 페이지를 CloudFront 반환합니다.

에서 사용자 지정 오류 페이지를 사용하는 방법에 대한 자세한 내용은 을 CloudFront 참조하십시오사용자 지정 오류 응답 생성 중.