Azure API Management란?

완료됨

Azure API Management 및 핵심 기능에 대한 간략한 개요부터 살펴보겠습니다. 이 개요는 Azure API Management가 회사의 API 복잡성을 줄이기 위해 적합한 솔루션인지 여부를 판단하는 데 도움이 됩니다.

API 수명 주기 관리란?

API 수명 주기 관리는 디자인 및 생성부터 노후화 및 사용 중지까지 전체 수명 동안 API를 관리하는 프로세스입니다. 이 모듈의 목적에 따라 API가 이미 설계, 코딩 및 배포된 후에 이를 선택합니다. 다음을 포함하여 API 수명 주기 관리 작업의 나머지 부분에 집중해보겠습니다.

  • API 설명서, 테스트 및 코드 샘플을 제공
  • 사용자 온보딩 및 오프보딩
  • API 구독 및 구독 키 배포 관리
  • 제어되고 안전한 방식으로 API 수정 버전 구현
  • 여러 버전의 API를 관리
  • 인증 및 호출 속도 제한과 같은 API 액세스 제어 구현
  • 사용, 오류 등에 대한 API 보고 제공
  • 회사와 API를 사용하는 개발자 모두를 위한 분석 관리

Azure API Management 정의

Azure API Management는 모든 회사 API의 게시, 보안 설정, 유지 관리 및 분석을 위한 플랫폼을 제공하는 클라우드 서비스입니다. Azure API Management는 다음과 같은 세 가지 주요 구성 요소를 제공하여 이러한 작업을 수행합니다.

  • 게이트웨이
  • 관리 인터페이스
  • 개발자 포털

Azure API Management의 주요 구성 요소에는 관리 인터페이스, 게이트웨이 및 개발자 포털이 포함됩니다.

중요

Azure API Management는 실제 API를 호스트하지 않습니다. API는 원래 배포된 위치에 유지됩니다. 대신 Azure API Management는 API에 대한 일종의 외관 또는 ‘정문’ 역할을 합니다. 이러한 방식으로 Azure API Management는 Azure에서 API 정책 및 기타 관리 옵션을 설정하는 동시에 배포된 백엔드 API를 그대로 유지하면서 API를 분리한다고 합니다.

게이트웨이

Azure API Management 게이트웨이는 모든 API의 모든 호출을 허용하는 Azure 엔드포인트입니다. 게이트웨이:

  • API 구독 키 및 기타 자격 증명을 확인합니다.
  • 사용 할당량 및 속도 제한을 적용합니다.
  • 백 엔드 호환성을 위해 필요에 따라 API를 변환합니다.
  • 각 호출을 해당하는 백 엔드 서버로 라우팅합니다.
  • 백 엔드 응답을 캐시합니다.
  • 분석 워크로드에 대한 호출 메타데이터를 수집합니다.

관리 인터페이스

Azure API Management 관리 인터페이스는 API를 관리할 수 있는 일련의 Azure Portal 페이지입니다. 서비스를 프로비전, 크기 조정 및 모니터링하는 것 외에도 다음과 같은 관리 인터페이스를 사용합니다.

  • API 사양 정의 또는 가져오기
  • 할당량 및 속도 제한과 같은 사용 정책 구현
  • 보안 정책 설정
  • 사용자 관리
  • 제품에 API 패키징
  • API 변환 정의
  • API 수정 버전 및 버전 관리
  • API 메타데이터에서 분석 실행

개발자 포털

Azure API Management 개발자 포털은 개발자가 다음을 통해 API와 상호 작용할 수 있도록 하는 완전히 사용자 지정 가능한 웹 사이트입니다.

  • 각 API에 대한 설명서를 검토
  • 대화형 콘솔을 사용하여 API를 시도
  • 다양한 프로그래밍 언어로 코드 샘플을 검토
  • API를 구독하고 API 구독 키를 획득합니다.
  • 개발자의 사용량에 대한 분석을 실행

Azure API Management 계층

Azure API Management는 각각 고유한 기능, 용량 및 가격 책정 세트를 제공하는 여러 서비스 계층을 제공합니다. 다음 표에서는 가장 낮은 가격에서 가장 높은 가격까지의 순서대로 계층을 나열하고 일부 주요 기능을 비교합니다.

조건 Consumption 개발자 기본 표준 Premium
설계 대상 경량 사용 평가, 테스트 및 기타 비프로덕션 사용 입문 수준 프로덕션 사용 중간 규모 프로덕션 사용 대용량 또는 엔터프라이즈 프로덕션 사용
Cache 외부만 10MB 50MB 1GB 5GB
SLA(서비스 수준 약정) 99.95% 없음 99.95% 99.95% 99.99%
개발자 포털
기본 제공 분석
처리량(예상 요청 수/초) 해당 없음 500 1,000 2,500 4,000

참고

사용량 계층의 가격은 API 호출당으로 책정되며 처음 백만 개 호출은 무료이고 나머지는 10,000 호출당 고정 요금이 청구됩니다. 다른 모든 계층의 가격 책정은 시간당입니다.

API 요청 및 응답에 정책 적용

게시된 API가 여러 개일 때 가장 큰 문제 중 하나는 각 API에 별도의 정책 집합이 필요하다는 것입니다. 여기서 정책은 API의 동작을 제어하는 설정 또는 작업입니다. 예를 들어 속도 제한(지정된 기간 동안 단일 원본에서 허용되는 최대 API 호출 수)을 적용하려는 경우 해당 제한을 API에 대한 정책의 일부로 포함해야 합니다. 요금 제한은 한 가지 예일 뿐, 적용할 수 있는 다양한 정책이 있습니다. API가 여러 개라면 이 관리 업무는 악몽이 됩니다.

Azure API Management는 모든 API에 대한 정책을 한 곳, 즉 Azure API Management 관리 인터페이스에서 설정할 수 있도록 하여 API 정책 문제를 해결합니다. Azure API Management를 사용하면 많은 범주에서 정책을 설정할 수 있습니다. 부분 목록에는 다음이 포함됩니다.

  • 액세스 제한. 이러한 정책은 게이트웨이를 통해 API 요청이 허용되는 위치를 결정합니다. 예를 들어 속도 제한 및 사용 할당량을 적용하고, 호출자 IP를 필터링하고, 유효한 JWT(JSON 웹 토큰)를 확인합니다.
  • 인증. 예를 들어 기본 인증, 클라이언트 인증서 또는 관리 ID를 사용해 API 호출을 인증합니다.
  • 캐싱. 캐시에 응답을 저장하고 검색하여 API 성능을 향상시킵니다.
  • 유효성 검사. 특정 매개 변수를 API 사양에 있는 매개 변수와 비교해 API 호출의 유효성을 검사합니다. 예를 들어 요청 또는 응답 본문, 요청 헤더 매개 변수 및 응답 헤더의 유효성을 검사합니다.

각각 정책 및 해당 매개 변수를 나타내는 일련의 문으로 구성된 XML 문서인 정책 정의에서 정책을 유연하게 결합합니다. 정책 정의를 사용하면 API 요청-응답 파이프라인의 여러 단계에서 별도의 정책을 구성할 수 있습니다.

소비자의 API 요청은 Azure API Management 게이트웨이로 들어가 인바운드 정책을 통과한 후 백 엔드 서버로 전송됩니다. 그런 다음, API 응답은 게이트웨이의 아웃바운드 정책을 통과한 후 원래 API 소비자에게 전송됩니다.