1. API Gateway 소개
API Gateway의 정의와 역할
API Gateway는 클라이언트와 백엔드 서비스 사이의 중개자 역할을 하는 서버입니다. 이는 마이크로서비스 아키텍처에서 특히 중요한 컴포넌트로, 다음과 같은 주요 역할을 수행합니다:
- 요청 라우팅: 클라이언트 요청을 적절한 백엔드 서비스로 전달.
- 프로토콜 변환: 예를 들어, HTTP에서 gRPC로의 변환을 수행.
- 인증 및 인가: 요청에 대한 인증을 처리하고 접근 권한을 확인.
- 로드 밸런싱: 여러 서버 인스턴스에 트래픽을 분산.
- 캐싱: 응답을 캐시하여 백엔드 부하를 줄이고 응답 시간을 개선.
- 모니터링 및 로깅: API 사용량과 성능 메트릭을 수집.
API Gateway가 해결하는 문제들
- 복잡성 관리: 마이크로서비스 아키텍처의 복잡성을 클라이언트로부터 숨김.
- 보안 강화: 중앙화된 인증 및 인가 처리로 보안을 향상.
- 성능 최적화: 캐싱과 로드 밸런싱을 통해 전체 시스템 성능을 개선.
- 프로토콜 다양성: 다양한 백엔드 프로토콜을 단일 인터페이스로 통합.
- 모니터링 용이성: API 사용량과 성능에 대한 중앙화된 모니터링을 제공.
2. API Gateway에서 인증 처리의 중요성
중앙화된 인증의 이점
- 일관성: 모든 API에 대해 동일한 인증 메커니즘을 적용.
- 단순화: 각 마이크로서비스에서 개별적으로 인증을 구현할 필요가 없어짐.
- 유지보수 용이성: 인증 로직의 변경이 필요할 때 한 곳에서만 수정.
보안 강화와 일관성 유지
- 단일 진입점: 모든 요청이 API Gateway를 통과하므로 보안 모니터링 용이.
- 토큰 관리: JWT와 같은 토큰 기반 인증을 중앙에서 관리.
- 세션 관리: 분산 환경에서도 일관된 세션 관리가 가능.
- 접근 제어: 세밀한 접근 제어 정책을 구현하고 적용.
간단한 nginx 를 활용한 api gateway 인증 예시
https://github.com/junholee14/nginx-gateway-example
'IT > 아키텍처' 카테고리의 다른 글
[서버] 포워드 프록시, 리버스 프록시 정리 (0) | 2020.08.18 |
---|