- 프로덕션 환경에 API를 전달하는 플랫폼과 도구로 관심을 돌려보자.
- API 게이트웨이는 모던 기술 스택에는 중요한 역할을 담당하며 시스템 네트워크의 에지에서 소비자와 여러 백엔드 서비스 사이의 중재자 역할을 수행함.
API 게이트웨이가 유일한 해결책일까?
“API 게이트웨이가 백엔드 시스템에 사용자 트래픽을 전달하기 위한 유일한 해결책인가?”
→ 이는 그렇지 않음
많은 소프트웨어 시스템이 소비자의 API 요청이나 외부로부터 유입되는 인그레스 트래픽을 내부 백엔드 애플리케이션에 전달함.
- 웹 기반 소프트웨어 시스템의 경우는 보통 웹 브라우저나 모바일 앱으로 백엔드 시스템을 호출하는 최종 사용자로부터 API로의 요청이 발생함
- 또한 인터넷 어딘가에 배포되어 있는 애플리케이션 같은 외부 시스템에서 API로의 요청이 발생하기도 함.
- 인그레스 기능을 제공하는 솔루션은 URL로부터 백엔드 시스템으로 트래픽을 전달하는 메커니즘은 물론, 안정성, 관측 용이성, 보안 등의 기능도 제공함.
API 게이트웨이 대신에 간단한 프록시 또는 로드밸런서를 사용할 수 있지만 API 게이트웨이는 앤터프라이즈 시장에서 가장 널리 활용되는 솔루션이며, 소비자와 제공자의 수가 늘어날 때 더 확장 가능하고 유지보수가 용이하며 안전한 옵션임
다음 표를 통해 현재 요구사항을 각 솔루션의 역량과 비교
| 기능 |
리버스 프록시 |
로드밸런서 |
API 게이트웨이 |
| 단일 백엔드 |
o |
o |
o |
| TLS/SSL |
o |
o |
o |
| 다중 백엔드 |
|
o |
o |
| 서비스 발견 |
|
o |
o |
| API 조합 |
|
|
o |
| 인가 |
|
|
o |
| 재시도 로직 |
|
|
o |
| 호출률 제한 |
|
|
o |
| 로깅과 추적 |
|
|
o |
| 서킷브레이커 |
|
|
o |
프록시의 종류 (간단히)
- 포워드 프록시 (Forward Proxy)
- 보통 우리가 “프록시 서버”라고 부르는 것.
- 내부 사용자가 외부 인터넷으로 나갈 때, 먼저 프록시를 거치게 해서 IP를 숨기거나, 캐시 하거나, 접근 통제를 하는 용도.
- ex) 회사/학교 네트워크에서 특정 사이트 차단, VPN 비슷한 역할 등.
- 리버스 프록시 (Reverse Proxy)
- 클라이언트 입장에서는 하나의 서버처럼 보이지만, 실제로는 뒤에 여러 서버가 있고, 리버스 프록시가 그 사이에서 요청을 분배해 줌.
- Nginx, Apache httpd, HAProxy 같은 게 대표적이야.
- 여기서 말하는 API 게이트웨이는 리버스 프록시를 기반으로 기능을 많이 붙인 상위 개념이라고 보면 돼 (슬라이드에도 “리버스 프록시 기반으로 만들어졌다”고 나와 있지).
가이드라인: 프록시, 로드밸런서 또는 API 게이트웨이의 선택