API Gateway

문한성·2023년 5월 9일
0

부트캠프

목록 보기
82/123
post-thumbnail

> 레퍼런스

API Gateway 서비스

API Gateway란 규모에 상관없이 API 생성, 유지 관리, 모니터링과 보호를 할 수 있게 해주는 서비스이다.

말 그대로 Client에서 server로 통신할 때 사용하는 많은 api들의 대문(게이트웨이)과 같은 역할을 한다고 보면 된다.

즉, API가 지나가는 통로인 셈이다.

API Gateway를 이용하면 통합적으로 엔드포인트와 REST API를 관리할 수 있다.

API 게이트웨이를 등록해주면, 모든 클라이언트는 각 서비스의 엔드포인트 대신 API Gateway로 요청을 전달하여 관리가 용이해 진다. 사용자가 설정한 라우팅 설정에 따라 각 엔드포인트로 클라이언트를 대리하여 요청하고 응답을 받으면 다시 클라이언트에게 전달하는 프록시(proxy) 역할을 하기 때문이다.

API Gateway 서비스는 단순히 api 경유지 역할 뿐만 아니라, 엔드포인트 서버에서 공통으로 필요한 인증/인가, 사용량 제어, 요청/응답 변조 등의 다양한 기능을 플러그인 형태로 제공하고 있다.

이러한 플러그인을 API 게이트웨이에서 사용하면, 각 엔드포인트의 서버마다 위의 기능들을 구현하지 않아도 되기 때문에 개발자 입장에서는 개발 비용을 줄일 수 있다는 효과도 있다.

특히 API Gateway를 통해 Lambda와 연동하여 Serverless 서비스를 구축하는데 많이 사용된다.

각 rest api 라우팅에 따라 유기적으로 목적지를 지정할 수 있다.


API Gateway - 제공 API 유형

API Gateway에서 제공하는 API는 대표적으로 3종류가 있다.

  • HTTP API : API 프록시 기능정도만 필요할 때 적합. 단순 / 저렴하고 빠르다.
  • REST API : API 관리 기능, 요청/응답에 대한 제어가 필요할 경우 적합, 복잡 / 비싸고 느리다.
  • WebSocket API : 웹소켓 용도. 실시간 애플리케이션에서 주로 사용한다.

HTTP API

  • HTTP를 통신 방식으로 사용하는 API를 HTTP API라고 한다.
  • HTTP API는 Endpoint를 API gateway로 활용하여 HTTP 요청을 통해서 서버에 접근할 수 있도록 만들어준다.
  • HTTP API는 데이터만 주고 받고 UI 화면이 필요하면 클라이언트가 별도로 처리한다. 대게 앱/웹/서버 to 서버에서 사용된다.
  • 대부분의 Web API가 HTTP API로 이루어지고 있다.

요청 하면 그냥 상품에 대한 데이터만 내려준다. 이렇게 데이터만 주고 받는 것을 HTTP API라고 한다.

REST API

  • REST API는 HTTP API에 여러가지 제약 조건이 추가된 형태이다.
    • 자원의 식별
    • 메시지를 통한 리소스 조작
    • 자기서술적 메세지
    • 애플리케이션의 상태에 대한 엔진으로서 하이퍼미디어
  • REST는 웹 서비스의 구조를 만드는데 활용되는 패턴이며 위의 4가지 제약조건을 만족해야 RESTFUL 하다라고 말할 수 있다.
  • 대표적으로 CRUD 메서드 동작을 일컫는다. CREATE(post), READ(get), UPDATE(put), DELETE(delete)
  • 그런데 이런 부분을 완벽하게 지키면서 개발하는 것은 현실적으로 어렵고, 또 추가 개발 비용대비 효과가 있는 것도 아니어서, 이미 많은 사람들이 해당 조건을 지키지 않아도 REST API라고 하기 때문에, HTTP API나 REST API를 거의 같은 의미로 사용하고 있는 현실이다. (물론 엄격하게는 다르다)

WEBSOCKET API

  • 요청을 받고 응답하는 REST API와 달리 WebSocket API는 클라이언트 앱과 백엔드 간의 양방향 통신을 지원한다.
  • 웹 소켓은 사용자의 브라우저와 서버 사이의 인터액티브 통신 세션을 설정할 수 있게 하는 고급 기술 이다.
  • 채팅 앱 및 스트리밍 대시보드와 같은 실시간 양방향 통신 애플리케이션을 구축하여 백엔드 서비스와 클라이언트 간의 메시지 전송을 처리하기위해 지속적인 연결을 유지한다.


API Gateway - 요금 정책

API Gateway는 람다와 같이 서버리스 서비스이며, 수신한 API 호출에 대해서만 지불한다.

다만 HTTP API / REST API / WEBSOCKET API 각각 모두 요금대가 다르다.

Tip

프리티어 계정은 1년동안 매달 3개의 API마다 100만 건씩 무료로 제공된다.

만일 월별 호출 수가 100만 개를 초과하는 경우, API Gateway 사용 요금이 청구된다.

Amazon API Gateway 요금 | API 관리 | Amazon Web Services

profile
기록하고 공유하려고 노력하는 DevOps 엔지니어

0개의 댓글