API Gateway

호밀빵 굽는 쿼카·2022년 9월 6일
0

NHN Cloud

목록 보기
9/16

apigw 무중단 작업 방법에 대한 고민도 있는데 같이하면 좋겠군요

what is API Gateway?

AWS에서 정의된 API Gateway

"Amazon API Gateway는 어떤 규모에서든 개발자가 API를 손쉽게 생성, 게시, 유지 관리, 모니터링 및 보안 유지할 수 있도록 하는 완전관리형 서비스입니다. API는 애플리케이션이 백엔드 서비스의 데이터, 비즈니스 로직 또는 기능에 액세스할 수 있는 "정문" 역할을 합니다. API Gateway를 사용하면 실시간 양방향 통신 애플리케이션이 가능하도록 하는 RESTful API 및 WebSocket API를 작성할 수 있습니다. API Gateway는 컨테이너식 서버리스 워크로드 및 웹 애플리케이션을 지원합니다.
API Gateway는 트래픽 관리, CORS 지원, 권한 부여 및 액세스 제어, 제한, 모니터링 및 API 버전 관리 등 최대 수십만 개의 동시 API 호출을 수신 및 처리하는 데 관계된 모든 작업을 처리합니다."

API Gateway는,,

  • 실제 백엔드 서비스 또는 데이터와 접속하고 API 호출에 대한 정책, 인증 및 일반 액세스 제어를 적용하여 중요한 데이터를 보호하는 트래픽 관리자
  • 백엔드 시스템 및 서비스에 대한 액세스를 제어하는 방법이며 외부 클라이언트와 백엔드 서비스 간의 통신을 최적화하여 클라이언트에게 원활한 경험을 제공하도록 설계
  • 요청을 적절한 서비스로 라우팅하고 요청자에게 응답을 다시 보내는 기능을 담당
  • 데이터와 API 간의 보안 연결을 유지하고 회사 내부 및 외부에서 로드 밸런싱을 포함한 API 트래픽 및 요청을 관리

API Gateway를 사용하는 이유는,,

  • 여러 백엔드 서비스를 호출하고 결과를 집계할 수 있음

  • 고객은 각 개별 서비스에 대한 요청을 보내야 하는 대신 API 게이트웨이로 보내 거기에서 해당 요청을 관련 서비스로 전달할 수 있음

  • 고객이 각 마이크로서비스에 대한 액세스를 개별적으로 요청하는 대신 게이트웨이는 요청에 대한 단일 진입 점으로, 해당 요청을 적절한 서비스에 지불하고 결과를 수집하여 요청자에게 다시 전달합니다. => API 게이트웨이를 사용하는 주된 이유인 이 기능 (=개발자의 라우팅)

  • 기존 인프라의 리버스 프록시(로드밸런싱에 사용)와 비슷한 역할의 기술

    what is 리버스 프록시?

    • 유명한 웹 사이트는 하루에도 수백만명이 방문
    • 그리고 그러한 대량의 트래픽을 하나의 싱글 서버로 감당해 내기란 어려움
    • 하지만 리버스 프록시 서버를 여러개의 서버 앞에 두면 특정 서버가 과부화 되지 않게 로드밸런싱이 가능
    • 또한, 리버스 프록시 서버에는 성능 향상을 위해 캐시 데이터를 저장할 수 있음
    • 만약 어떤 한국에 있는 유저가 미국에 웹서버를 두고 있는 사이트에 접속할때, 리버스 프록시 서버가 한국에 있다고 가정 => 그러면 한국에 있는 유저는 한국에 있는 리버스 프록시 서버와 통신 => 따라서 리버스 프록시 서버에 캐싱되어 있는 데이터를 사용할 경우에는 더 빠른 성능을 보여줄수 있음
  • 예를 들어, API 게이트웨이는 회사가 Uber와 같은 모바일 애플리케이션 및 Google 맵과 같은 백엔드 애플리케이션의 호출로 생성된 트래픽을 관리하는 데 도움이 됩니다.

  • Endpoint를 단일화하고 관리를 맡김으로써 사용자는 핵심 비즈니스 구현에 집중할 수 있도록 도와주는 역할을 하고, 다른 컴퓨팅 서비스들과 유연하게 연동할 수 있음

API Gateway 기능

  • 인증 : 고객이 여러 서비스의 데이터에 액세스해야 하는 경우에도 게이트웨이에서 한 번만 인증하면 됨
  • 메트릭 수집 : 모든 요청이 API 게이트웨이를 통과하기 때문에 이것은 데이터 분석을 수집하기에 이상적인 장소
  • 입력 유효성 검사 : 입력 유효성 검사는 모든 고객 요청에 요청을 완료하는 데 필요한 필수 정보가 포함되어 있고 올바른 형식으로 제공되는지 확인
  • 응답 전환 : 예를 들어 백엔드 서비스가 XML로 응답을 포기했지만 요청자가 JSON으로 응답을 필요로 하는 경우 게이트웨이가 이를 자동으로 처리

프로비저닝 : 사용자의 요구에 맞게 시스템 자원을 할당, 배치, 배포해 두었다가 필요 시 시스템을 즉시 사용할 수 있는 상태로 미리 준비해 두는 것을 말함




<참고링크>

profile
열심히 굽고 있어요🍞

0개의 댓글