AWS(Amazon Web Service) 입문자들의 스터디 [sect.7] - API Gateway

박규민·2024년 10월 26일

API Gateway

API Gateway란?

  • API Gateway란 규모에 상관없이 API를 생성, 유지 관리, 모니터링과 보호를 할 수 있게 해주는 서비스이다
  • Client에서 Server로 통신할 때 사용하는 많은 API들이 지나가는 통로

API Gateway 이용시 장점

  • 통합적으로 엔드포인트와 REST API 관리 가능
    • 게이트웨이 등록시, 모든 클라이언트가 각 서비스의 엔드포인트 대신 API Gateway로 요청을 전달해 관리 용이
    • 단순 api 경유지 역할과 더불어 엔드포인트 서버에서 공통으로 필요한 인증/인가, 사용량제어, 요청/응답 변조 제공
  • 위와 같은 기능을 API 게이트웨이에서 사용시, 엔드포인트 서버마다 위 기능들을 구현하지 않아도 돼 개발 비용을 줄일 수 있다
    • 특히 Lambda와 연동해 서버리스 서비스 구축에 많이 사용된다

API Gateway 제공 API 유형

  • HTTP API
  • REST API
  • WebSocketAPI
  • HTTP API
    • HTTP를 통신 방식으로 사용하는 API
    • Endpoint를 게이트웨이로 활용해 HTTP요청으로 서버에 접근
    • 데이터만 주고받고 UI 필요시 클라이언트가 별도로 처리
    • 대부분의 Web API가 HTTP API로 이뤄진다

  • REST API
    • HTTP API에 여러가지 제약 조건이 추가된 형태
      : 자원의 식별
      : 메시지를 통한 리소스 조작
      : 자기서술적 메세지
      : 애플리케이션의 상태에 대한 엔진으로서 하이퍼미디어
    • REST는 웹 서비스 구조를 만드는데 활용,
      위 4가지 제약조건을 만족해야 RESTFUL하다
    • 대표적으로 CRUD 메서드 동작
    • 엄격하게는 다르지만, HTTP,REST API를 같은 의미로 사용
  • WEBSOCKET API
    • REST API는 요청을 받고 응답하지만,
      WebSocketAPI는 클라이언트 앱과 백엔드 간의 양방향 통신
    • 웹 소켓은 사용자의 브라우저와 서버 간 양방향 통신 세션 설정
    • 실시간 어플리케이션을 구축해 백엔드-클라이언트 간의 메시지 전송을 처리하기 이해 지속적인 연결 유지

HTTP API 실습

백엔드로 해커톤을 진행하면서 API 테스트를 진행하는데 멘탈이 터졌다

넘나 어려운 것

API 생성도 힘들고, 구성도 힘든데

RESTful하게 진행하기는 많이 힘들 것 같아 HTTP로 실습을 해보려한다

: 먼저 API 이름을 정의한다

: 그 다음으로는 통합을 지정했다
: 메서드는 Any로, 어떤 요청이 오든 모두 포함되는 메서드로 지정했다
: 경로는 topics, URL은 naver.com

위와 같이 연결을 진행하면

엔드포인트 주소에 경로를 쳐서 실질적으로 원하는 도메인으로 연결을 할 수 있다고 하던데

나는 라우팅에 실패했다

아무래도 다른 방법이 있는 것 같은데 찾아봐야 할 것 같다.


API를 새로 구축해 시도하였더니 접속까지는 해결되었지만

네이버 검색창 하나만 보여주ㄴ다

API Gateway 엔드포인트 URL 이점

  1. 확장성과 관리성
    • 요청을 여러 백엔드로 분산 -> 부하를 줄여준다
    • 많은 트래픽이 발생해도 백엔드 확장에 용이하다
  2. 보안 강화
    • 인증 권한 부여,OAuth2.0 지원 -> 접근 제한
  3. 로깅 및 모니터링
    • CloudWatch와 연결돼 로그 및 모니터링이 가능
  4. 서버리스 통합
    • 서버리스 서비스인 Lambda와 통합
    • 서버 관리 없이 서버리스 방식으로 요청 처리 가능
  5. 통일된 URL
    • 고유한 엔드포인트 URL로 타 어플리케이션과의 통합 및 테스트 용이

참고:
네이버cloud에서 설명하는 API게이트웨이
https://api.ncloud-docs.com/docs/api-overview
https://blog.naver.com/n_cloudplatform/221123434939

profile
말도 할 줄 아는 Potato임니다

0개의 댓글