# MSA에서 Client가 FrontEnd와 BackEnd를 Apigee, CloudFront, Route53을 통해 호출하는 과정
AWS에서 NGINX와 Backend가 Kubernetes Pod로 분리되어 있고, Apigee를 API 관리 솔루션으로 사용할 때, 클라이언트가 Route 53과 CloudFront를 통해 NGINX, Backend, 그리고 Apigee를 호출하는 플로우는 아래와 같다.
1. 클라이언트 요청 시작
클라이언트(웹 브라우저, 모바일 앱 등)가 서비스에 접근하기 위해 Route 53에 설정된 도메인 이름(예: http://www.example.com)을 사용하여 요청을 보낸다.
2. Route 53 DNS 해석
Route 53은 요청된 도메인 이름을 해석하여 CloudFront 배포의 도메인 이름으로 매핑된 IP 주소로 요청을 라우팅한다.
3. CloudFront 처리
CloudFront는 AWS의 CDN 서비스로, 요청을 받아 캐시된 컨텐츠를 제공할 수 있다.
캐시에 없는 컨텐츠나 동적 컨텐츠의 경우, CloudFront는 오리진으로 설정된 Apigee 엔드포인트(또는 AWS 내의 다른 오리진)로 요청을 전달한다.
4. Apigee 처리
Apigee는 API 게이트웨이 역할을 하며, 요청을 받아 API 키 검증, 쿼터 관리, 액세스 제어 등의 정책을 적용.
정책을 적용한 후, Apigee는 요청을 AWS 환경 내의 적절한 서비스로 전달한다.
5. AWS 로드 밸런서로 요청 전달
Apigee에서 처리된 요청은 AWS의 로드 밸런서(ELB, ALB 등)를 통해 Kubernetes 클러스터로 라우팅된다.
6. Ingress Controller로 요청 라우팅
Kubernetes 클러스터 내에서, Ingress Controller(예: NGINX Ingress Controller)가 요청을 받고 설정된 Ingress 규칙에 따라 요청을 적절한 서비스(NGINX Pod 또는 Backend Pod)로 라우팅한다.
7. NGINX 및 Backend Pod 처리
NGINX Pod는 정적 컨텐츠를 제공하거나 요청을 Backend Pod로 프록시할 수 있다.
Backend Pod에서는 요청을 처리하고 응답을 생성한다.
- 응답 흐름:
생성된 응답은 역순으로 클라이언트에게 전달된다.
응답은 Backend Pod에서 NGINX Pod로, 그리고 Ingress Controller를 거쳐 AWS 로드 밸런서, Apigee, CloudFront, 그리고 최종적으로 클라이언트에게 도달한다.
- 클라이언트 응답 수신:
클라이언트는 최종적으로 서버로부터 응답을 받아 사용자에게 결과를 표시한다.
이 구성은 고성능, 보안, 그리고 API 관리를 위한 강력한 아키텍처를 제공한다.
- 끝 -
'↪ Flow' 카테고리의 다른 글
MSA에서 Client가 FrontEnd와 BackEnd와 Apigee를 호출하는 과정 (0) | 2024.07.12 |
---|---|
MSA에서 Client가 Route53, CloudFront를 통해 S3 index.html파일에 접근하고 Apigee를 거쳐 백엔드를 호출 (0) | 2024.07.12 |
MSA에서 Client가 FrontEnd와 BackEnd를 호출하는 과정 정리 (0) | 2024.07.11 |