API에 Spike Arrest 정책 추가

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

학습할 내용

이 가이드에서는 다음 방법을 배웁니다.

  • 요청 및 응답에 영향을 주는 정책을 추가합니다.
  • 정책 효과를 확인합니다.

필요한 항목

  • 프록시에 있는 하나 이상의 정책(또한 시작하기 가이드의 일부)
  • 명령줄에서 API 호출을 수행하기 위해 머신에 설치된 curl

Spike Arrest 정책 추가

이 튜토리얼에서는 사용량 증가, 클라이언트 버그, 악의적인 공격으로 인해 발생할 수 있는 갑작스러운 트래픽 증가로부터 대상 서비스를 보호하기 위해 SpikeArrest 정책을 추가하고 구성합니다. 요청 수가 비율 한도를 초과하면 API가 요청에 대해 HTTP 500 오류를 반환합니다.

Spike Arrest 정책을 API 프록시에 추가합니다.

  1. apigee.com/edge에 로그인합니다.
  2. 왼쪽 탐색 메뉴에서 개발 > API 프록시를 선택합니다.
  3. Spike Arrest 정책을 추가할 API 프록시를 선택합니다.

    시작하기 가이드를 따른 경우 API 프록시 만들기에서 만든 'getstarted' 프록시에 추가할 수 있습니다.

  4. 새 API 프록시에 대해 편집기에서 개발 탭을 클릭합니다.

    API 프록시 편집기를 사용하면 API 프록시 구조를 보고 해당 흐름을 구성할 수 있습니다. 편집기는 프록시의 요청 및 응답 메시지 흐름을 시각적으로 보여주고 프록시를 정의하는 기본 XML에 대해 편집 가능한 화면을 표시합니다.

  5. 왼쪽 탐색 창의 프록시 엔드포인트 > 기본값 아래에서 PreFlow를 클릭합니다. (다른 가이드에서는 흐름 개념이 다뤄집니다.)
  6. 요청 PreFlow에 따라 맨 위에 있는 +단계 버튼을 클릭합니다. 그러면 만들 수 있는 모든 정책이 카테고리별 목록으로 표시됩니다.

    요청 사전 흐름의 단계 클릭

  7. 트래픽 관리 카테고리에서 Spike Arrest를 선택합니다. 새 정책 대화상자가 표시됩니다.

    Spike Arrest 정책 만들기

  8. 기본 이름을 그대로 두고 추가를 클릭합니다. 새 정책이 요청의 PreFlow 흐름에 연결됩니다.
  9. 탐색기에서 프록시 엔드포인트 > 기본값 아래의 PreFlow가 여전히 선택되어 있는지 확인하고 API 프록시 편집기에 다음 내용을 기록합니다.
    • 새 Spike Arrest-1 정책이 API 프록시 편집기의 왼쪽에 있는 탐색기의 정책 아래에 추가됩니다.
    • Spike Arrest-1 아이콘이 API 프록시 편집기의 위쪽 가운데에 있는 디자이너 보기에 추가되고, 프록시의 메시지 흐름을 시각적으로 보여줍니다.
    • 정책의 XML이 API 프록시 편집기의 아래쪽 가운데에 있는 코드 보기에 표시됩니다.

    Spike Arrest 정책 보기

  10. 탐색기의 정책에서 Spike Arrest-1을 선택하고 API 프록시 편집기에서 다음을 확인합니다.
    • 정책 세부정보가 API 프록시 편집기의 위쪽 가운데에 있는 디자이너 보기에 표시됩니다.
    • 정책의 XML이 API 프록시 편집기의 아래쪽 가운데에 있는 코드 보기에 표시됩니다.
    • 정책의 XML 요소 및 속성값이 API 프록시 편집기의 오른쪽에 있는 속성 검사기에 표시됩니다.

  11. 정책의 XML에서 <Rate> 요소의 값을 1pm(클라우드에서 60초마다 약 2개 요청 허용)으로 변경합니다.

    분(pm)당 또는 초(ps)당 정수 값으로 비율을 지정할 수 있습니다. 이것은 매우 낮은 한도이며 정책 설명을 위해 이 가이드에서만 사용됩니다. 일반적으로는 훨씬 더 큰 한도로 설정합니다.

    속성 검사기에서 Rate 값도 '1pm'으로 변경됩니다. 또한 속성 검사기에서 비율 값을 변경할 수 있으며, XML 보기에 반영됩니다.

  12. 저장을 클릭하여 변경사항과 함께 현재 수정 버전을 저장합니다.
  13. Call the API using curl을 사용하여 API를 호출하고 org_name을 Apigee 조직 이름으로 바꿉니다.

    curl "http://org_name-test.apigee.net/getstarted"

    예를 들면 다음과 같습니다.

    curl "http://ahamilton-eval-test.apigee.net/getstarted" | python -m json.tool

    요청이 성공하고 XML 응답이 이전과 동일하게 표시되는지 확인합니다. (또한 웹브라우저에 URL만 입력할 수도 있습니다.)

  14. 1분 이내에 curl 명령어를 2~3회 이상 실행 (또는 브라우저 창을 새로고침)하면 정책의 비율 제한을 초과했기 때문에 다음 메시지가 표시됩니다.
    {
    "fault": {
      "faultstring":"Spike arrest violation. Allowed rate : 1pm",
      "detail": {
        "errorcode":"policies.ratelimit.SpikeArrestViolation"}
      }
    }

    1분 내에 호출을 더 시도하면 오류 메시지가 계속 표시됩니다.

  15. 정책을 편집해서 <Rate> 한도를 15pm(클라우드에서 4초마다 약 2회 호출 허용)으로 변경하고, API 프록시를 저장합니다.
  16. curl 명령어를 실행하거나 브라우저를 반복해서 새로고침합니다(curl이 더 빠름). 4초 간격 내에 1~2회 호출을 시도하면 호출이 성공합니다. 4초 내에 2회 이상으로 호출을 더 빠르게 시도하면 오류가 발생합니다. 하지만 1pm 설정의 경우처럼 1분 동안 차단되는 것과 반대로 4초 간격이 지날 때마다 계속 호출을 수행할 수 있습니다.