Architecture Pattern

API Gateway Pattern 이란?

Ed2024 2024. 11. 9. 23:16

API 게이트웨이 패턴은 특정 개인이나 조직이 공식적으로 발표한 개념이라기보다는, 마이크로서비스 아키텍처가 널리 사용되기 시작하면서 자연스럽게 등장하고 발전한 패턴입니다. 2010년대 초반, 넷플릭스(Netflix)와 같은 대규모 웹 서비스 회사들이 마이크로서비스 아키텍처를 도입하면서 이를 효과적으로 관리하기 위한 다양한 패턴을 연구하고 공유했는데, 그중 하나가 바로 API 게이트웨이 패턴입니다.

 

넷플릭스는 마이크로서비스 기반 애플리케이션의 클라이언트 요청을 관리하기 위해 자체 API 게이트웨이 솔루션인 **Zuul**을 개발했고, 이는 API 게이트웨이 패턴의 초기 사례 중 하나로 꼽힙니다. 이후 AWS, Microsoft, Google 등 여러 클라우드 제공업체가 API 게이트웨이 서비스를 제공하며 이 패턴을 널리 확산시켰습니다.

 

API 게이트웨이 패턴은 클라이언트와 마이크로서비스 간의 상호 작용을 단순화하고 효율적으로 관리하기 위해 단일 진입점을 제공하는 아키텍처 패턴입니다. 이를 통해 클라이언트는 여러 마이크로서비스에 직접 접근하는 대신, API 게이트웨이를 통해 필요한 서비스에 접근하게 됩니다.

 

1.    예시: 전자상거래 애플리케이션

 

전자상거래 애플리케이션은 상품 관리, 주문 처리, 결제, 사용자 관리 등 다양한 마이크로서비스로 구성될 수 있습니다. 각각의 마이크로서비스는 독립적으로 배포되고 관리되지만, 클라이언트(, 모바일 앱 등)는 이러한 서비스에 통합된 방식으로 접근해야 합니다.

 

이러한 경우, API 게이트웨이를 도입하여 다음과 같은 역할을 수행할 수 있습니다:

 

1)    단일 진입점 제공: 클라이언트는 API 게이트웨이를 통해 모든 서비스에 접근하므로, 각 서비스의 엔드포인트를 개별적으로 관리할 필요가 없습니다.

 

2)    인증 및 인가 처리: API 게이트웨이에서 클라이언트의 인증 및 권한 부여를 중앙에서 처리하여 보안을 강화할 수 있습니다.

 

3)    요청 집계: 클라이언트의 요청이 여러 마이크로서비스에 분산되어야 하는 경우, API 게이트웨이가 이를 집계하여 클라이언트에게 단일 응답을 제공합니다.

 

4)    로드 밸런싱 및 라우팅: API 게이트웨이는 클라이언트의 요청을 적절한 마이크로서비스로 라우팅하고, 부하를 균등하게 분산시킵니다.

 

5)    모니터링 및 로깅: 모든 요청과 응답을 중앙에서 모니터링하고 로깅하여 시스템의 상태를 파악하고 문제를 추적할 수 있습니다.

 

2.    아키텍처 구조

API Gateway Pattern