커스텀 오류 응답 개요

전역 외부 애플리케이션 부하 분산기를 사용하면 HTTP 오류 상태 코드(4xx5xx)가 생성될 때 자체 오류 응답을 맞춤설정할 수 있습니다. 부하 분산기와 백엔드 인스턴스 모두에서 생성된 오류의 오류 응답을 맞춤설정할 수 있습니다. Google Cloud Armor에서 트래픽이 거부될 때 생성되는 오류 응답 코드에 대한 오류 응답을 맞춤설정할 수도 있습니다.

다음은 자체 회사 브랜드 및 로고, 관련 페이지 링크, 맞춤설정된 메시지를 통해 외부에 공개되는 소비자 애플리케이션의 오류 응답을 구성할 수 있는 커스텀 오류 페이지의 예시입니다.

커스텀 HTTP 오류 응답 페이지
커스텀 HTTP 오류 응답 페이지

커스텀 오류 응답 정책을 사용하여 여러 HTTP 오류 상태 코드, URL 도메인, URL 경로, HTTP 요청 헤더 및 매개변수 필드에 서로 다른 오류 응답을 구성할 수 있습니다.

커스텀 오류 응답을 반환하면 다음과 같은 이점을 제공하여 사용자 환경을 개선할 수 있습니다.

  • 일관된 브랜딩 경험 제공
  • 컨텍스트와 관련성 있는 정보를 제공하여 사용성 및 사용자 환경 향상
  • 다운타임 및 클라이언트 측 오류의 부정적인 영향 완화
  • 네트워크 보안 강화

커스텀 오류 응답 정책을 구성하지 않으면 그림 2와 같이 브랜드 없는 일반적인 오류 객체가 제공됩니다.

일반 HTTP 오류 응답 페이지
일반 HTTP 오류 응답 페이지

사용 사례

커스텀 오류 응답 기능은 많은 사용 사례를 다룹니다. 이 섹션에서는 몇 가지 개략적인 예시를 설명합니다.

자체 유지보수 페이지 정의

백엔드가 비정상이거나 유지보수 모드일 때 회사 브랜딩 및 정보가 포함된 오류 페이지를 반환할 수 있습니다. 고객센터 전화번호나 사용자가 웹사이트 액세스를 다시 시도해야 하는 경우와 같은 유용한 정보가 포함된 문맥적 오류 페이지를 빌드할 수 있습니다. 호스트 이름 및 HTTP 오류 코드와 같은 오류 조건 일치에 따라 오류 페이지를 맞춤설정할 수 있습니다.

자체 기본 오류 페이지 정의

특정 오류 코드에 따라 맞춤설정된 오류 응답을 설정할 수 있습니다. 예를 들어 401 (Unauthorized) HTTP 응답 코드에 '로그인 또는 등록' 메시지가 포함된 오류 페이지를 설정할 수 있습니다. 다른 모든 4xx 시리즈 및 5xx 시리즈 HTTP 오류 코드에 대한 회사 브랜딩 및 기타 관련 정보가 포함된 기본 오류 페이지를 설정할 수도 있습니다.

보안 규칙의 오류 응답 정의

Google Cloud Armor 보안 정책에 의해 트래픽이 거부될 때 생성되는 오류 응답 코드에 대한 커스텀 오류 페이지를 반환할 수 있습니다. Google Cloud Armor 보안 규칙에 입력한 것과 동일한 4xx 시리즈 또는 5xx 시리즈 HTTP 오류 코드로 오류 페이지를 구성해야 합니다.

다운타임의 영향 완화

해당하는 경우 200 (OK) HTTP 상태 코드를 반환하도록 오류 응답을 구성하고 정적 웹페이지를 제공하여 다운타임 중 오류 페이지 대신 사용자에게 보다 유용한 컨텍스트 정보를 제공할 수 있습니다.

클라이언트 요청 유형에 따라 오류 응답 맞춤설정

HTTP 요청 헤더 및 매개변수(예: Content-Type 헤더)를 기준으로 오류 응답을 맞춤설정할 수 있습니다. 원래 요청을 오류 서비스로 라우팅할 때 라우팅은 Content-Type 헤더를 고려하여 웹페이지(브라우저에서의 요청의 경우) 또는 JSON(웹 API에서의 요청의 경우)을 제공할 수 있습니다.

커스텀 오류 응답 정책 작동 방식

커스텀 오류 응답 정책은 URL 맵 리소스의 세 가지 수준(부하 분산기 수준, URL 도메인 수준, URL 경로 수준)에서 정의할 수 있습니다.

  • 부하 분산기 수준. 정책은 부하 분산기에서 수신되는 모든 트래픽에 적용됩니다.

  • URL 도메인 수준. 정책은 특정 도메인 이름 또는 호스트 이름(예: www.example.com)으로 전달되는 트래픽에 적용됩니다.

  • URL 경로 수준. 정책은 특정 경로(예: www.example.com/images/*)로 전달되는 트래픽에 적용됩니다. 이 수준에서 HTTP 요청 헤더 및 매개변수와 함께 고급 일치 조건을 사용할 수도 있습니다(예: Content-Type:application/json).

다음 표에서는 부하 분산기 수준, URL 도메인 수준, URL 맵의 URL 경로 수준에서 적용된 커스텀 오류 응답 정책을 보여줍니다.

정책 수준 API 필드
부하 분산기 urlMaps.defaultCustomErrorResponsePolicy
URL 도메인 pathMatchers[].defaultCustomErrorResponsePolicy
URL 경로

pathMatchers[].pathRules[].customErrorResponsePolicy

pathMatchers[].routeRules[].customErrorResponsePolicy

URL 맵 리소스의 여러 수준에서 커스텀 오류 응답 정책을 구성하면 가장 낮은 수준의 URL 맵 수준에서 커스텀 오류 정책에 의해 지정된 오류 객체가 반환됩니다. URL 맵의 하위 수준에 정의된 오류 응답 정책은 더 구체적이며 URL 맵의 상위 수준에 정의된 오류 응답 정책보다 우선 적용됩니다.

예를 들어, 정책이 오류 조건과 일치하고 하위 수준(URL 도메인 또는 URL 경로)의 오류 코드에 대해 일치하는 정책이 정의되지 않은 경우에만 부하 분산기 수준의 커스텀 오류 응답 정책이 적용됩니다. 마찬가지로 URL 도메인 수준의 커스텀 오류 응답 정책은 정책이 오류 조건과 일치하고 하위 수준(URL 경로)의 오류 코드에 대해 일치하는 정책이 정의되지 않은 경우에만 적용됩니다. 이 구성에 대한 자세한 내용은 여러 도메인, 경로, 오류 응답 코드에 대해 세분화된 커스텀 오류 응답 정책 구성을 참조하세요.

HTTP 오류 응답 코드와 일치하도록 여러 오류 응답 규칙 지정

커스텀 오류 응답 정책 내의 어느 수준에서나 여러 오류 응답 규칙을 지정할 수 있습니다. 이러한 규칙은 특정 오류 코드 또는 오류 코드 범위와 HTTP 오류 응답을 일치시킬 수 있습니다. 오류 코드 범위에 대한 규칙과 특정 오류 코드에 대한 규칙을 지정하면 특정 오류 코드가 있는 규칙이 우선 적용됩니다.

예를 들어 401 (Unauthorized) 오류 코드에 대한 규칙을 구성하고 모든 4xx 시리즈 오류 코드에 대한 다른 규칙을 구성한다고 가정해 보겠습니다. 백엔드 서비스가 401 오류 코드를 반환하면 401 오류와 일치하는 규칙이 적용됩니다. 그러나 백엔드 서비스가 403 오류 코드를 반환하면 4xx 오류 규칙이 적용됩니다.

HTTP 응답 코드 재정의

오류 응답 규칙을 사용하면 부하 분산기에서 반환된 HTTP 응답 코드를 수정할 수 있습니다. 즉, 기본적으로 서버에서 생성된 응답 코드를 재정의하고 요청의 최종 응답 코드를 정의할 수 있습니다. 200 (OK), 4xx 시리즈, 응답 코드의 5xx 시리즈 또는 기타 3자리 응답 코드를 비롯한 모든 HTTP 응답 코드를 반환하도록 지정할 수 있습니다. 응답 코드 재정의에 대한 자세한 내용은 특정 호스트의 특정 오류 코드에 대한 오류 페이지 구성을 참조하세요.

제한사항

  • 이 기능은 전역 외부 애플리케이션 부하 분산기에서만 지원됩니다. 리전 모드와 기본 모드는 지원되지 않습니다.

  • 오류 서비스에서 커스텀 오류 객체를 가져올 수 없는 경우(예: 콘텐츠 경로가 잘못 구성된 경우)에는 브랜드 없는 일반적인 오류 객체가 제공됩니다.

  • 커스텀 오류 응답 정책은 오류 서비스에서 보안 위험을 위해 반환하는 객체를 모니터링하거나 필터링하지 않습니다. 따라서 취약점을 제거하고 잠재적 노출의 영향을 제한하는 데 주의를 기울여야 합니다.

  • Cloud Storage 버킷을 사용하는 동안 잘못된 구성을 방지하기 위해 일반적인 Cloud Storage 권장사항을 검토하세요.

가격 책정

커스텀 오류 응답을 사용하는 데 추가 비용이 들지 않습니다. Google Cloud 부하 분산의 표준 가격이 적용됩니다. 자세한 내용은 가격 책정을 참조하세요.

다음 단계