본문 바로가기
AWS

[AWS] API Gateway

by 킹차니 2023. 5. 30.

API Gateway

클라이언트 어플리케이션이 백엔드 서비스로부터 데이터를 요청하고 응답을 받을 수 있는 진입점. 웹 서비스, 마이크로 서비스, 서버리스 애플리케이션 등 다양한 백엔드 서비스의 API를 관리하고 보호하는 역할을 할 수 있다.

* 리버스 프록시(reverse proxy)
리버스 프록시는 api gateway와 다른 개념이다. 리버스 프록시는 클라이언트와 서버 간의 통신을 중개하는 서버로 동작하며, 로드 밸런싱, 보안, 캐싱 등의 역할을 한다. 물론 API gateway가 리버스 프록시의 역할을 할 수는 있다.

 

 

API Gateway의 기능을 간략하게 살펴보면 다음과 같다.

1. API 라우팅

클라이언트가 요청하는 API 엔드포인트와 백엔드 서비스 간의 연결 관리. 요청 API 경로에 따라 적절한 백엔드 서비스로  요청 전달.

 

2. 인증 및 권한 부여

클라이언트 인증을 처리하고 권한 부여 메커니즘을 부여해 요청된 API에 대한 접근을 제어.

 

3. 요청 및 응답 변환

클라이언트와 백엔드 서버간의 요청 및 응답 형식을 변환 가능. 즉 헤더를 수정하거나 응답 데이터를 필터링하여 변환할 수 있음.

 

4. 로깅 및 모니터링

API 요청과 응답에 대한 로깅 및 모니터링 기능 제공하여 트래픽 및 성능을 추적하고 분석 가능.

 

5. 스로틀링(Throttling) 및 캐싱

요청 횟수 제안, 대역폭 제한, 요청 속도 제한 등의 스로틀링 기능을 제공하여 서버의 부하는 낮추고 성능은 향상 시킴. 또한 캐싱을 사용하여 빠른 응답속도를 제공

* 스로틀링
사전적으로는 목을 조른다는 의미로 무언가의 출력을 조절한다는 의미도 가진다. API gatway에서는 서버 과부하를 막기 위해 의도적으로 요청 응답 허용 수를 줄일 수 있다. 만약 너무 많은 요청을 할 시에 Too Many Request 응답을 받는 경우가 스토틀링을 하는 경우라 볼 수 있다.

6. 보안

ssl/tls 암호화를 지원하여 API 통신을 보호하고 DDos 공격 등으로부터 보호하는 기능.

 

이와 같은 API Gateway는 다양한 방법으로 구현할 수 있다. 유명한 것으로는 NGINX, Spring Cloud Gateway가 있을 것이다.

또한 AWS의 API Gateway를 사용하는 방법도 있다.

 

AWS API Gayeway

AWS API Gayeway는 AWS의 관리형 서비스로, 개발자가 손쉽게 RESTful API를 생성, 게시, 유지 관리할 수 있도록 해준다.

AWS Gateway는 위에서 언급한 API Gateway 기능의 대부분을 지원할 뿐 아니라, 통합 및 확장성을 지원한다. 이는 AWS의 람다함수, HTTP 엔드 포인트등 외에도 다양한 AWS 서비스와의 통합을 통해 다양한 기능을 제공할 수 있음을 말한다. 또한 Auto Scaling과 같은 AWS의 확장성 기능과 통합되어 대량 트래픽에 대한 처리를 지원할 수도 있다.

추가적으로 AWS API Gateway는 수신한 API 호출에 따라 비용을 책정한다.

 

AWS 자습서에 있는 AWS API Gateway 아키텍쳐 이미지를 보면 AWS API Gateway가 제공하는 캐싱, 로깅 및 모니터링, 다양한 AWS 서비스와의 통합 기능을 제공함을 한눈에 볼 수 있다.

 

AWS API Gateway는 REST API와 HTTP API를 제공한다. 즉 콘솔창에서 API Gateway를 만드려면 둘 중 하나를 선택해야한다.

(이외에도 WebSocket API도 있지만 여기선 다루지 않는다.)

 

HTTP API

HTTP API는 설명에 써있는 것처럼 API의 진입점의 기능만을 사용하는 경우에 최적화되어 있다. 즉 API 라우팅만을 사용한다면 HTTP API도 좋은 옵션일 것이다. 또한 REST API에 비해 구성이 쉽고 비용이 비교적 저렴하고 응답 속도가 빠르다는 장점이 있다.

 

 

REST API

REST API는 HTTP API보다 더 많은 기능을 제공한다. 예로 고급 인증 및 권한 부여(IAM과 통합), 스테이지 변수, API 호출에 대한 로깅 및 모니터링, 요청 및 응답 검증과 같은 기능 외에도 다양한 기능을 제공한다.

 

 

 

 

참고:

https://docs.aws.amazon.com/apigateway/latest/developerguide/welcome.html

 

What is Amazon API Gateway? - Amazon API Gateway

What is Amazon API Gateway? Amazon API Gateway is an AWS service for creating, publishing, maintaining, monitoring, and securing REST, HTTP, and WebSocket APIs at any scale. API developers can create APIs that access AWS or other web services, as well as d

docs.aws.amazon.com

https://inpa.tistory.com/entry/AWS-%F0%9F%93%9A-API-Gateway-%EA%B0%9C%EB%85%90-%EA%B8%B0%EB%B3%B8-%EC%82%AC%EC%9A%A9%EB%B2%95-%EC%A0%95%EB%A6%AC

 

[AWS] 📚 API Gateway 개념 & 기본 사용법 정리

API Gateway 서비스 API Gateway란 규모에 상관없이 API 생성, 유지 관리, 모니터링과 보호를 할 수 있게 해주는 서비스이다. 말 그대로 Client에서 server로 통신할 때 사용하는 많은 api들의 대문(게이트웨

inpa.tistory.com

ChapGPT