API Management, APIM
API란?
공공데이터 개방, 마이데이터 사업 등 데이터를 활용한 사업이 활발하게 이루어지면서 Open 데이터 시장이 급속하게 성장하였습니다. 그리고, 기존 시스템들을 클라우드로 전환하면서 작은 서비스 단위의 시스템인 MSA(Micro Service Architecture)로 구축하는 사례가 늘어나고 있습니다. 서로 다른 기관(혹은 서비스들)이 데이터를 공유하기 위해서는 서로 간의 약속이 필요합니다. API는 정보 요청자(사용자)와 정보 제공자 사이의 약속입니다. 정보 제공자가 API를 공개하면 요청자는 이에 맞는 요청을 만들어 호출함으로써 정보를 획득할 수 있습니다.
API(Application Programming Interface) 응용 프로그램에서 사용할 수 있도록, 운영 체제나 프로그래밍 언어가 제공하는 기능을 제어할 수 있게 만든 인터페이스
API Gateway란?
각 API들의 공통된 부분을 통합하고 Client 와 Server를 연계해주는 역할을 하는 시스템 솔루션 입니다.
Open 데이터 시장에서는 수많은 데이터들이 각 (API)서비스로 구성이 되고, MSA에서는 하나의 큰 서비스를 위해 수십~수백개의 작은 (API)서비스가 필요합니다.클라이언트에서 API를 API 서버에 직접 호출하는 환경에서는 수많은 문제점이 존재하게 됩니다.
주요 문제점
•
각 API 서비스별 인증/인가 등의 공통된 로직을 모든 API별로 구현해야 하는 번거로움이 있습니다.
•
여러 서버에 걸쳐 분산되어 있는 수많은 API의 호출을 관리하기 어렵습니다.
•
API의 추가, 변경, 삭제, API 서버의 확장 등 유연성이 현저하게 떨어져 API 제공에 대한 경쟁력이 떨어집니다.
APIM(API Management)란?
API를 생성하고 수정하고 삭제하는 과정과, API를 서비스할 수 있도록 배포하고 사용 정보를 확인하는 과정들을 통칭해 부르는 개념입니다. 일반적으로 APIM은 API의 요청과 응답을 중계하는 API Gateway와 API 관리를 위한 Management 시스템으로 구성됩니다. 이를 통해, API 제공자와 요청자(사용자)가 함께 윈윈할 수 있는 플랫폼의 역할을 하게 됩니다.
주요기능
•
API 관리 API의 라이프 사이클(생성/수정/삭제 및 현황)을 관리합니다.
•
보안, 인증·인가, 로드밸런싱 API Gateway를 통해 사용자에게 하나의 엔트리를 제공하여 API를 안전하게 중계, 관리합니다.
•
API 제공 API를 공개하여 API 사용자가 사용할 수 있도록 지원합니다.
•
트래픽제어, 모니터링 API의 사용자 관리, 사용량 분석 등 다양한 데이터 분석을 통해 트래픽 관리 및 다양한 정보들을 제공합니다.
어떤 APIM을 선택할 것인가?
안정성 · 신뢰성
신뢰성이 높다는 것은 API 요청자(사용자)가 API를 항상 사용할 수 있는 상태를 의미합니다. 이를 위해서는 API Gateway가 안정적으로 운영되어야 합니다. 대부분의 API Gateway는 오픈소스 또는 Java 언어로 만든 WAS(Web Application Server) 를 사용합니다. Java 기반의 프로그램은 그 특성상 GC(Garbage Collection)에 대한 약점과, JDK에 대한 의존성이 커서 SSL/TLS 최신 보안 사항을 적용하기에 어려움을 가지고 있어, 안정성과 신뢰성이 떨어집니다.
성능 · 속도
APIM은 한 두개의 API가 아닌 수많은 API를 수많은 API 사용자에게 제공합니다.
API 사용자는 어떤 상황에도 빠르고 일관된 결과를 제공받을 수 있어야 합니다. 이를 위해서 API Gateway는 API의 응답속도(지연시간)를 낮추고 처리량을 높일 수 있는 제품이어야 합니다.
유연성 · 편리성
API관리자는 API를 쉽게 편집하고, 실시간으로 배포하거나 취소할 수 있어야 합니다.
GUI를 통해 손쉽게 버전관리를 하고, 신속하게 적용하기 위해서는 APIM의 아키텍쳐가 훌륭해야 함을 의미합니다.
신속성 · 유지보수
고객의 요구사항을 빠르게 반영할 수 있어야 합니다. 커스터마이징이 필요하거나 기능추가
요건 발생시 빠르게 대처할 수 있는 능력을 갖춘 제품이어야 합니다. 시간은 고객의 경쟁력 입니다.
효율성 · 비용
APIM을 위해 설치해야 할 프로그램이 많거나, 해당 프로그램이 터무니없이 많은 CPU나 메모리 등의 시스템 자원을 많이 사용하면 효율성이 떨어지고 비용은 높아집니다. 특히나 클라우드 환경으로 전환이 이뤄지는 경우라면, 그것은 바로 고객의 비용을 높이는 주 원인이 됩니다.