[MSA] API Gateway는 왜 필요한가? – 인증, 보안, 확장성 중심의 설계 가이드
2025. 4. 24. 17:04
728x90

MSA에서 API Gateway를 사용하는 이유와 이점

MSA 아키텍처에서 API Gateway는 단순한 요청 라우터를 넘어서, 보안·인증·모니터링의 중심 허브 역할을 수행합니다.


1. 요청 분산 및 라우팅

  • 클라이언트는 마이크로서비스의 실제 경로를 몰라도 됨.
  • Gateway가 요청을 각 서비스로 분배.
Client → /auth/login  →  API Gateway → auth-service
       → /user/me     →              → user-service

2. 인증/인가 처리 중앙 집중화

  • AccessToken 검증은 Gateway에서 처리.
  • 각 서비스는 인증된 사용자 정보(x-user-id)만으로 비즈니스 로직 실행 가능.
  • 보안 로직 중복 제거 + 서비스 로직 순수성 보장

3. 로깅, 모니터링, 속도 제한

  • 모든 요청 로깅, 에러 로깅을 Gateway에서 통합 처리 가능.
  • Rate Limiting 적용도 Gateway 레벨에서 통일 적용.
app.use(globalRateLimiter);
app.use(loggerMiddleware);

4. CORS 처리 일원화

  • 여러 서비스가 존재하더라도 Gateway에서 일괄적으로 CORS 설정 가능.
app.use(cors({ origin: "http://your-frontend.com", credentials: true }));

5. 서비스 보안 구조 강화

  • 서비스들은 외부에 직접 노출되지 않고, Gateway를 통해서만 접근 가능.
  • 보안 위협(DDOS, IP 스캐닝)으로부터 내부 서비스 보호.

6. 서비스 확장 유연성

  • 새로운 서비스 추가 시, Gateway에 경로만 추가하면 손쉽게 연결 가능.
router.use('/item', authenticate, createServiceProxy(process.env.ITEM_SERVICE_URL!));

7. API 응답 조작 또는 조합 가능

  • 여러 마이크로서비스 응답을 Gateway에서 조합하여 BFF(Backend For Frontend) 역할 가능.

인증 구조 예시

Frontend
  ↓
[API Gateway]  ← AccessToken 검증
  ↓
auth-service  ← 로그인 / 회원가입 / 토큰 재발급
user-service  ← 내 정보 조회, 유저 설정

한 줄 요약

API Gateway는 클라이언트와 마이크로서비스 사이의 프론트 도어 역할을 하며,
인증, 라우팅, 보안, 모니터링, 확장성의 중심 축입니다.


반응형