Apigee란?

Apigee는 API 개발 및 관리를 위한 플랫폼입니다. Apigee는 프록시 레이어와 함께 서비스를 전면에 내세워 백엔드 서비스 API의 추상화 또는 퍼사드를 제공하고 보안, 비율 제한, 할당량, 분석 등을 제공합니다.

다음 이미지는 Apigee의 아키텍처를 개략적으로 보여줍니다.

Apigee 아키텍처에 대한 대략적인 개요

이미지에 나와 있는 것처럼 Apigee는 다음과 같은 주요 구성요소로 구성됩니다.

  • Apigee 서비스: API 프록시를 생성, 관리, 배포하는 데 사용하는 API입니다.
  • Apigee 런타임: Google이 Kubernetes 클러스터에서 유지관리하는 컨테이너화된 런타임 서비스 집합입니다. 모든 API 트래픽이 통과되어 이러한 서비스에 의해 처리됩니다.

또한 Apigee는 다음과 같은 다른 구성요소를 사용합니다.

  • GCP 서비스: ID 관리, 로깅, 분석, 측정항목, 프로젝트 관리 기능을 제공합니다.
  • 백엔드 서비스: 앱에서 API 프록시의 데이터에 대한 런타임 액세스를 제공하기 위해 사용합니다.

자세한 설명은 Apigee 구성요소를 참조하세요.

다음은 비공개 피어링 네트워크를 통해 Cloud 프로젝트와 Google 서비스 간의 연결을 보여주는 더 세부적인 이미지입니다.

VPC 연결을 보여주는 아키텍처 다이어그램

Apigee를 사용하는 방법의 예시는 Walgreens가 API 및 Apigee를 어떻게 사용하여 사진 인화, 처방, 기타 서비스를 둘러싼 풍부한 앱 생태계를 제공하는지를 다룬 이 웹캐스트에서 확인하세요.

말보다 실천

Apigee 설정 그런 다음 첫 번째 프록시 만들기  

Apigee의 유형

Apigee는 다음의 유형으로 제공됩니다.

  • Apigee: Apigee가 환경을 유지관리하는 호스팅된 SaaS 버전으로, 서비스를 빌드하고 해당 서비스에 API를 정의하는 데 집중할 수 있습니다.
  • Apigee Hybrid: 온프레미스 또는 선택한 클라우드 제공업체에 설치된 런타임 영역과, Apigee 클라우드에서 실행되는 관리 영역으로 구성된 하이브리드 버전입니다. 이 모델에서는 사용자의 자체 기업 승인을 받은 경계 내에서 API 트래픽 및 데이터가 제한됩니다.

디지털 가속화

이 동영상은 Apigee가 디지털 비즈니스 발전에 어떻게 도움이 되는지 간략하게 보여줍니다.

서비스 관리와 API 관리 중에서 선택

이 동영상을 시청하면 서비스 관리와 API 관리의 중요한 차이점을 이해할 수 있습니다. 비즈니스.

웹에서 서비스 제공

오늘날 기업들은 휴대기기 및 데스크톱에서 실행되는 앱에서 이러한 서비스를 사용할 수 있도록 백엔드 서비스를 웹에서 제공하기를 원합니다. 기업은 제품 가격 책정 및 재고 정보, 판매 및 주문 서비스, 주문 추적 서비스, 클라이언트 앱에서 요구하는 기타 서비스를 제공하는 서비스를 노출하고자 할 수 있습니다.

기업은 종종 서비스를 HTTP 엔드포인트 집합으로 노출합니다. 그런 다음 클라이언트 앱 개발자는 이러한 엔드포인트에 HTTP 요청을 전송합니다. 엔드포인트에 따라 서비스가 XML 또는 JSON 형식의 데이터를 클라이언트 앱으로 반환할 수 있습니다.

이러한 서비스를 사용하는 클라이언트 앱은 휴대기기 또는 태블릿의 독립형 앱, 브라우저에서 실행되는 HTML5 앱 또는 HTTP 엔드포인트에 요청을 수행하고 모든 응답 데이터를 사용할 수 있는 다른 유형의 앱으로 구현할 수 있습니다. 이러한 앱은 서비스를 노출하는 동일한 회사 또는 일반에 공개된 서비스를 사용하는 타사 앱 개발자가 개발하고 출시할 수 있습니다.

다음 이미지는 이 유형의 모델을 보여줍니다.

모바일 앱, 판매 시점 앱, 파트너, 웹 앱 등 여러 종류의 앱은 ESB, SOA, 앱 서버, 데이터베이스와 같은 백엔드 서비스에 연결됩니다.

제공업체는 웹을 통해 서비스를 제공하기 때문에 무단 액세스로부터 서비스를 안전하게 보호하는 데 필요한 모든 단계를 수행해야 합니다. 서비스 제공업체는 다음을 고려하세요.

  • 보안: 승인되지 않은 액세스를 방지하기 위해 서비스에 대한 액세스를 어떻게 관리할 것인가요?
  • 호환성: 서비스가 여러 플랫폼과 기기에서 작동하나요?
  • 측정성: 서비스가 사용 가능한지 확인하기 위해 서비스를 모니터링하는 방법은 무엇인가요?
  • 기타 여러 가지 고려사항

서비스에 액세스하는 클라이언트 앱이 출시되면 서비스 제공업체는 이러한 서비스를 추가, 수정, 삭제할 때 해당 서비스가 계속 작동하도록 해야 합니다. 또한 서비스 제공업체는 클라이언트 앱이 이러한 서비스와 동기화되도록 하기 위해 서비스 변경사항을 앱 개발자에게 알릴 방법이 있어야 합니다.

클라이언트 앱 개발자는 여러 제공업체의 서비스를 사용하려고 할 때 문제가 발생합니다. 현재 서비스 제공업체가 서비스를 노출하는 데 사용할 수 있는 여러 기술이 있습니다. 동일한 클라이언트 앱은 한 제공업체에서 서비스를 사용하기 위해 하나의 메커니즘을 사용하고 다른 제공업체의 서비스를 사용하기 위해 다른 메커니즘을 사용해야 할 수 있습니다. 앱 개발자는 동일한 제공업체의 서비스를 사용하는 데 서로 다른 메커니즘을 사용하여야 하는 상황도 발생할 수도 있습니다.

Apigee를 통해 서비스 제공

Apigee를 사용하면 서비스 구현에 관계없이 모든 서비스에서 명확하게 정의되고 일관된 API를 통해 서비스에 안전하게 액세스할 수 있습니다. 일관된 API를 사용하여 다음 이점을 활용할 수 있습니다.

  • 앱 개발자가 서비스를 쉽게 사용할 수 있습니다.
  • 공개 API에 영향을 미치지 않고 백엔드 서비스 구현을 변경할 수 있습니다.
  • Apigee에 내장된 분석, 개발자 포털, 기타 기능을 활용할 수 있습니다.

다음 이미지는 클라이언트 앱에서 백엔드 서비스로의 요청을 처리하는 Apigee의 아키텍처를 보여줍니다.

Apigee는 클라이언트 애플리케이션과 백엔드 서비스 사이에 위치합니다.

앱 개발자가 서비스를 직접 사용하는 대신 Apigee에서 생성된 API 프록시에 액세스합니다. API 프록시는 일반에 공개된 HTTP 엔드포인트를 백엔드 서비스에 매핑하는 역할을 합니다. API 프록시를 만들면 Apigee가 서비스 보호에 필요한 보안 및 승인 작업을 처리하고 서비스를 분석 및 모니터링할 수 있습니다.

앱 개발자는 서비스에 직접 연결하는 대신 API 프록시에 HTTP 요청을 수행하므로 개발자는 서비스 구현에 대해서 아무 것도 알 필요가 없습니다. 모든 개발자는 다음 사항을 알아야 합니다.

  • API 프록시 엔드포인트의 URL
  • 요청에 전달된 모든 쿼리 매개변수, 헤더 또는 본문 매개변수
  • 모든 필수 인증 및 승인 사용자 인증 정보
  • 응답 형식(XML 또는 JSON 등의 응답 데이터 형식 포함)

API 프록시는 앱 개발자를 백엔드 서비스에서 격리합니다. 따라서 공개 API가 일관되게 유지되는 한 서비스 구현을 변경할 수 있습니다. 예를 들어 데이터베이스 구현을 변경하거나, 서비스를 새 호스트로 이동하거나, 서비스 구현을 변경할 수 있습니다. 일관된 프런트엔드 API를 유지하면 백엔드의 변경사항과 상관없이 기존 클라이언트 앱이 계속 작동합니다.

API 프록시의 정책을 사용하면 백엔드 서비스를 변경하지 않고도 서비스에 기능을 추가할 수 있습니다. 예를 들어 프록시에 정책을 추가하여 데이터 변환 및 필터링을 수행하고, 보안을 추가하고, 조건부 로직 또는 커스텀 코드를 실행하고, 다른 여러 작업을 수행할 수 있습니다. 유의해야 할 중요한 점은 백엔드 서버가 아닌 Apigee에서 정책을 구현한다는 것입니다.

자세한 내용은 API 및 API 프록시 이해를 참조하세요.

API 제품 만들기

API 프록시는 개발자가 백엔드 서비스에 액세스하는 데 사용하는 Apigee의 HTTP 엔드포인트입니다. 가능은 하지만 일반적으로 개별 API 프록시를 제공하지 않습니다. 대신 하나 이상의 API 프록시를 API 제품으로 그룹화합니다.

API 제품은 서비스 요금제와 결합된 API 프록시 번들입니다. 이 서비스 계획은 API 프록시에 대한 액세스 한도를 설정하고, 보안을 제공하고, 모니터링 및 분석을 허용하고, 추가 기능을 제공할 수 있습니다. 또한 API 제품은 Apigee에서 API에 대한 승인 및 액세스 제어를 위해 사용하는 중앙 메커니즘입니다.

API 제품을 만들 때 상당한 유연성이 제공됩니다. 예를 들어 여러 API 제품이 동일한 API 프록시를 공유할 수 있습니다. 다음 그림은 세 가지 API 제품을 보여줍니다. 모든 제품이 API 프록시 3에 대한 액세스를 허용하지만 제품 A만 API 프록시 1에 대한 액세스를 허용할 수 있습니다.

제품 A는 프록시 1, 3에 액세스합니다. 제품 B는 프록시 3에 액세스합니다.
    제품 C는 프록시 2, 3, 4에 액세스합니다.

각 API 제품마다 다른 속성을 설정할 수 있습니다. 예를 들어 하루 1,000건의 요청과 같이 액세스 한도가 낮은 하나의 API 제품을 할인된 가격으로 제공할 수 있습니다. 그런 다음 동일 API 프록시에 대한 액세스를 제공하는 다른 API 제품을 출시하되 훨씬 높은 액세스 한도와 높은 가격을 적용합니다. 또는 서비스에 대한 읽기 전용 액세스를 허용하는 무료 API 제품을 만든 다음, 읽기/쓰기 액세스를 허용하는 API 프록시와 동일한 API 제품으로 판매할 수 있습니다.

자세한 내용은 API 제품 만들기를 참조하세요.

클라이언트 측 앱에서 API 제품에 액세스하도록 허용

앱 개발자가 서비스에 액세스하려면 먼저 API 제품에 클라이언트 앱을 등록해야 합니다.

클라이언트 앱에는 API 제품과 연결된 API를 호출하는 키가 필요합니다.

등록 후 앱 개발자는 API 제품에 포함된 API 프록시에 대한 모든 요청에 포함되어야 하는 API 키를 수신합니다. 이 키는 인증되고 인증에 성공하면 요청이 백엔드 서비스에 액세스하도록 허용됩니다.

클라이언트 앱이 서비스에 액세스할 수 없도록 개발자가 언제든 키를 취소할 수 있습니다. 또는 개발자가 특정 시간 후에 키를 새로고침하도록 키에 시간 한도를 정의할 수 있습니다.

API 제품에 액세스하기 위해 개발자의 등록 요청을 처리하는 방식을 결정합니다. Apigee 개발자 서비스를 사용하면 등록 프로세스를 자동화할 수 있습니다. 아니면 수동 프로세스를 사용하여 액세스를 제어할 수도 있습니다.

API 제품을 만들고 개발자에게 제공

  1. 일반에 공개된 URL을 백엔드 서비스에 매핑하는 API 프록시를 하나 이상 만듭니다.
  2. API 프록시를 번들로 묶는 API 제품을 만듭니다.
  3. API 프록시 및 API 제품을 배포합니다.
  4. API 제품을 사용할 수 있다고 개발자에게 알려줍니다.

앱 개발자는 API 제품의 사용 가능 여부를 알면

  1. API 제품에 클라이언트 앱을 등록합니다.
  2. API 제품에 대한 API 키를 수신합니다.
  3. API 제품에 번들로 제공되는 API 프록시를 통해 서비스에 요청을 수행하고 각 요청으로 API 키를 전달합니다.

Apigee 구성요소

Apigee는 API 런타임, 모니터링 및 분석, 그리고 API 생성과 보안, 관리, 운영을 위한 포괄적인 인프라를 제공하는 개발자 서비스로 구성됩니다.

다음 이미지는 Apigee의 아키텍처를 개략적으로 보여줍니다.

Apigee의 상위 수준 아키텍처

Apigee 런타임

Apigee 서비스는 API 프록시를 서비스 제공업체로 빌드하거나 API, SDK, 기타 편의 서비스를 앱 개발자로 삼아서 API를 만들고 사용하는 것입니다.

API 런타임은 API 프록시 추가 및 구성, API 제품 설정, 앱 개발자와 클라이언트 앱 관리를 위한 도구를 제공합니다. 이는 백엔드 서비스에서 여러 일반적인 관리 문제를 옮깁니다. API 프록시를 추가할 때 보안, 비율 제한, 미디에이션, 캐싱 등을 추가하기 위해 정책을 API 프록시에 적용할 수 있습니다. 커스텀 스크립트를 적용하고 타사 API 및 서비스를 호출하는 등의 작업을 수행하여 API 프록시의 동작을 맞춤설정할 수도 있습니다. 자세한 내용은 API 및 API 프록시 이해를 참조하세요.

Apigee 모니터링 및 분석

Apigee API 분석은 API의 장단기 사용 추세를 확인할 수 있는 강력한 도구를 제공합니다. 인기 개발자 및 앱별로 잠재고객을 분류하고, API 메서드별로 사용량을 파악하여 투자처를 파악하고, 비즈니스 또는 운영 수준 정보에 대한 커스텀 보고서를 만들 수 있습니다.

데이터가 Apigee를 통해 전달될 때 URL, IP, API 호출 정보의 사용자 ID, 지연 시간, 오류 데이터 등 여러 기본 유형의 정보가 수집됩니다. 헤더, 쿼리 매개변수, XML 또는 JSON에서 추출된 요청 또는 응답의 일부와 같은 다른 정보를 추가하는 정책을 만들 수 있습니다. 이 정보는 실제 요청/응답 흐름에서 비동기식으로 수집되므로 API 성능에 영향을 미치지 않습니다.

Apigee UI를 사용하면 다음 그림과 같이 브라우저에서 여러 측정항목과 측정기준을 볼 수 있습니다.

그래프 및 표 형식으로 정책 오류 수를 표시하는 분석 대시보드

그러나 명령줄 인터페이스나 RESTful API를 통해 분석 서비스에 액세스하고 제어할 수도 있습니다. 자세한 내용은 API 분석 개요를 참조하세요.

Apigee 개발자 생태계

Apigee는 다음을 수행할 수 있는 개발자 서비스를 제공합니다.

  • 서비스를 사용하는 앱 개발자 커뮤니티를 관리합니다.
  • 내부 및 외부 개발자와 협력하고 재무 모델과의 관계를 공식화합니다.
  • 개발자를 온보딩하고 개발자 포털을 만듭니다. 앱 개발자는 일반에 공개된 API 제품에 대해 자세히 알아보고 API 키를 관리하기 위해 포털에 연결하여 API 문서에 액세스할 수 있습니다.

모든 Apigee 고객은 클라우드에서 고유한 개발자 포털을 만들 수 있습니다.

Apigee에서는 두 가지 유형의 포털을 만들 수 있습니다.