q1: 용도별 API Gateway의 구조와 기능
a1:
API Gateway는 마이크로서비스 아키텍처에서 중요한 역할을 하는 컴포넌트로, 클라이언트 요청을 적절한 마이크로서비스로 라우팅하고, 여러 서비스의 통합 관리를 지원합니다. API Gateway는 요청을 처리하고, 인증, 보안, 로깅, 트래픽 관리 등의 기능을 제공합니다. 주어진 용도별로 API Gateway의 구조와 기능을 설명드리겠습니다.
1. Public API 서비스 제공용
용도:
Public API 서비스 제공용 API Gateway는 외부 클라이언트(예: 모바일 앱, 웹 앱, 제3자 서비스 등)와의 통신을 처리하는 데 사용됩니다. 이 용도는 주로 공개적인 서비스로, 다양한 외부 시스템들이 접근할 수 있는 API를 제공합니다.
구조 및 기능:
• 인증 및 권한 부여: 공용 API는 보안이 중요한데, 인증 시스템 (예: OAuth 2.0, API Key 등)을 통해 클라이언트의 요청을 안전하게 처리합니다. API Gateway는 인증 정보를 확인하고 필요한 권한을 체크합니다.
• 로드 밸런싱: 여러 인스턴스를 가진 서비스가 있을 경우, API Gateway는 트래픽을 적절하게 분산하여 서비스의 가용성을 높입니다.
• 속도 제한 및 요청 제한: API Gateway는 과도한 트래픽을 방지하기 위해 요청 속도 제한(Rate Limiting) 기능을 제공합니다. 외부 사용자가 과도하게 요청을 보내는 경우 이를 제한할 수 있습니다.
• API 버전 관리: API의 버전이 여러 개 있을 경우, API Gateway는 각 버전별로 요청을 분기하고 라우팅하여 구버전과 신버전의 호환성을 유지합니다.
• 로깅 및 모니터링: 외부 사용자의 API 사용 패턴을 추적하고, 통계적인 데이터를 수집하여 성능과 안정성을 분석합니다.
예시:
• AWS API Gateway
• Kong API Gateway
• NGINX API Gateway
2. 기관용 API 서비스 제공용
용도:
기관용 API 서비스는 특정 조직이나 기업 내에서만 사용되는 API입니다. 이 경우 API Gateway는 주로 인증, 접근 제어, 로깅 등의 기능을 통해 API를 관리하고, 내부 사용자 또는 다른 시스템에 대한 접근을 제어합니다.
구조 및 기능:
• 기업/기관 내 인증 시스템 통합: 공공 API와 달리 기관용 API는 보안 요구사항이 더 높습니다. 기관 내의 인증 시스템(예: LDAP, Active Directory)을 API Gateway와 통합하여 사용자 인증 및 권한 부여를 강화합니다.
• IP 화이트리스트 및 접속 제한: 기관용 API는 외부의 접근을 제한하고 내부 네트워크에서만 사용될 수 있도록 설정합니다. API Gateway는 IP 화이트리스트를 설정하여 외부의 요청을 차단합니다.
• 고급 로깅 및 감사: 기관 내부에서의 API 사용 로그는 보안 감사 및 규정 준수를 위해 매우 중요합니다. API Gateway는 API 호출에 대한 상세한 로그를 기록하고, 이를 관리합니다.
• 트래픽 관리 및 QoS: 기관 내에서 발생할 수 있는 트래픽을 관리하기 위해 API Gateway는 우선순위에 따라 서비스 품질(QoS)을 설정하고 트래픽을 관리할 수 있습니다.
• 내부 API와 외부 API의 통합: 기관용 API는 외부 서비스와의 연계를 필요로 할 수 있습니다. API Gateway는 내부 서비스와 외부 서비스 간의 연결을 처리하고, 외부 API 호출도 안전하게 처리할 수 있습니다.
예시:
• Apigee (기업용)
• Kong (기업/기관용)
3. Frontend Reverse Proxy 용
용도:
Frontend Reverse Proxy로서의 API Gateway는 주로 클라이언트가 직접 여러 서비스를 호출하지 않고, API Gateway를 통해 서비스에 접근하도록 하는 구조입니다. 이 경우, 클라이언트와 서버 간의 중개 역할을 합니다.
구조 및 기능:
• 요청 라우팅: 클라이언트 요청은 API Gateway로 들어오고, API Gateway는 이를 적절한 마이크로서비스로 라우팅합니다. 여러 서비스가 하나의 API Gateway를 통해 처리됩니다.
• 리버스 프록시: 클라이언트는 직접 마이크로서비스와 통신하지 않고, API Gateway를 통해 요청을 전달받습니다. 이 방식은 서비스의 보안과 유지 관리를 용이하게 만듭니다.
• WebSocket, HTTP/2, gRPC 등 지원: 클라이언트와의 통신 방식에 따라 API Gateway는 WebSocket, HTTP/2, gRPC 등 다양한 프로토콜을 지원하여 양방향 통신이나 고속 요청을 처리할 수 있습니다.
• API 응답 집합화: 여러 서비스로부터의 응답을 하나의 응답으로 집합화(aggregation)하여 클라이언트에게 전달할 수 있습니다. 예를 들어, 클라이언트가 여러 API 호출을 통해 필요한 데이터를 받는 대신, 하나의 API 호출로 모든 데이터를 제공받을 수 있습니다.
• CORS 처리: Frontend와 Backend 간의 보안 정책을 관리하기 위해 Cross-Origin Resource Sharing(CORS) 정책을 설정하고 관리할 수 있습니다.
• 보안: 클라이언트가 직접 서비스와 통신하지 않기 때문에 API Gateway는 모든 외부 요청을 수신하고, 보안 필터링을 통해 악의적인 요청을 차단할 수 있습니다.
예시:
• NGINX (Reverse Proxy)
• Traefik (Reverse Proxy & API Gateway)
• AWS API Gateway (프론트엔드와 백엔드 간의 중개 역할)
종합적 비교
용도 주요 기능 주요 특징
Public API 서비스 제공용 인증, 속도 제한, 로깅, 트래픽 분배 외부 사용자가 쉽게 접근하고 사용할 수 있도록 제공
기관용 API 서비스 제공용 기업 인증 통합, 보안 강화, 로깅, 감사 기관 내 보안 및 정책 준수 요구 사항 반영
Frontend Reverse Proxy 용 요청 라우팅, CORS, WebSocket, 응답 집합화, 보안 클라이언트와 서비스 간 중개, 보안 및 성능 관리
API Gateway는 각 용도에 맞게 다양한 기능을 제공하며, 서비스 간의 통합과 효율적인 관리 및 보안을 가능하게 합니다.
용도별 API Gateway의 구조와 기능 241231
2024. 12. 31. 17:55
반응형