API 프록시 체이닝

현재 Apigee Edge 문서가 표시되고 있습니다.
Apigee X 문서로 이동
정보

한 프록시가 다른 프록시의 대상 엔드포인트임을 지정하여 프록시 체인에서 두 프록시를 효과적으로 연결할 수 있습니다. 이러한 방식으로 프록시를 연결하면 네트워크 홉을 피하고 전반적인 성능을 개선할 수 있습니다.

프록시 연결을 사용하여 하나의 프록시가 다른 프록시의 로컬 대상 엔드포인트임을 지정합니다. 두 번째 프록시를 호출하기 위해 HTTPTargetConnection 요소를 사용하는 대신 LocalTargetConnection 요소를 사용합니다.

<LocalTargetConnection>
    <APIProxy>myproxy2</APIProxy>
    <ProxyEndpoint>default</ProxyEndpoint>
</LocalTargetConnection>

다른 프록시가 사용하게 될 일부 개별 하위 수준 기능을 제공하는 프록시가 있는 경우 프록시 연결이 유용할 수 있습니다. 예를 들어 백엔드 데이터 저장소와 함께 생성/읽기/업데이트/삭제 작업을 노출하는 프록시는 클라이언트에 데이터를 노출하는 다른 여러 프록시의 대상 프록시가 될 수 있습니다.

동영상: API 프록시 연결에 대해 자세히 알아보려면 짧은 동영상을 확인하세요.

프록시 연결 작동 방식

프록시 연결은 한 프록시를 다른 프록시에서 호출할 때 로컬 연결을 사용하여 네트워크 오버헤드를 최소화합니다. 이 로컬 연결은 부하 분산기, 라우터, 메시지 프로세서와 같은 네트워크 기능을 우회하므로 더 효율적입니다.

다음은 HTTPTargetConnectionLocalTargetConnection (프록시 체이닝)를 사용하여 프록시를 연결하는 것의 차이점을 보여줍니다.

한 프록시가 다른 프록시의 로컬 대상 엔드포인트임을 지정하여 프록시에 연결합니다. 다음 두 가지 방법으로 프록시 간에 로컬 연결을 만들 수 있습니다.

  • 대상 프록시의 이름과 ProxyEndpoint 이름을 지정합니다.
  • 대상 프록시 엔드포인트의 경로 지정

아래 설명된 대로 LocalTargetConnection 요소를 사용하여 TargetEndpoint 구성 내에서 대상 프록시를 연결합니다.

프록시 이름으로 프록시 연결

이름으로 대상 프록시를 지정할 수 있습니다. 이 방법은 처음부터 연결을 만들고 프록시를 같이 개발하는 경우에 가장 유용합니다. 이름을 모르거나 이름이 변경될 수 있는 경우 아래에 설명된 대로 대상 프록시의 엔드포인트 경로와 연결하는 것이 좋습니다.

이름으로 대상 프록시에 연결할 때 프록시 이름과 해당 ProxyEndpoint의 이름을 지정합니다.

다음 예시에서는 data-manager라는 대상 프록시와 data-manager에서 노출하는 ProxyEndpoint 이름을 지정합니다. 자세한 내용은 API 프록시 구성 참조를 확인하세요.

<TargetEndpoint name="datamanager">
    <PreFlow name="PreFlow">
        <!-- PreFlow policies -->
    </PreFlow>
    <PostFlow name="PostFlow">
        <!-- PostFlow policies -->
    </PostFlow>
    <LocalTargetConnection>
        <APIProxy>data-manager</APIProxy>
        <ProxyEndpoint>default</ProxyEndpoint>
    </LocalTargetConnection>
</TargetEndpoint>

경로로 프록시 연결

엔드포인트 경로를 사용하여 대상 프록시를 지정할 수 있습니다. 프록시 이름을 모르거나 이름이 변경될 수 있는 경우 이렇게 하는 것이 좋습니다.

둘 다 개발하지 않는 경우와 같이 프록시가 단순히 대상 프록시의 소비자인 경우 경로가 가장 안정적인 연결 방법일 수 있습니다. 예를 들어 연결 중인 프록시를 다른 팀에서 개발하고 유지 관리하는 경우 신뢰할 수 있는 엔드포인트 경로를 사용하여 연결할 수 있습니다.

다음 예시에서는 /v1/streetcarts/foodcarts/data-manager에서 대상 프록시를 지정합니다. 여기서 호스트는 현재 프록시와 동일하다고 가정합니다. 관련 정보는 API 프록시 구성 참조를 확인하세요.

<TargetEndpoint name="datamanager">
    <PreFlow name="PreFlow">
        <!-- PreFlow policies -->
    </PreFlow>
    <PostFlow name="PostFlow">
        <!-- PostFlow policies -->
    </PostFlow>
    <LocalTargetConnection>
        <Path>/v1/streetcarts/foodcarts/data-manager</Path> 
    </LocalTargetConnection>
</TargetEndpoint>

관리 콘솔에 프록시 연결

Edge 관리 콘솔을 사용하여 프록시 연결을 생성할 수 있습니다.

  1. 대상 프록시를 사용할 프록시를 엽니다.
  2. 탐색기에서 대상 엔드포인트 옆에 있는 더하기 기호를 클릭합니다.
  3. 새 대상 엔드포인트 대화상자에 대상 엔드포인트의 이름을 입력합니다.
  4. 대상 엔드포인트 이름 상자 아래에서 다음 중 하나를 선택합니다.
    • 프록시 체이닝: 조직 및 환경에 이미 있는 프록시 목록에서 선택할 수 있습니다.
      1. 프록시 이름 드롭다운에서 대상 프록시를 선택합니다.
      2. 프록시 엔드포인트 상자에서 연결할 대상 프록시 엔드포인트 경로를 입력합니다.
    • 경로 연결: 대상 프록시 기본 경로(예: /mypath/myproxy/myendpoint)를 입력합니다.
  5. 추가를 클릭합니다.

연결된 프록시, API 제품, 보안

프록시 연결은 두 프록시가 동일한 API 제품에 있는 경우에 가장 적합합니다. 기본적으로 클라이언트는 두 프록시 모두 사용할 수 있습니다. 현재 Apigee는 클라이언트가 액세스할 수 없는 별도 API 제품의 두 번째 프록시를 번들로 묶는 것을 지원하지 않습니다.

다이렉트 고객 요청에 대비해 두 번째 프록시를 보호해야 하는 경우, 두 번째 프록시가 클라이언트의 IP 주소를 검사하도록 로직을 추가하는 것이 좋습니다. 프록시 연결을 통해 이루어지는 호출의 경우 IP 주소가 로컬로 수행됩니다. 계속 진행하기 전에 코드로 로컬 여부를 검증할 수 있습니다. 이 작업을 수행하는 한 가지 방법은 액세스 제어 정책을 참조하세요.