Amazon API Gateway
API Gateway는 외부 클라이언트 요청이 처음 들어오는 API 프런트도어입니다. 경로와 메서드별로 인증, 제한, 변환 규칙을 적용한 뒤 적절한 백엔드로 요청을 전달합니다.
▶아키텍처 다이어그램
🔗 관계 다이어그램점선 애니메이션은 데이터 또는 요청의 흐름 방향을 나타냅니다
모바일 앱, 웹, 파트너 호출이 모두 같은 백엔드로 들어오는데 인증, 요청 제한, 버전별 라우팅을 각 서비스에 따로 넣으면 규칙이 쉽게 어긋납니다. API 앞단에서 공통 정책을 한 번에 걸지 못하면 변경할 때마다 여러 앱을 동시에 손봐야 합니다.
과거에는 각 서비스가 인증, 요청 검증, 레이트 리밋을 제각각 구현했습니다. 이런 중복을 줄이고 API 운영을 표준화하기 위해 전용 API 프런트도어인 API Gateway가 필요해졌습니다.
외부 요청이 들어오면 API Gateway는 먼저 토큰이나 API 키로 인증·인가를 확인하고, 설정된 스로틀링 한도를 초과했는지 체크합니다. 두 단계를 통과한 요청만 경로와 메서드 규칙에 따라 Lambda·EC2·ECS 같은 백엔드로 라우팅됩니다. 이 흐름이 하나의 프런트도어에서 일어나기 때문에, 각 백엔드에 인증이나 제한 로직을 따로 심지 않아도 됩니다. 스테이지와 배포 단위를 분리하면 동일한 API를 버전별로 독립적으로 운영할 수 있습니다.
API Gateway와 EventBridge는 둘 다 흐름의 시작점이 될 수 있지만 입력 성격이 다릅니다. API Gateway는 외부 요청을 받아 인증·스로틀링·정책을 적용하는 동기식 프런트도어이고, EventBridge는 이미 발생한 이벤트를 규칙으로 비동기 라우팅하는 버스입니다. 외부 클라이언트 API를 열어야 하면 API Gateway를 보고, 서비스 사이 사건 전달을 느슨하게 연결해야 하면 EventBridge를 보면 됩니다.
모바일·웹용 공개 API, 웹훅 수신, 서버리스 백엔드, 파트너용 인터페이스처럼 HTTP 진입점을 제품처럼 운영해야 할 때 적합합니다. 인증·스로틀링 없이 단순히 트래픽을 여러 서버로 나누는 것만 필요하면 맞지 않습니다.