I/O 제한 시간 구성을 위한 권장사항

Apigee Edge 문서입니다.
Apigee X 문서로 이동
정보

클라이언트 애플리케이션에서 실행하는 API 요청은 백엔드 서비스에 도달하기 전에 Apigee Edge의 다양한 구성요소를 통해 흐릅니다. 대부분의 클라이언트 애플리케이션은 이러한 요청에 대한 응답이 적시에 수신되기를 기대합니다.

적시에 응답을 제공하기 위해 API 요청이 흐르는 각 구성요소에 I/O 시간 제한 값이 설정됩니다. 흐름의 구성요소 중 이전 구성요소보다 시간이 더 오래 걸리는 구성요소가 있으면 이전 구성요소의 제한 시간이 초과되고 504 게이트웨이 시간 초과 오류가 반환됩니다.

제한 시간을 구성할 때는 각 구성요소에서 값을 매우 신중하게 구성해야 합니다. 그렇지 않으면 504 게이트웨이 시간 초과 오류가 발생할 수 있습니다.

이 문서에서는 Apigee Edge에서 API 요청이 흐르는 다양한 구성요소에서 I/O 시간 제한을 구성하기 위한 권장사항을 설명합니다.

I/O 시간 제한 구성 권장사항

I/O 시간 제한을 구성할 때는 다음 권장사항을 고려하세요.

  • 첫 번째 구성요소: 항상 API 요청 흐름의 첫 번째 구성요소(Apigee Edge의 클라이언트 애플리케이션)에 가장 긴 제한 시간을 사용합니다.
  • 마지막 구성요소: API 요청 흐름의 마지막 구성요소인 Apigee Edge의 백엔드 서비스에서 항상 가장 짧은 제한 시간을 사용합니다.
  • 구성요소 간: 각 구성요소에 구성된 제한 시간 값이 흐름의 첫 번째 구성요소와 마지막 구성요소 간에 2~3초 이상 차이가 있는지 확인합니다.
  • 라우터: 라우터에서 구성하는 대신 특정 가상 호스트의 I/O 시간 제한 값을 구성 (수정)하는 것이 좋습니다. 이렇게 하면 새 제한 시간 값이 라우터에서 제공하는 모든 API 프록시가 아닌 특정 가상 호스트를 사용하는 API 프록시에만 영향을 미칩니다.

    라우터에서 실행되는 모든 API 프록시에 새 I/O 제한 시간 값이 필요하거나 적용된다고 확신할 수 있는 경우에만 라우터에서 I/O 제한 시간을 구성 (수정)합니다.

  • 메시지 프로세서: 메시지 프로세서에서 구성하는 대신 특정 API 프록시의 I/O 제한 시간 값을 구성 (수정)하는 것이 좋습니다. 이렇게 하면 새 제한 시간 값이 메시지 프로세서에서 제공하는 모든 API 프록시가 아닌 특정 API 프록시에만 영향을 미칩니다.

    메시지 프로세서에서 실행되는 모든 API 프록시에 새 I/O 제한 시간 값이 필요하거나 적용된다고 확신하는 경우에만 메시지 프로세서에서 I/O 제한 시간을 구성 (수정)합니다.

시나리오 예시

이 섹션의 시나리오는 I/O 시간 제한 값을 올바르게 설정하는 방법을 이해하는 데 도움이 됩니다.

시나리오 1: 클라이언트 애플리케이션에서 Apigee Edge에 직접 요청

이 섹션에서는 클라이언트 애플리케이션과 Apigee Edge, Apigee Edge와 백엔드 서버 간에 중간 구성요소가 없는 Apigee Edge 설정에서 제한 시간 값을 설정할 때 따라야 하는 권장사항을 설명합니다.

중간 구성요소가 없는 샘플 Apigee 설정

클라이언트에서 라우터로 이동한 다음 메시지 프로세서로 이동한 후 백엔드 서버로 이동하는 흐름

Apigee Edge가 중간 구성요소 없이 위 다이어그램과 같이 설정된 경우 다음 권장사항을 따르세요.

  1. 클라이언트 애플리케이션은 흐름의 첫 번째 구성요소입니다. 최대 제한 시간 값은 클라이언트에서 설정해야 합니다.
  2. 백엔드 서버는 흐름의 마지막 구성요소입니다. 최소 제한 시간 값은 백엔드 서버에서 설정해야 합니다.
  3. 다음 순서대로 각 구성요소의 제한 시간 값을 구성합니다.

    클라이언트, 라우터, 메시지 프로세서, 백엔드 서버에서 제한 시간 구성

    다음 예는 문제를 방지하기 위해 위에 나온 가이드라인에 따라 다양한 구성요소에 설정된 시간 제한 값을 보여줍니다.

    클라이언트에서 제한 시간을 60초로, 라우터에서 57초로, 메시지 프로세서에서 55초로, 백엔드 서버에서 52초로 구성합니다.

시나리오 2: 중간 구성요소를 통해 클라이언트 애플리케이션에서 Apigee Edge에 대한 요청

이 섹션에서는 클라이언트 애플리케이션과 Apigee Edge 간에, 그리고 Apigee Edge와 백엔드 서버 간에 하나 이상의 중간 구성요소가 있는 Apigee Edge 설정에서 제한 시간 값을 설정할 때 따라야 하는 권장사항을 설명합니다.

중간 구성요소는 부하 분산기, 콘텐츠 전송 네트워크(CDN), NGINX 등이 될 수 있습니다.

클라이언트와 Apigee Edge, Apigee Edge와 백엔드 서버 사이에 중간 구성요소가 하나 있는 샘플 Apigee 설정

클라이언트에서 시작하여 중간 구성요소 1, 라우터, 메시지 프로세서, 중간 구성요소 2, 백엔드 서버로 이동하는 흐름

Apigee Edge가 위 다이어그램과 같이 하나 이상의 중간 구성요소로 설정된 경우 다음 권장사항을 따르세요.

  1. 클라이언트 애플리케이션은 흐름의 첫 번째 구성요소입니다. 가장 높은 제한 시간 값은 클라이언트에서 설정해야 합니다.
  2. 백엔드 서버는 흐름의 마지막 구성요소입니다. 가장 낮은 제한 시간 값은 백엔드 서버에서 설정해야 합니다.
  3. 중간 구성요소를 포함한 각 구성요소의 제한 시간 값을 다음 순서대로 구성합니다.

    클라이언트에서 시간 제한을 구성한 다음 중간 구성요소 1, 라우터, 메시지 프로세서, 중간 구성요소 2, 백엔드 서버를 구성합니다.

    다음 예는 문제를 방지하기 위해 위에 나온 가이드라인에 따라 다양한 구성요소에 설정된 시간 제한 값을 보여줍니다.

    클라이언트의 제한 시간을 63초로, 중간 구성요소 1의 제한 시간을 60초로, 라우터의 제한 시간을 57초로, 메시지 프로세서의 제한 시간을 55초로, 중간 구성요소 2의 제한 시간을 52초로, 백엔드 서버의 제한 시간을 59초로 구성합니다.