API Management 및 GitHub를 사용하여 훌륭한 API 개발자 환경 디자인

Azure App Service
Azure Private Link
Azure Virtual Network

API 게시자는 API를 효과적으로 출시하며 고객이 제품을 구별하는 데 도움이 되는 웹 사이트가 필요합니다. API를 선택한 경우 인증된 사용자에게만 액세스 권한을 부여하고, 사용량을 관리하고, 사용할 정확한 청구서를 제공할 수 있어야 합니다. 이 예제 시나리오에서는 Azure 서비스 및 GitHub를 사용하여 이 모든 작업 이상을 수행하는 플랫폼을 만드는 방법을 보여 줍니다.

아키텍처

Microsoft Entra B 2 C, Azure A P I Management, A P I 게이트웨이 및 LOB(기간 업무) 서비스를 포함하여 솔루션을 구성하는 인터넷 포털 및 Azure 서비스를 통한 이 아키텍처의 구성 요소 및 워크플로 다이어그램

이 아키텍처의 PowerPoint 파일을 다운로드합니다.

데이터 흐름

솔루션은 주로 다음 구성 요소로 구성됩니다.

  • 수익이 창출된 백 엔드 API 및 API 게이트웨이. 솔루션의 핵심은 수익을 창출하는 백 엔드 API 세트입니다. 사용자, 애플리케이션 및 디바이스와 같은 소비자는 API 게이트웨이를 통해 API 플랫폼에 액세스합니다. 게이트웨이는 요청을 제한하고 필요에 따라 속도 평준화를 적용합니다.

  • 소비자 포털 및 애플리케이션. API 플랫폼의 소비자는 API 제품을 찾아보고, 등록한 다음, 구독 키를 생성하여 다양한 API 엔드포인트에 액세스합니다. 솔루션의 계정 관리 기능을 사용하여 계정 및 청구에 대한 정보를 업데이트할 수 있습니다.

  • 관리 포털 및 애플리케이션. 플랫폼 관리자는 API 제품, 가격 책정 및 요금제 목록을 게시합니다. 또한 이러한 포털은 문제를 해결하고 지원 서비스를 제공하는 데 도움이 되는 다양한 API 제품의 사용에 대한 풍부한 분석을 제공합니다.

  • 기간 업무 서비스. 이 서비스는 소비자 포털 및 애플리케이션의 기능을 제공하고 솔루션에서 지원되는 다양한 사용자 경험을 지원하는 데 필요합니다.

  • API 사용량 추적 및 요금 계산 엔진. API 게이트웨이 계층에서 캡처된 API 사용량 보고서는 정기적으로 별도의 데이터 저장소로 내보냅니다. 이 데이터에서 예약된 작업을 실행하여 구독 목록 및 관련 가격 책정 모델에 따라 모든 소비자 계정에 적용되는 요금을 계산합니다.

이 솔루션의 처리 순서는 다음과 같습니다.

  1. API 게시자는 Azure Portal을 사용하여 API 사양을 가져오고, 제품별로 그룹화하고, 게시합니다.

  2. API 게시자는 해당 GitHub 리포지토리에서 제품 관련 마케팅 정보를 업데이트합니다.

  3. API 소비자는 마켓플레이스 포털에 액세스하고, 다양한 제품을 찾아보고, 특정 API 서비스를 선택합니다.

  4. 소비자가 API 서비스에 대한 자세한 정보를 보려고 하면 소비자 포털에서 소비자는 GitHub에서 호스트되고 GitHub 페이지를 사용하는 고급 개발자 포털로 리디렉션됩니다.

  5. 소비자는 다양한 API 사양, 개발자 관련 정보를 찾아보고 샘플 페이로드를 사용하여 엔드포인트를 호출해 볼 수도 있습니다.

  6. 소비자는 플랫폼에 등록한 다음, 사용하려는 특정 API 서비스에 대한 구독을 활성화합니다.

  7. 소비자는 앱 또는 디바이스에서 API 서비스를 사용합니다.

  8. API 호출은 Azure에서 추적 데이터베이스에 저장하는 API 사용 및 사용량에 대한 메트릭을 생성합니다.

  9. 사용량 데이터는 주기적으로 내보내고 추가 분석을 위해 사용자 지정 데이터베이스(일반적으로 데이터 레이크)에 저장됩니다.

  10. 백 엔드 작업은 사용량 데이터 및 다양한 구독에서 발생하는 요금을 계산합니다.

  11. 청구서 및 결제 관련 정보는 회계 데이터베이스 내에 저장됩니다. 이 정보는 서비스의 수익을 계산하는 데 사용됩니다.

구성 요소

솔루션은 다음 SaaS(Software as a Service) 제품으로 구성됩니다.

  • Azure API Management는 조직에서 내부 및 외부 소비자 모두에 API를 게시할 수 있는 관리형 PaaS(Platform as a Service)입니다. API Management를 사용하면 어디서나 호스트될 수 있는 API를 게시할 수 있습니다. 기본적으로 API Management를 사용하면 엔터프라이즈에서 게시하는 API의 전체 환경에 대한 단일 진입점 역할을 하는 게시된 게이트웨이에서 API 호스팅을 분리할 수 있습니다. 자세한 내용은 게이트웨이 라우팅 패턴을 참조하세요.

    또한 API Management는 게시된 모든 API 위에 거버넌스 계층을 제공합니다. API Management 정책, 다양한 기타 기능(예: 속도 제한 및 할당량)을 사용하여 키 또는 구독에 따라 API 요청을 제한할 수 있습니다. API Management에는 게시하는 API의 설명서로 사용할 수 있는 완전히 사용자 지정 가능한 웹 사이트를 제공하는 개발자 포털이 포함됩니다.

  • GitHub는 개발자가 소프트웨어 프로젝트를 빌드, 배송 및 유지 관리하는 데 자주 사용하는 Microsoft의 인기 있는 SaaS 제품입니다. 솔루션에서 사용할 수 있는 중요한 기능을 제공합니다.

  • Azure App Service는 사용자 지정 웹 애플리케이션을 호스트하기 위한 완전 관리형 컴퓨팅 플랫폼입니다.

  • Azure AD B2C(Azure Active Directory B2C) 는 애플리케이션이 액세스 및 권한 부여를 위해 외부 고객 또는 파트너 ID를 관리하는 데 사용할 수 있는 Microsoft Entra ID의 확장입니다. Microsoft ID 플랫폼을 사용하여 사용자 지정 애플리케이션에서 ID 및 권한 부여를 쉽게 통합할 수 있습니다.

시나리오 정보

API 플랫폼의 성공과 채택은 주로 마켓플레이스에서 얼마나 높은 평가를 받는지에 따라 달라집니다. 플랫폼에서 제공하는 디지털 자산 외에도 API 찾기의 용이성과 사용 편의성은 고객이 플랫폼을 사용하는지 여부에 큰 영향을 미칩니다. 고객은 설명서를 찾고 문제에 대한 지원을 받을 수 있어야 합니다. 또한 플랫폼은 고객이 요구 사항에 맞게 API를 형성할 수 있도록 커뮤니티 기여를 촉진해야 합니다. API 게시자는 API를 효과적으로 출시하며 고객이 제품을 구별하는 데 도움이 되는 웹 사이트가 필요합니다. API를 선택한 경우 인증된 사용자에게만 액세스 권한을 부여하고, 사용량을 관리하고, 사용할 정확한 청구서를 제공할 수 있어야 합니다. 이 예제 시나리오에서는 Azure 서비스 및 GitHub를 사용하여 이 모든 작업 이상을 수행하는 플랫폼을 만드는 방법을 보여 줍니다.

잠재적인 사용 사례

이 솔루션을 사용하여 API 개발자가 다음을 쉽게 수행할 수 있습니다.

  • API 제품을 검색하고 이해합니다.
  • 다양한 애플리케이션 및 채널을 구독하고 통합합니다.
  • 도움말을 얻고, 문제를 해결하고, 이슈를 수정합니다.
  • 커뮤니티 기여를 촉진하고 아이디어와 지식을 교환합니다.

API 가치 체인

API 가치 체인을 설명하는 다이어그램

가치 체인의 맨 위에는 API 서비스 공급자가 있습니다. 다음은 최종 대상 소비자를 위한 환경을 디자인하고 빌드하는 API 소비자 또는 통합자입니다. 최종 사용자와 고객은 가치 체인의 최종 수혜자입니다.

API 개발자 환경

향상된 API 개발자 환경의 기능 다이어그램

이 다이어그램의 PowerPoint 파일을 다운로드합니다.

API 개발자 환경은 다음 세 가지 포털을 제공합니다.

  • 소비자 포털. 소비자 포털은 엔터프라이즈에서 제공하는 다양한 API 제품을 보여 주는 마케팅 웹 사이트 역할을 합니다.

  • 개발자 포털. 개발자 포털은 타사 개발자에게 다양한 API 서비스 및 이 서비스를 애플리케이션에서 사용하는 방법에 대한 설명서를 제공합니다.

  • 계정 포털. 등록된 사용자는 계정 포털을 사용하여 구독을 관리하고 다른 계정 관련 작업을 수행합니다.

기능적인 요구 사항

개략적으로 엔터프라이즈 규모 API 플랫폼에 대한 기능 요구 사항은 제품화, 플랫폼 관리 및 소비자 환경이라는 세 가지 범주에 적합합니다.

엔터프라이즈 규모 API 플랫폼의 세 가지 광범위한 기능 요구 사항을 보여 주는 다이어그램

다음 섹션에서는 각 기능 영역 내의 기능을 자세히 설명합니다.

제품화

제품화의 목표는 수익이 창출된 API, 해당 관리 및 디지털 제품으로 판매하기 위한 전략을 식별하고 정의하는 것입니다. 따라서 제품화는 다룹니다.

  • 제품의 변형 식별, 물리적 자산에 대한 해당 매핑 등의 기능.
  • 필요한 메타데이터와 함께 가격 책정 및 요금제의 정의.
  • 소비자 환경을 구동하기 위해 만들어야 하는 콘텐츠.

제품화는 다음 기능으로 구성됩니다.

  • API 제품. 이 API 카탈로그는 소비자가 사용할 수 있습니다. 제품은 구매용 또는 체험판 서비스로 제공될 수 있습니다.

  • 변형. 개발자 환경은 수익을 창출하는 모든 API 제품의 변형을 식별해야 합니다.

  • 가격 플랜. 다양한 가격 플랜을 정의하여 소비자에게 매력적으로 만듭니다.

  • 분류 및 콘텐츠. 이러한 API 제품에 대한 마케팅 전략에 필요한 콘텐츠(텍스트, PDF, 이미지 등)를 정의하고 만듭니다.

  • 물리적 자산. 이는 특정 API 제품 및 해당 수명 주기 관리의 일부인 실제 클라우드 서비스로 구성됩니다. 가격 플랜을 도출하는 동안 이러한 서비스를 유지 관리하는 운영 비용을 고려합니다.

플랫폼 관리

플랫폼 관리는 API 플랫폼의 전반적인 호스팅, 관리 및 거버넌스에 중점을 둡니다. 또한 다양한 LOB(기간 업무) 애플리케이션 및 서비스를 관리하기 위한 엔드투엔드 솔루션을 제공합니다. 주요 중점 영역은 구독 관리, 요금 청구 및 청구서 작성입니다. 또한 플랫폼 관리는 재무 및 운영 측면을 포함하여 서비스의 전반적인 상태를 제시하는 비즈니스 인사이트 및 분석을 생성합니다.

플랫폼 관리는 다음 기능으로 구성됩니다.

  • 사용자 등록. 사용자가 플랫폼에 등록하는 방법을 식별합니다. 사용자 세그먼트에 따라 필요한 승인 워크플로를 정의합니다.

  • API 카탈로그. API Management를 통해 게시된 API 자산을 식별합니다. API의 액세스 및 사용을 제어하는 정책을 적용합니다. 사용자의 구독을 관리합니다.

  • 인사이트 및 분석. 원격 분석 데이터를 캡처하여 다양한 메트릭을 생성합니다. Power BI와 같은 다양한 대시보드를 사용하여 통해 시각화하여 비즈니스 및 IT 의사 결정자에게 필요한 다양한 인사이트를 도출합니다.

  • 요금 청구 및 청구서 작성을 선택합니다. 구독, 주문 관리, 요금 청구 및 청구서 작성과 관련된 워크플로를 정의합니다.

  • 지원. 지원 요청을 처리하는 도구 및 프로세스를 설정합니다.

소비자 환경

API 플랫폼의 채택은 소비자가 다음을 얼마나 쉽게 수행할 수 있는지에 따라 크게 달라집니다.

  • 필요한 API를 검색합니다.
  • 개발자 포털을 탐색하여 사양 및 기술 콘텐츠를 검토합니다.
  • 등록하여 구독합니다.
  • 선택한 API 제품에 대한 요금을 지급합니다.
  • 애플리케이션에서 API 사용을 시작합니다.

소비자 환경은 일반적으로 웹 포털, 모바일 앱 또는 둘 다를 통해 제공됩니다. Azure AD B2C를 사용하여 사용자 등록 및 ID 관리를 쉽게 수행할 수 있습니다. Azure AD B2C에는 Microsoft 및 Google과 같은 OpenID ID 공급자에 대한 지원이 포함됩니다.

소비자 환경은 다음 구성 요소로 구성됩니다.

  • 제품(API) 카탈로그. 익명 및 등록된 사용자 모두를 위한 마켓플레이스 환경을 만듭니다.

  • 계정 및 구독 관리. API를 사용할 것으로 예상되는 사용자 유형에 따라 등록 및 로그인 절차를 설정합니다. 기존 소셜 ID 공급자 사용과 같은 사용자 기본 설정을 지원합니다. 셀프 서비스 구독 관리, 활성화 및 비활성화 서비스와 청구된 요금 지급을 허용합니다.

  • UI(사용자 인터페이스)/UX(사용자 환경). 최종 사용자 환경을 지원하는 채널에 대한 환경을 식별하고 정의합니다. 최신 UI 디자인과 함께 다중 디바이스, 다중 폼 팩터 기능을 포함합니다. 사용 편의성 연구를 통해 환경을 보강합니다.

고려 사항

이 시나리오의 구성 요소는 성능, 안정성 및 보안 문제를 해결합니다.

API Management는 들어오는 요청 수 증가에 대응하여 API Management 기능을 빠르게 확장하는 자동 스케일링을 지원합니다. 또한 API Management는 복원력과 고가용성을 제공하기 위해 영역 중복 및 다중 지역 배포를 지원합니다. 영역 중복성에 대한 자세한 내용은 Azure API Management에 대한 가용성 영역 지원을 참조하세요. API Management 보안에 대한 자세한 내용은 API Management에 대한 Azure 보안 기준을 참조하세요.

App Service는 고가용성을 약속하는 SLA를 사용하여 기본 제공 보안 및 자동 스케일링을 제공하는 완전 관리형 PaaS(Platform as a Service)입니다. App Service는 ISO, SOC 및 PCI 규격이며 Microsoft Entra ID, Google, Facebook, Twitter 또는 Microsoft 계정으로 사용자 인증을 지원합니다. App Service를 사용하면 IP 주소 제한 사항을 만들 수도 있습니다.

Azure AD B2C는 고가용성을 제공하고 수억 명의 사용자를 지원하도록 스케일링됩니다. Azure AD B2C는 고객이 선호하는 공급자를 선택할 수 있도록 OpenID Connect 및 여러 ID 공급자를 지원합니다. 또한 Azure AD B2C는 애플리케이션 기반 및 정책 기반 다단계 인증을 지원하여 추가 보안 계층을 추가합니다. Azure AD B2C에 대한 자세한 내용은 Azure Active Directory B2C란?을 참조하세요. 외부 ID 사용에 대한 자세한 내용은 Microsoft Entra ID의 외부 ID를 참조하세요.

GitHub는 보안 검토를 코드 검토의 자동화된 부분으로 만들어 모든 새 커밋에서 잠재적인 보안 문제를 검사합니다. 이 서비스를 사용하면 코드베이스의 추가 항목으로 제공되는 즉시 문제를 검색할 수 있습니다. GitHub 보안을 사용하면 보안 문제에 대한 검색을 사용자 지정하고 타사 검사 엔진을 통합할 수 있습니다. 자세한 기능 및 세부 정보는 GitHub의 보안을 참조하세요.

비용 최적화

GitHub에 대한 팀 또는 엔터프라이즈 가격 플랜을 사용하여 소비자 포털을 개발할 수 있습니다. 엔터프라이즈에 가장 적합한 플랜을 확인하려면 기능 행렬을 참조하세요.

API Management의 경우 표준 또는 프리미엄 계층을 사용할 수 있습니다. 계층 간의 차이점을 더 잘 이해하려면 API Management 가격 책정 옵션을 참조하세요.

Azure App Service의 경우 애플리케이션을 호스트하기 위해 WindowsLinux 환경에서 사용할 수 있는 가격 책정 옵션을 참조하세요.

참가자

Microsoft에서 이 문서를 유지 관리합니다. 원래 다음 기여자가 작성했습니다.

보안 주체 작성자:

다음 단계