[2023 기능대회 준비] 11. API Gateway

Yohan_05·2023년 3월 22일
1
post-thumbnail

1과제에 대한 내용은 10개 정도면 충분한 것 같고.. 일단 2과제에 대한 내용들을 공부하다가 1과제 부족한 내용들 다시 정리하고 그런식으로 진행할 것 같다.

API Gateway란?

규모에 상관없이 API 생성, 유지 관리, 모니터링과 보호를 할 수 있게 해주는 서비스. 말 그대로 Client에서 Server로 통신할 때 사용하는 많은 api들의 대문(게이트웨이)과 같은 역할을 한다고 보면됨.
즉, API가 지나가는 통로임.

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

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

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

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

뭐 예를 들면 fetch('example.io/a') -> example.org 이런식으로 유기적으로 목적지를 지정할 수 있다.'

제공 API 유형

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

HTTP API

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

REST API

  • REST API는 HTTP API에 여러가지 제약 조건이 추가된 형태임.
    - 자원의 식별
    • 메시지를 통한 리소스 조작
    • 자기서술적 메세지
    • 애플리케이션의 상태에 대한 엔진으로서 하이퍼미디어
  • REST는 웹 서비스의 구조를 만드는데 활용되는 패턴이며 위의 4가지 제약조건을 만족해야 RESTFUL하다 말할 수 있음.
  • 대표적으로 CRUD 메서드 동작을 말함.

WebSocket api

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

마치며

간략하게 개념을 살펴봤고, 다음편에선 실습을 진행하도록 하겠다.

profile
안녕하세요 DevOps 엔지니어로 현업에서 활동중인 요한이라고 합니다.

0개의 댓글