API gateway는 마이크로서비스 앞에 위치하는 단일 진입점입니다. 클라이언트는 gateway를 호출하고, gateway는 요청을 적절한 서비스로 라우팅하며 횡단 관심사(cross-cutting concern)를 처리합니다.
하는 일
- 라우팅 —
/orders/*를 orders 서비스로 전달.
API gateway는 마이크로서비스 앞에 위치하는 단일 진입점입니다. 클라이언트는 gateway를 호출하고, gateway는 요청을 적절한 서비스로 라우팅하며 횡단 관심사(cross-cutting concern)를 처리합니다.
/orders/*를 orders 서비스로 전달.주니어부터 시니어까지 상세한 답변이 포함된 IT 면접 질문 라이브러리.
후원하기 ┌─────────────────────────────┐
Clients ─▶│ API Gateway │
│ auth · rate-limit · route │
└──┬──────────┬──────────┬────┘
▼ ▼ ▼
Orders Payments Users
# gateway 라우트
routes:
- path: /orders/**
service: orders-service # 주문 트래픽을 여기로 전달
rateLimit: 100/min # 남용하는 클라이언트를 제한
- path: /users/**
service: users-service
auth: required # 라우팅 전에 gateway가 인증을 강제
gateway는 **단일 장애 지점(single point of failure)**과 병목이 될 수 있습니다. 고가용성으로 운영하고 비즈니스 로직은 그 안에 두지 마세요.
gateway는 각 서비스가 인증, 속도 제한, TLS를 다시 구현하지 않아도 되게 해주고, 클라이언트에게 수십 개의 주소 대신 하나의 안정적인 URL을 제공합니다.
gateway가 없으면 클라이언트는 모든 서비스의 주소를 알아야 하고 횡단 로직을 중복해야 하는데, 이는 금세 관리 불가능해집니다.