[API 관리 및 사용 패턴] API 게이트웨이 패턴이란 무엇입니까?

IMKUNYOUNG·2023년 1월 25일
0

CNA 패턴

목록 보기
3/12

API Gateway 패턴이란 무엇입니까?

API 게이트웨이 패턴은 CNA의 비즈니스 기능을 사용자에게 제공하고자할 때 가장 흔하게 사용되는 방법으로 비즈니스 기능을 제공하는 Business Layer 전면에 API Gateway Layer를 두어 사용자에게 서비스를 노출하고 제공하는 패턴을 뜻합니다.


API Gateway Layer란 무엇입니까?

일반적으로 API 게이트웨이 계층은 마이크로서비스 위에 만들어지며 마이크로서비스 또는 마이크로서비스를 조합한 '조합 서비스'들 (마이크로서비스간 통신이 있는 마이크로서비스의 경우 조합 서비스라고 표현)을 통해 구현한 서비스를 관리형 API로 제공할 수 있습니다. API 게이트웨이는 API 컨트롤 플레인과 API 개발자 포털과 함께 운용됩니다.


API Gateway Layer의 관리 체계

API 생성자/API 개발자/서비스 개발자

API 생성자 또는 API 개발자 또는 서비스 개발자는 인터페이스, 문서화, 버전 관리 등 API를 기술적인 관점에서 이해하고 API 퍼블리셔를 통해 API를 API 스토어에 배포하는 기술적인 역할을 담당합니다.


API 퍼블리셔

API 퍼블리셔는 엔터프라이스, 비즈니스 단위로 API를 관리합니다. API 라이프사이클 및 구독, 홍보 등을 관리합니다. 퍼블리션는 API 사용 패턴에 관심을 가져야 하며 모든 API 관련 통계 자료에 접근할 수 있습니다.


애플리케이션 개발자

애플리키이션 개발자는 API 스토어에서 API 발견하고 문서나 포럼을 통해 API 관련 정보를 습득하고 사용합니다.


API 컨트롤 플레인 관리자

API 컨트롤 플레인 관리자API 관리 솔루션을 운영, 관리하며 사용자 권한, 접근 계정을 생성하고 데이터베이스보안 요소관리, 점검하는 책임을 가집니다.


역할별 API 관리 체계 구성도


API Gateway Layer의 구성 요소

API Gateway

API 게이트웨이는 애플리케이션의 비즈니스 기능 (API)에 접근하기 위한 단일 진입점입니다. API 게이트웨이는 호출된 API의 접근 토큰, 인증서와 같은 보안성을 검토할 책임을 가집니다. 또한 API 호출별로 쿼터, 속도 제한, 캐싱, 버전 관리와 같은 QoS (Quality of Service) 관련 정책이 적용되는 지점입니다. 이외에도 API 분석과 관측 가능성 제공을 위한 정보를 수집할 책임을 가지고 있습니다. 경우에 따라서 API Gateway에는 JSON, XML 등의 포맷을 바꿔주는 변환 로직이 구현되기도 합니다. 그러나 API Gateway에 비즈니스 기능 관련 로직을 구현하는 것은 권장드리지 않습니다.

API Management Plane

API Management Plane은 API 생성자 또는 퍼블리셔가 API 사용자에게 API를 제공하고 관리하기 위해 사용하는 인터페이스입니다. 그리고 이 인터페이스는 API 컨트롤 플레인을 통해 API, API 프로덕트를 정의합니다.

API Control Plane

API 컨트롤 플레인은 API에 대한 접근 정책, 스로틀링, 캐싱, 보안성, 버전 관리, API 사용자, 스키마, API 가시성 정보를 설정하기 구성 정보가 들어가 있는 위한 일종의 저장소입니다.

API Developer Portal

API Devleloper Portal은 애플리케이션 개발자에게 API를 소개하는 곳입니다. 개발자들은 API를 사용하고 API, API 프로덕트를 구독하고 평점, Comment를 남길 수 있습니다. 개발자 포털은 애플리케이션이 API를 호출할 때 사용할 보안 키 또는 토큰을 발급해 줍니다.


API Gateway 적용 예시

대부분의 경우 API 게이트웨이는 마이크로서비스의 전면에서 facade 형태로 사용합니다. 모든 마이크로서비스를 API 형태로 제공할 필요는 없으며, 일반적으로 특정 비즈니스 기능을 API 형태로 제공하기로 결정했다면, 해당 비즈니스 기능을 마이크로서비스에 로직으로 구현한 다음 해당 마이크로서비스를 백엔드로 사용하는 API를 생성합니다.


고려해야 할 사항

  • API 게이트웨이 계층에 비즈니스 기능 관련 로직을 구현하지 말 것
  • 목적에 따라 여러 개의 API 관리 계층을 둘 수 있음
  • 일반적으로 API 게이트웨이 계층은 모놀리식 런타임으로 사용됨. 그러나 이 API 게이트웨이 계층에 보안, 정책과 같은 처리해야할 작업이 많아지는 경우 여러 개의 런타임으로 쪼개어 적용할 수도 있음.

0개의 댓글