공부한 내용을 스스로 되새기기 위한 목적으로 작성되었습니다.
규모에 상관없이 API 생성, 유지 관리, 모니터링과 보호를 할 수 있게 해주는 서비스
API 게이트웨이를 등록해주면, 모든 클라이언트는 각 서비스의 엔드포인트 대신 API Gateway로 요청을 전달하여 관리가 용이해 진다 (즉, 느슨한 결합 유지). 사용자가 설정한 라우팅 설정에 따라 각 엔드포인트로 클라이언트를 대리하여 요청하고 응답을 받으면 다시 클라이언트에게 전달하는 프록시(proxy) 역할을 하기 때문이다.
api 경유지 역할 뿐만 아니라, 엔드포인트 서버에서 공통으로 필요한 인증/인가, 사용량 제어, 요청/응답 변조 등의 다양한 기능을 플러그인 형태로 제공함.
Lambda와 연동하여 Serverless 서비스를 구축하는데 많이 사용된다
각 rest api 라우팅에 따라 유기적으로 목적지를 지정할 수 있다.
요청 하면 그냥 상품에 대한 데이터만 내려준다. 이렇게 데이터만 주고 받는 것을 HTTP API라고 한다.
API Gateway는 람다와 같이 서버리스 서비스이며, 수신한 API 호출에 대해서만 지불한다.
다만 HTTP API / REST API / WEBSOCKET API 각각 모두 요금대가 다르다.
전통적인 모놀리틱 아키텍처 기반의 대용량 서비스가 점점 유지보수의 어려움을 겪으며 마이크로서비스 아키텍처가 기존 모놀리틱 아키텍처의 단점을 보완하는 역할을 하였음. 그 MSA를 구성할 때 접목한 서비스가 API Gateway이다. API Gateway는 마이크로서비스를 연결하는 중간다리 역할을 담당하며, MSA에서 핵심적으로 필요한 기능이 되었다.
각 마이크로서비스는 자체 기능을 필요로 하기 때문에 애플리케이션을 느슨하게 결합된 여러 서비스로 분해될 수 있다. 이 때 고객이 각 마이크로서비스에 대한 액세스를 개별적으로 요청하는 대신 게이트웨이는 요청에 대한 단일 진입점(entrypoint)으로, 해당 요청을 적절한 서비스에 연결하고 결과를 수집하여 요청자에게 다시 전달하게 도와줍니다(라우팅).