본문 바로가기

↪ Flow

MSA에서 Client가 FrontEnd와 BackEnd와 Apigee를 호출하는 과정

728x90
반응형

# MSA에서 Client가 FrontEnd와 BackEnd와 Apigee를 호출하는 과정 정리

AWS에서 NGINX과 Backend가 Kubernetes Pod로 분리되어 있고, Apigee를 API 관리 솔루션으로 사용할 때, 클라이언트에서 NGINX, Backend, 그리고 Apigee를 호출하는 플로우는 다음과 같다.

1. 클라이언트 요청 시작

클라이언트(웹 브라우저, 모바일 앱 등)가 서비스에 접근하기 위해 Apigee에 설정된 API 엔드포인트를 호출한다.

2. Apigee 처리

Apigee는 API 게이트웨이 역할을 하며, 요청을 받아 API 키 검증, 쿼터 관리, 액세스 제어 등의 정책을 적용한다.

Apigee는 요청을 적절한 백엔드 서비스로 라우팅하기 전에 이러한 정책을 실행후 해당 백엔드 서비스로 라우팅 한다.

3. AWS로 요청 전달

Apigee에서 정책을 적용한 후, 요청은 AWS 환경 내의 적절한 서비스로 전달된다. 이는 AWS의 로드 밸런서(ELB, ALB 등)를 통해 Kubernetes 클러스터로 라우팅될 수 있다.

4. Ingress Controller로 요청 라우팅

Kubernetes 클러스터 내에서, Ingress Controller(예: NGINX Ingress Controller)가 요청을 받고 설정된 Ingress 규칙에 따라 요청을 적절한 서비스로 라우팅한다. 여기서는 NGINX Pod로 요청이 라우팅된다.

5. NGINX Pod 처리

NGINX Pod는 정적 컨텐츠를 직접 제공하거나, 요청을 Backend Pod로 프록시할 수 있다. NGINX 설정에 따라 요청을 적절한 Backend 서비스로 전달한다.

6. Backend Pod 처리

요청이 Backend Pod에 도달하면, Backend 애플리케이션이 요청을 처리하고 응답을 생성한다.

- 응답 흐름 정리

생성된 응답은 같은 경로를 역순으로 따라 클라이언트에게 전달된다.

응답은 Backend Pod에서 NGINX Pod로, 그리고 Ingress Controller를 거쳐 AWS 로드 밸런서로, 그리고 Apigee를 통해 최종적으로 클라이언트에게 도달한다.

 

- 클라이언트 응답 수신

클라이언트는 Apigee를 통해 최종적으로 서버로부터 응답을 받아 사용자에게 결과를 표시한다.

 

- 끝 -

728x90
반응형