API Management Service

Kubernetes와 오픈 소스 API Gateway를 기반으로 하는 Dedicated Managed API Management 플랫폼

Microservice 각각에 구현해야 했던 API Interface, 정책 및 공통 기능의 통합 관리가 가능합니다.

Gateway와 API의 Lifecyle관리, 보안, Mediation, 유량제어 등의 정책을 관리하며 API Document를 작성, 편집, 공유할 수 있습니다. 상품화와 게시를 위한 Developers Portal을 제공하고 사용량을 분석, 모니터링하며 개발 및 고도화를 지원 합니다.

API Management Service

  • Kubernetes 플랫폼 기반 서비스

    Light-weight 컨테이너 기반 서비스, K8S Orchestration 기능을 활용합니다.

    효과적인 Multi-gateways 관리 기능 지원을 합니다.

  • MSA의 API Layer 통합 관리

    관리자에게는 Project 제어 및 Gateway 생성, 개발자에게는 Infra에 신경 쓰지 않고 API에 집중하여 개발 할 수 있는 환경을 제공합니다.

    특히 API 정책에 있어서 중앙 제어 기능 뿐만 아니라 Project 별 적용까지 가능하게 합니다.

  • OPEN API SERVICE 구축 및 운영 지원

    API를 상품화 하여 게시하고, 사용 요청을 승인 할 수 있는 API Developers Portal과 Portal을 Customizing 할 수 있는 기능을 제공합니다.

    Forum을 통해서는 Issue 해결 및 공지사항 관리를 할 수 있습니다.

모든 Kubernetes 환경에서 Multi-Gateway Management 가능

Public/Private Cloud, On-prem. 환경 모두 구성 가능합니다.

Project 생성/관리 및 Project 별 Gateway/API 각각 관리 가능합니다.

UI 기반 손쉬운 Gateway Scale-out, Scale-up 기능을 제공합니다.

Multi-Gateway에 대한 공통 API 정책 설정 및 관리자 제어가 가능합니다.

API 개발자 포탈 기반으로 상품화 및 Monetization 지원

개발자 포탈로 상품화 및 상품 게시/관리가 가능합니다.

사용 요청 및 관리자 승인 프로세스를 제공합니다.

개발자 포탈 스타일 Customizing 기능을 제공합니다.

Document 및 Forum으로 Client-Server 개발자간 효과적 협업이 가능합니다.

API 사용 현황 분석 / 모니터링 Dashboard로 운영 편의성 제공

API Request/Response Data에 대한 로깅&디버깅 기능을 제공합니다.

Project별/API별 호출 현황, 성공/실패 시각화 및 분석 기능을 제공합니다.

API Gateway Metrics 모니터링/알림 기능이 제공됩니다.

Forum으로 사용자 의견을 분석 후 API를 고도화 할 수 있습니다.

  • 사용자 관리

    • Single Sign-On(SSO) 인증
    • 사용자 및 권한 관리
    • APIM 및 Developers Portal 관리자 설정
  • 프로젝트 관리

    • Project 생성/관리
    • Project 사용자 추가/삭제
    • Project scope 사용자-권한 관리
    • 권한 별 자원 접근 제어 (Gateway, API, Project, Policy, Deployment 등)
  • Multi-Cloud Gateway 관리

    • Multi/Hybrid API Gateway 통합 관리
    • 프로젝트 (팀/조직) 단위의 Gateway 관리
    • Kong(On-premise) / AWS (진행중) 지원
    • Gateway 담당과 API 담당의 역할 분리
  • Gateway Provisioning

    • 손쉬운 Gateway 생성/등록
    • Gateway Vendor 선택
    • Gateway Scale-In/Out 컨트롤
    • 도메인 TLS cert/key 등록/관리
  • API 생성

    • API 생성/변경/삭제
    • API 설계(Frontend - Backend 연결)
    • API 정책 설정 가능
    • HTTP/Websocket Protocol 설정
    • Swagger 자동 가져오기 기능
  • API 배포 및 무중단 버전 변경

    • API 배포 버전 관리
    • 특정 버전 배포의 설정 상태 확인
    • 특정 버전으로의 API 롤백(무중단)
    • API Blue/Green 배포 가능
  • API 정책 설정

    • 관리자의 API Default Policy 통제
    • 보안 정책(API KEY, CORS 등)
    • Traffic Control(RateLimit, Proxy Cache)
    • Log(Request/Response, Gateway 상태, API 사용자 정보 등)
    • Data Transformation, OIDC, TXID 등
  • API KEY 관리

    • 프로젝트별 API KEY 생성/관리
    • 1개 프로젝트 : N개 API KEY 생성 가능
    • 재배포 없이 API KEY 갱신 가능
    • API KEY Active/Deactive 가능
  • API Document 등록/작성(Swagger)

    • API 문서 등록 및 JSON 기반 편집 가능
    • Swagger 2.0 기반 문서 호환
    • API 배포 시 배포 버전의 API 문서 게시
    • API KEY 설정 및 API 테스트 가능
    • API 설계자, 개발자, 사용자 간 공유
  • API 배포 전 테스트

    • API 배포 전 테스트 및 확인 후 배포 가능
    • Header, Body, QueryString 등 설정
    • JSON 기반 Request Parameter 설정
    • 응답 데이터 및 성공/실패 확인
  • Request/Response Log

    • API Log Policy 설정 및 선택적 Logging
    • API 요청/응답의 Header/Body 저장
    • API 사용자 정보 저장(Project/Gateway/API/API KEY 정보)
    • Gateway Health Check Status 기록
  • API 사용량 Dashboard

    • 전체/프로젝트별 API 성공/실패 현황
    • 전체/프로젝트별 API 별 호출 횟수
    • 전체/프로젝트별 호출 빈도 Top5
    • Dashboard Cutomization 가능
    • Kong Gateway Health Check 현황
  • API RPS Latency

    • Status Code에 따른 RPS 현황
    • API 별 Proxy Latency 현황
    • 요청 지연과 응답 지연의 구분된 현황
    • 유연한 Dashboard 확장성
  • Gateway Status

    • 최대, 최소, 평균 In/Out 시간
    • Kong Gateway 내부 자원 모니터링(cluster_event, db_cache, limitrate, healthcheck, lock, etc.)
    • K8S 호환으로 Node별 사용 메모리 표시
  • API 개발자 포탈

    • API 상품화 및 게시 관리
    • 개발자 포탈 스타일 Customization 가능
    • API 사용자의 사용 요청 및 관리자의 승인 프로세스 제공
    • Forum을 이용한 API Trouble-shooting 및 고도화

도입배경

  • 고객사 데이터의 OpenAPI Service화, 외부 사용자들이 편하게 이용할 수 있는 API 개발자 포탈이 필요했습니다.

활용사례

  • Gateway 및 API를 생성/관리 할 수 있는 Console이 중요했고, 개발 완료된 API의 가이드문서, 테스트 내용 등을 OpenAPI Service Portal에 게시하고자 했습니다.
  • 외부 사용자는 API 상품 선택 및 사용 요청, 관리자는 사용을 승인하는 프로세스도 정리했습니다.
  • API 설계/개발 생성, 정책 설정, 문서 관리, 테스트, 배포하는 기능을 제공하였습니다.
  • 배포된 API의 사용량을 분석/모니터링 하고, 이를 통해 기존 API를 고도화 하거나 새로운 API를 개발할 수 있는 환경을 제공하였습니다.

적용결과

  • 고객사의 End User가 사용하는 대형 포탈 서비스에 안정적인 API Gateway를 제공했습니다.
  • API 개발자 포탈에 제휴사도 참여하여 OpenAPI 상품들이 다양해지고 활성화되었습니다.