토스는 Gateway 이렇게 씁니다
최준우 · 토스 · 토스 기술 블로그
소개
더 안전하고 안정적인 서비스 운영을 위해서 ‘gateway’를 어떻게 사용해야 할까요? 토스의 수많은 마이크로서비스 로직을 공통화하기 위한 gateway 운영 방법에 대해 소개합니다.
AI 핵심 요약
마이크로서비스가 늘면서 각 서비스에 공통 로직을 중복 구현하고 배포하기 어려워지자, 토스는 Spring Cloud Gateway를 중앙 제어 지점으로 활용했습니다. Gateway는 Route의 Predicate와 Filter를 바탕으로 요청을 라우팅하고, 입력값 정제와 Passport 전파, 종단간 암호화 복호화 및 인증·인가를 처리합니다. 또한 Istio와 애플리케이션 레이어의 서킷 브레이커를 함께 활용하고, Elasticsearch·Prometheus·Grafana로 요청과 시스템 상태를 관찰합니다. 공통 기능을 Gateway에 모으면 서비스의 부담을 줄이고 보안과 안정성을 일관되게 관리할 수 있지만, 모든 트래픽이 통과하는 만큼 세밀한 모니터링이 중요하다는 점을 보여줍니다.
- Route는 요청을 구분하는 Predicate와 전·후처리를 수행하는 Filter로 구성한다.
- Passport처럼 인증된 사용자 정보를 요청 흐름에 실어 보내면 서비스마다 유저 API를 반복 호출하는 일을 줄일 수 있다.
- Gateway에서 입력값 정제와 요청 서명 검증을 수행해 악성 입력, 재전송 공격, 만료된 키 사용을 방어할 수 있다.
- 서킷 브레이커는 장애 전파를 막으며, Istio의 호스트 단위 설정과 애플리케이션의 Route·기능 단위 설정을 상황에 맞게 선택한다.
- Gateway는 모든 요청이 지나는 만큼 로그·메트릭·트레이싱을 갖추고 Route와 API 경로별로 관찰해야 한다.
비슷한 학습 자료
토스ㅣSLASH 23 - 토스는 Gateway 이렇게 씁니다
SLASH · YouTube
토스ㅣSLASH 22 - 은행 앱에도 Service Mesh 도입이 가능한가요?
SLASH · YouTube
토스ㅣSLASH 21 - 토스 서비스를 구성하는 서버 기술
SLASH · YouTube
API Gateway Pattern에는 API Gateway가 없다 #우아콘2022 #Day2_음식그이상의것을문앞으로
우아콘 2022 · YouTube
경계 보안부터 제로트러스트 보안까지, 고도화 여정
김영재/조성현 · 토스 기술 블로그
API 연동 자동화를 위한 여정: 토스는 왜 사내 MCP 서버를 개발하였는가? with Spring-AI
조민규 · 토스 기술 블로그