Amazon API Gateway
개발자 안내서

API Gateway 사용 사례

API Gateway를 사용하여 REST API 생성

API Gateway REST API는 리소스와 메서드로 구성됩니다. 리소스란 앱이 리소스 경로를 통해 액세스할 수 있는 논리적 엔터티입니다. 메서드는 API 사용자가 제출한 REST API 요청 및 사용자에게 반환되는 응답에 해당합니다.

예를 들어 /incomes는 앱 사용자의 소득을 나타내는 리소스의 경로가 될 수 있습니다. 리소스는 GET, POST, PUT, PATCH, DELETE 등 적절한 HTTP 동사로 정의된 작업을 하나 이상 가질 수 있습니다. 리소스 경로와 작업의 조합으로 API의 메서드를 식별합니다. 예를 들어 POST /incomes 메서드는 호출자가 획득한 소득을 추가하고 GET /expenses 메서드는 호출자로 인해 발생한 것으로 보고된 지출을 쿼리할 수 있습니다.

앱은 요청된 데이터가 어디에 저장되고 백엔드의 어디에서 가져와지는지 인식할 필요가 없습니다. API Gateway REST API에서 프런트엔드는 메서드 요청메서드 응답으로 캡슐화됩니다. API는 ntegration requests(통합 요청)integration responses(통합 응답)을 이용해 백엔드와 통신합니다.

예를 들어 DynamoDB가 백엔드일 때, API 개발자는 수신되는 메서드 요청을 선택한 백엔드로 전달하도록 통합 요청을 설정합니다. 이 설정에는 적절한 DynamoDB 작업, 필요한 IAM 역할 및 정책, 필요한 입력 데이터 변환의 사양이 포함됩니다. 백엔드는 API Gateway에 통합 응답으로서 결과를 반환합니다. 통합 응답을 클라이언트에 대한 (해당 HTTP 상태 코드의) 적절한 메서드 응답으로 라우팅하려면, 통합에서 메서드로 필요한 응답 파라미터를 매핑하도록 통합 응답을 구성하면 됩니다. 그런 다음, 필요에 따라 백엔드의 출력 데이터 형식을 프런트엔드의 형식으로 변환합니다. API Gateway를 사용하면 페이로드의 스키마나 모델을 정의하여 본문 매핑 템플릿을 손쉽게 설정할 수 있습니다.

API Gateway는 다음과 같은 REST API 관리 기능을 제공합니다.

  • OpenAPI에 대한 API Gateway 확장을 사용하여 SDK 생성 및 API 문서 생성 지원

  • HTTP 조절 요청

API 게이트웨이를 사용하여 WebSocket API 생성

WebSocket API에서 클라이언트와 서버는 언제든 서로 메시지를 보낼 수 있습니다. 백엔드 서버는 복잡한 폴링 메커니즘을 구현할 필요 없이 연결된 사용자 및 장치로 데이터를 쉽게 푸시할 수 있습니다.

예를 들어, API Gateway WebSocket API 및 AWS Lambda을 사용하여 서버리스 애플리케이션을 구축하면 채팅룸의 개별 사용자 또는 사용자 그룹과 메시지를 주고 받을 수 있습니다. 또는 메시지 내용에 따라 AWS Lambda, Amazon Kinesis 또는 HTTP 엔드포인트 같은 백엔드 서비스를 호출할 수 있습니다.

API Gateway WebSocket API를 사용하면 연결이나 대용량 데이터 교환을 관리하기 위해 서버를 프로비저닝하거나 관리하지 않고도 안전한 실시간 통신 애플리케이션을 구축할 수 있습니다. 타겟 사용 사례에는 다음과 같은 실시간 애플리케이션이 포함됩니다.

  • 채팅 애플리케이션

  • 주식 시세 표시기와 같은 실시간 대시 보드

  • 실시간 경고 및 알림

API 게이트웨이는 다음과 같은 WebSocket API 관리 기능을 제공합니다.

  • 연결 및 메시지 모니터링 및 제한

  • AWS X-Ray를 사용하여 API를 통해 백엔드 서비스로 이동하는 메시지 추적

  • HTTP/HTTPS 엔드포인트와 쉽게 통합

API Gateway를 누가 사용하는가?

API Gateway를 사용하는 개발자는 API 개발자와 앱 개발자, 두 가지 유형으로 나뉩니다.

API 개발자는 API를 생성하고 배포하여 API Gateway에서 필요한 기능이 구현되도록 합니다. API 개발자는 AWS 계정 내에서 API를 소유한 IAM 사용자여야 합니다.

앱 개발자는 API Gateway에서 API 개발자가 생성한 WebSocket 또는 REST API를 호출하여 AWS 서비스를 호출하기에 효과적인 애플리케이션을 구축합니다.

앱 개발자는 API 개발자의 고객입니다. API에 IAM 권한이 필요하지 않거나 Amazon Cognito 사용자 풀 자격 증명 연동에서 지원하는 타사 연동 자격 증명 공급자를 통해 사용자 권한 부여를 지원하는 경우 앱 개발자는 AWS 계정을 보유할 필요가 없습니다. 이러한 자격 증명 공급자에는 Amazon, Amazon Cognito 사용자 풀, Facebook 및 Google이 포함됩니다.

API Gateway API 생성 및 관리

API 개발자는 apigateway라는 API 관리를 위한 API Gateway 서비스 구성 요소와 함께 작동하여 API를 생성, 구성 및 배포합니다. 각 API마다 리소스와 메서드 집합이 포함되어 있습니다. 리소스란 앱이 리소스 경로를 통해 액세스할 수 있는 논리적 엔터티입니다.

API 개발자는 Amazon API Gateway 시작하기에 설명된 대로 API Gateway 콘솔을 사용하거나 API Gateway V1 및 V2 API 참조을 호출하여 API를 생성하고 관리할 수 있습니다. 이 API를 호출하는 몇 가지 방법이 있습니다. 여기에는 AWS 명령줄 인터페이스(CLI) 또는 AWS SDK를 이용하는 방법도 포함됩니다. AWS CloudFormation 템플릿 또는 OpenAPI로 API Gateway 확장(REST API의 경우)(으)로 API 생성을 지원할 수도 있습니다. 연결된 제어 서비스 엔드포인트를 비롯하여 API Gateway를 이용할 수 있는 리전 목록은 리전 및 엔드포인트를 참조하십시오.

API Gateway API 호출

앱 개발자는 execute-api라는 API 실행을 위한 API Gateway 서비스 구성 요소와 함께 작동하여 API Gateway에서 생성 또는 배포된 API를 호출합니다. 기본 프로그래밍 엔터티는 생성된 API에 의해 제공됩니다. 이러한 API를 호출하는 몇 가지 방법이 있습니다. API Gateway 콘솔을 사용해 API 호출을 테스트할 수 있습니다. REST API의 경우, cURL 또는 POSTMAN 등의 REST API 클라이언트 또는 API Gateway가 해당 API를 위해 생성한 SDK를 이용해 API를 호출할 수 있습니다.