Amazon API Gateway FAQ

일반

Amazon API Gateway는 어떤 규모에서든 개발자가 API를 손쉽게 게시, 유지 관리, 모니터링 및 보호할 수 있도록 지원하는 완전관리형 서비스입니다. AWS Management Console에서 몇 번의 클릭으로 애플리케이션이 백엔드 서비스(Amazon Elastic Compute Cloud(Amazon EC2), Amazon Elastic Container Service(Amazon ECS) 또는 AWS Elastic Beanstalk에서 실행되는 애플리케이션, AWS Lambda에서 실행되는 코드, 기타 웹 애플리케이션 등)의 데이터, 비즈니스 로직 또는 기능에 액세스할 수 있도록 "현관문" 역할을 하는 API를 생성할 수 있습니다. Amazon API Gateway는 트래픽 관리, 권한 부여 및 액세스 제어, 모니터링, API 버전 관리를 비롯해 최대 수십만 건의 동시 API 호출을 수락 및 처리하는 데 관련된 모든 작업을 처리합니다. Amazon API Gateway에는 최소 요금이나 시작 비용이 없습니다. HTTP API와 REST API의 경우 수신한 API 호출과 전송한 데이터 양에 대해서만 요금을 지불하면 됩니다. WebSocket API의 경우 전송하고 수신한 메시지와 사용자/디바이스가 WebSocket API에 연결한 시간에 대해서만 요금을 지불하면 됩니다.

Amazon API Gateway는 개발자에게 강력한 애플리케이션 백엔드용 API를 생성하고 운영하는 것과 관련된 모든 측면을 처리하는 간단하고 유연하며 사용한 만큼 지불하는 완전관리형 서비스를 제공합니다. API Gateway를 사용하면 새로운 서비스를 더 적은 투자로 더 빠르게 시작할 수 있으므로 핵심 비즈니스 서비스 구축에 집중할 수 있습니다. API Gateway는 API 생성 및 관리와 관련된 여러 측면을 지원하기 위해 개발되었습니다.

1) 측정. API Gateway는 타사 개발자가 API에 액세스하는 것을 측정 및 제한하는 계획을 정의하는 데 도움이 됩니다. API 키별로 일련의 플랜을 정의하고, 제한과 할당량 한도를 구성할 수 있습니다. API Gateway에서 API에 대한 트래픽을 자동으로 측정하므로 각 API 키에 대한 사용률 데이터를 추출할 수 있습니다.

2) 보안. API Gateway는 API에 대한 액세스 권한을 부여하고 서비스 작업을 위한 액세스를 제어할 수 있는 다양한 도구를 제공합니다. API Gateway를 사용하면 AWS Identity and Access Management(IAM)와 Amazon Cognito 같은 AWS 관리 및 보안 도구를 사용하여 API에 대한 액세스 권한을 부여할 수 있습니다. API Gateway는 AWS에서 자체 API를 확인할 때 사용한 것과 동일한 방법론을 사용하여 서명된 API 호출을 확인합니다. API Gateway에서는 AWS Lambda 함수로 작성된 사용자 정의 권한 부여자를 사용하여, 수신되는 전달자 토큰을 확인하도록 지원함으로써, 백엔드 코드의 인증 문제를 해결합니다.

3) 복원력. API Gateway는 조절을 통해 트래픽을 관리하므로 트래픽 스파이크가 발생해도 백엔드 작업에서 이를 처리할 수 있습니다. 또한, API Gateway는 매번 백엔드를 호출하지 않도록 API 호출 결과를 캐싱함으로써 최종 사용자가 경험하는 API 성능 및 지연 시간을 개선할 수 있습니다.

4) 작업 모니터링. API가 게시되어 사용되고 나면 API Gateway에서 서비스에 대한 호출을 모니터링할 수 있는 지표 대시보드를 제공합니다. API Gateway 대시보드는 Amazon CloudWatch와 통합을 통해 API 호출, 지연 시간 데이터, 오류 발생률 등 백엔드 성능 지표를 제공합니다. API의 각 메서드에 대한 상세 지표를 활성화하고 CloudWatch Logs에 있는 오류, 액세스 또는 디버그 로그를 수신할 수도 있습니다.

5) 수명 주기 관리. API를 게시한 후에는 이전 버전을 개선하거나 새로운 기능을 추가한 새로운 버전을 구축 및 테스트해야 하는 경우가 많습니다. API Gateway를 사용하면 여러 API 버전 및 버전마다 여러 단계를 동시에 운영할 수 있어 새로운 API 버전이 게시된 후에도 기존 애플리케이션에서 이전 버전을 계속 호출할 수 있습니다.

6) 개발자를 위한 설계. API Gateway를 사용하면 API를 신속하게 생성하고 API 응답에 대한 정적 콘텐츠를 할당하여 팀 간 개발 노력을 줄이고 애플리케이션 출시 시간을 단축할 수 있습니다. 귀하의 API를 사용하는 팀은 귀하가 백엔드 프로세스를 구축하는 동안 개발을 시작할 수 있습니다.

7) 실시간 양방향 통신. 서버를 실행하거나 관리할 필요 없이 채팅 앱, 스트리밍 대시보드 및 알림 같은 실시간의 양방향 통신 애플리케이션을 구축할 수 있습니다. API Gateway를 사용하면 연결된 사용자 간에 영구 연결이 유지되며 이러한 사용자 간에 메시지를 전송할 수 있습니다.

Amazon API Gateway는 RESTful API, HTTP API, REST API 생성 옵션 두 가지와 WebSocket API 생성 옵션 한 가지를 제공하고 있습니다.

HTTP API: AWS Lambda 함수 또는 HTTP 백엔드로 프록시를 통해 전송하는 API를 구축하는 데 최적화되어 서버리스 워크로드에 적합합니다. API 관리 기능은 현재 제공되지 않습니다.

REST API: REST API는 단일 솔루션에서 API 프록시 기능과 API 관리 기능을 제공합니다. REST API는 사용 플랜, API 키, 게시, API 수익 창출 같은 API 관리 기능을 제공합니다.

WebSocket API: WebSocket API는 연결된 클라이언트 간에 영구 연결을 유지하여 실시간 메시지 통신을 가능하게 합니다. API Gateway에서 WebSocket API를 사용하면 연결된 클라이언트의 메시지가 수신될 때 호출할 AWS Lambda 함수, Amazon Kinesis 또는 모든 HTTP 엔드포인트와의 백엔드 통합을 정의할 수 있습니다.

HTTP API를 시작하려면 Amazon API Gateway 콘솔, AWS CLI, AWS SDK 또는 AWS CloudFormation을 사용할 수 있습니다. HTTP API 시작 방법을 자세히 알아보려면 설명서로 이동하십시오.

REST API를 시작하려면 Amazon API Gateway 콘솔, AWS CLI 또는 AWS SDK를 사용할 수 있습니다. REST API 시작 방법을 자세히 알아보려면 설명서로 이동하십시오.

RESTful API는 Amazon API Gateway에서 HTTP API와 REST API 모두로 구축할 수 있습니다.

HTTP API는 AWS Lambda 함수 또는 HTTP 백엔드로 프록싱하는 API를 구축하는 데 최적화되어 서버리스 워크로드에 적합합니다. HTTP API는 비교적 저렴하고 빨라 REST API를 대체할 수 있지만 현재 API 관리 기능을 지원하지는 않습니다. REST API는 단일 솔루션에서 API 프록시 기능과 API 관리 기능을 요구하는 API를 염두에 두고 마련되었습니다.

HTTP API는 다음에 적합합니다.

  1. AWS Lambda 또는 모든 HTTP 엔드포인트를 위한 프록시 API 구축
  2. OIDC 및 OAuth 2 권한 부여 기능이 탑재된 최신 API 구축 
  3. 대규모 확장 가능성이 있는 워크로드
  4. 지연 시간에 민감한 워크로드의 API
 
REST API는 다음에 적합합니다.
 
  1. 고객이 단일한 가격으로 자사의 API 구축, 관리 및 게시에 필요한 포괄적 기능을 구매하려는 경우 

HTTP API는 인증과 권한 부여에 대해 CORS 지원, OIDC 및 OAuth2 지원과 단계별 자동 배포가 표준 사양으로 제공됩니다.

예. API 정의는 OpenAPI 3으로 가져올 수 있습니다. 그러면 라우트, 통합 및 API 모델이 생성됩니다. OpenAPI 정의 가져오기에 대한 자세한 내용은 설명서를 참조하십시오.

Amazon API Gateway에서 현재 REST API로부터 HTTP API로 마이그레이션하려면 다음을 수행합니다.

  1. 필요한 모든 기능을 HTTP에서 사용할 수 있는지 확인합니다. 기능 전체 목록을 보려면 설명서로 이동하십시오. 
  2. REST API로 가서 OpenAPI 정의를 REST API에서 가져옵니다.
  3. HTTP API로 가서 OpenAPI 정의를 이전 단계에서 가져옵니다.
  4. 예상된 API 함수 테스트를 실시합니다.
  5. 새 URL로 클라이언트를 업데이트합니다.

API가 기능할 수도 있겠지만 몇몇 놓친 기능이 있을 수도 있습니다. 그와 같은 기능은 가져오기 작업에서 정보, 경고, 오류 필드를 검토하여 확인할 수 있습니다. REST API에서 HTTP API로의 마이그레이션에 대한 자세한 내용은 설명서를 참조하십시오.

먼저 REST로 가서 OpenAPI 정의를 REST API에서 가져옵니다. 그런 다음 HTTP API로 가서 OpenAPI 정의를 이전 단계에서 가져옵니다. API가 기능할 수도 있겠지만 몇몇 놓친 기능이 있을 수도 있습니다. 그와 같은 기능은 가져오기 작업에서 정보, 경고, 오류 필드를 검토하여 확인할 수 있습니다. AWS CLI에서 정보 및 경고 필드 안에 API 관련 정보를 반환합니다. 자세한 내용은 설명서를 참조하십시오.

시작하려면 AWS Management Console, AWS CLI 또는 AWS SDK를 사용하여 WebSocket API를 생성하면 됩니다. 그런 다음 WebSocket 라우팅을 설정하여 메시지 콘텐츠에 따라 호출할 AWS Lambda, Amazon Kinesis 또는 HTTP 엔드포인트 같은 백엔드 서비스를 지정합니다. API Gateway에서 WebSocket API를 시작하려면 설명서를 참조하십시오.

예. Amazon API Gateway를 통해 생성된 모든 API는 HTTPS 엔드포인트만 제공합니다. Amazon API Gateway는 암호화되지 않은(HTTP) 엔드포인트를 지원하지 않습니다. 기본적으로 Amazon API Gateway는 Amazon API Gateway 인증서를 자동으로 사용하는 API에 내부 도메인을 할당합니다. API가 커스텀 도메인 이름에서 실행되도록 구성할 때, 도메인에 대한 자체 인증서를 제공할 수 있습니다.

Amazon API Gateway상에 구축된 API는 HTTPS를 통해 HTTP API, REST API, WebSocket API에 대해 전송되는 모든 페이로드를 허용합니다. 일반적인 데이터 유형에는 JSON, XML, 쿼리 문자열 파라미터 및 요청 헤더가 있습니다. API 응답에 대해 어떤 콘텐츠 유형이든 선언할 수 있으며 변환 템플릿을 사용하여 백엔드 응답을 원하는 형식으로 변경하면 됩니다.

Amazon API Gateway는 계정에서 AWS Lambda 기능을 실행할 수 있고 AWS Step Functions 상태 기계를 시작하거나 AWS Elastic Beanstalk에 호스팅된 HTTP 엔드포인트, Amazon EC2 및 공용 인터넷을 통해 사용할 수 있는 작업 기반 비 AWS 호스팅된 HTTP를 호출합니다. API Gateway는 매핑 템플릿을 지정할 수 있도록 허용하여 정적 컨텐츠를 반환하고 백엔드가 준비되기 전에 API를 모의할 수 있도록 도와줍니다. API Gateway를 다른 AWS 서비스와 직접 통합할 수 있습니다. 예를 들어 Amazon Kinesis로 데이터를 직접 전송하는 API 메서드를 API Gateway에서 호출할 수 있습니다.

API Gateway에서는 Android와 iOS(Swift 및 Objective-C)를 사용하는 모바일 앱 개발용 사용자 지정 SDK와 JavaScript를 사용하는 웹 앱 개발용 사용자 지정 SDK를 생성합니다. API Gateway는 Ruby 및 Java용 SDK 생성도 지원합니다. API Gateway에서 API 및 API 모델을 정의하면, AWS 콘솔 또는 API Gateway API를 사용하여 클라이언트 SDK를 생성하고 다운로드할 수 있습니다. 클라이언트 SDK는 Amazon API Gateway의 REST API에 대해서만 생성됩니다.

어디에서 HTTP API, REST API, WebSocket API를 사용할 수 있는지는 여기의 AWS 리전 표에서 확인할 수 있습니다.

Amazon API Gateway 콘솔을 통해 REST API 및 이와 관련된 리소스와 메서드를 정의하고, API 수명 주기를 관리하고, 클라이언트 SDK를 생성하고, API 지표를 볼 수 있습니다. API Gateway 콘솔을 사용하여 API 사용 플랜을 정의하고, 개발자의 API 키를 관리하며, 제한과 할당량 한도를 구성할 수 있습니다. 콘솔에서 할 수 있는 모든 작업은 API Gateway API를 통해서도 할 수 있습니다.

리소스는 API 도메인의 일부인 형식화된 객체입니다. 각 리소스에는 연결된 데이터 모델이나 다른 리소스와의 관계가 있을 수 있으며 다른 메서드에 응답할 수 있습니다. 또한, 리소스를 변수로 정의하여 여러 하위 리소스에 대한 요청을 가로챌 수 있습니다.

REST API 내 각 리소스는 하나 이상의 표준 HTTP 메서드를 지원할 수 있습니다. 각 리소스에 대해 지원해야 하는 동사(GET, POST, PUT, PATCH, DELETE, HEAD, OPTIONS) 및 이의 구현을 정의합니다. 예를 들어, cars 리소스에 대한 GET 동사는 cars 목록을 반환해야 합니다. 또한, 리소스 내 모든 메서드를 단일 백엔드 엔드포인트에 연결하기 위해 API Gateway는 특수 "ANY" 메서드를 지원합니다.

사용 플랜을 통해 특정 API에 대해서만 타사 개발자의 액세스를 제한하는 플랜을 선언하고, 제한을 정의하고, 할당량 한도를 요청하며, 이를 API 키에 연결할 수 있습니다. 또한, API 키별로 사용률 데이터를 추출하여 API 사용을 분석하고 청구서를 생성할 수 있습니다. 예를 들어 기본 플랜, 전문가 플랜 및 엔터프라이즈 플랜을 생성할 수 있습니다. 기본 사용 플랜에서 하루에 요청 1,000건과 초당 요청(RPS)을 최대 5개만 허용하도록 구성할 수 있습니다.

Amazon API Gateway의 경우, 각 REST API는 여러 스테이지로 이루어질 수 있습니다. 스테이지는 API의 개발 수명 주기를 지원하기 위한 것입니다. 예를 들어, API를 구축한 다음 개발 스테이지에 API를 배포하거나 또는 프로덕션 준비가 완료되면 프로덕션 스테이지에 API를 배포할 수 있습니다.

Amazon API Gateway에서 스테이지란 태그와 유사하며 어떤 배포에 액세스할 수 있는지 경로를 정의합니다. 예를 들어, 개발 스테이지를 정의하고 cars API를 해당 스테이지에 배포할 수 있습니다. 리소스는 https://www.myapi.com/dev/cars에서 액세스할 수 있습니다. 또한, 커스텀 도메인 이름이 스테이지를 직접 가리키도록 설정할 수 있으므로 추가적인 경로 파라미터를 사용할 필요가 없습니다. 예를 들어, myapi.com이 직접 개발 스테이지를 가리키도록 한 경우 https://www.myapi.com/cars에서 cars 리소스에 액세스할 수 있습니다. 스테이지는 API 구성 또는 매핑 템플릿에서 액세스할 수 있는 변수를 이용해 구성할 수 있습니다.

스테이지 변수를 이용해 스테이지와 관련한 구성 값의 키/값 페어를 정의할 수 있습니다. 이 값은 환경 변수와 마찬가지로 사용자의 API 구성에 사용할 수 있습니다. 예를 들어 방법 통합에 대한 HTTP 엔드포인트를 스테이지 변수로 정의할 수 있으며, 엔드포인트를 하드코딩하는 대신 변수를 API 구성에 사용할 수 있습니다. 이를 통해 동일한 API 구성으로 각 스테이지(예를 들면 개발, 베타, 생산)에 다른 엔드포인트를 사용할 수 있습니다. 스테이지 변수는 매핑 템플릿에서도 액세스할 수 있으며 구성 매개변수를 Lambda 또는 HTTP 백엔드로 전달하기 위해 사용할 수 있습니다.

리소스 정책은 지정된 보안 주체(보통 IAM 사용자 또는 역할)가 API를 호출할 수 있는지를 제어하기 위해 API에 연결하는 JSON 정책 문서입니다. 리소스 정책을 사용하여 다른 AWS 계정의 사용자가 API에 안전하게 액세스하도록 지원하거나 지정된 소스 IP 주소 범위나 CIDR 블록에서만 API가 호출되도록 허용할 수 있습니다. 리소스 정책은 Amazon API Gateway에서 REST API와 함께 사용할 수 있습니다.

Amazon API Gateway는 배포 이력을 저장합니다. 언제든 Amazon API Gateway API 또는 콘솔을 사용하여 스테이지를 이전 배포로 롤백할 수 있습니다.

예. Amazon의 오픈 소스 Swagger 가져오기 도구를 사용하여 Amazon API Gateway로 Swagger API 정의를 가져올 수 있습니다. Swagger 가져오기 도구를 통해 새로운 API를 생성 및 배포할 수 있을 뿐만 아니라 기존 API를 업데이트할 수도 있습니다.

AWS Marketplace에 제품으로 게시하면 API Gateway의 API로 수익을 창출할 수 있습니다. 먼저 AWS Marketplace에 판매자로 등록하고 제품으로서의 API Gateway에 대한 사용 계획을 제출해야 합니다. API 수익 창출에 대해 자세히 알아보려면 여기를 참조하십시오.

API Gateway는 메서드 및 리소스와 같은 API의 각 부분과 관련된 설명서를 생성, 업데이트 및 삭제할 수 있는 기능을 제공합니다. AWS SDK, CLI 또는 RESTful 호출을 사용하거나 API Gateway 콘솔에서 직접 설명서 문자열을 수정하여 설명서 관련 API에 액세스할 수 있습니다. 설명서는 API 일부로 또는 별도로 Swagger 파일 형태로 가져올 수 있으므로 API 정의를 그대로 둔 채 설명서를 추가하거나 업데이트할 수 있습니다. Swagger 파일에서 가져오거나 Swagger 파일로 내보낸 API Gateway 설명서는 Open API 사양을 따릅니다. 설명서는 API Gateway의 REST API에 대해 지원됩니다.

API Gateway는 표준 규격 API 설명서를 지원하는 것 외에 설명서 상속도 지원하므로 손쉽게 설명서 문자열을 한 번 정의한 후 이를 여러 곳에서 사용할 수 있습니다. 상속은 API 설명서를 정의하는 프로세스를 간소화하며, API를 Swagger 파일로 내보낼 때 표준 표현으로 변환될 수 있습니다.

예. API에 리소스 정책을 적용하여 액세스를 특정 Amazon VPC 또는 VPC 엔드포인트로 제한할 수 있습니다. 또한, 리소스 정책을 사용하여 다른 계정의 Amazon VPC 또는 VPC 엔드포인트에 프라이빗 API에 대한 액세스 권한을 부여할 수 있습니다.

보안 및 권한 부여

Amazon API Gateway에서는 API 메서드가 인증을 요청하도록 설정할 수 있습니다. 인증을 요청하도록 메서드를 설정할 때, AWS Signature Version 4를 활용하거나 Lambda 권한 부여자를 사용하여 자체 전달자 토큰 인증 전략을 지원할 수 있습니다.

다른 AWS 서비스처럼 AWS 자격 증명(액세스 키와 비밀 키)을 사용하여 서비스에 대한 요청에 서명하고 액세스 권한을 부여할 수 있습니다. Amazon API Gateway API 요청 서명은 서비스를 위해 생성된 사용자 정의 API Gateway SDK에서 관리합니다. Amazon Cognito를 사용하여 AWS 계정의 역할과 관련된 임시 자격 증명을 가져올 수 있습니다.

Lambda 권한 부여자는 AWS Lambda 함수입니다. 사용자 정의 요청 권한 부여자에서는 OAuth와 같은 전달자 토큰 인증 전략을 사용하여 API에 대한 액세스 권한을 부여할 수 있습니다. API가 호출되면, API Gateway에서 Lambda 권한 부여자가 구성되어 있는지 확인한 다음, 수신되는 인증 토큰을 통해 Lambda 함수를 호출합니다. 요청을 인증하는 데 사용되는 IAM 정책을 반환하는 다양한 인증 전략(예: JWT 확인, OAuth 공급자 설명선)을 Lambda를 사용하여 구현할 수 있습니다. 권한 부여자가 반환한 정책이 유효한 경우, API Gateway는 최대 1시간 동안 수신 토큰과 연결된 정책을 캐시합니다.

예. API Gateway에서는 API 키를 생성하고 이를 사용 플랜에 연결할 수 있습니다. 각 API 키로부터 수신된 호출은 각 스테이지에 대해 활성화할 수 있는 Amazon CloudWatch Logs에서 모니터링되고 기록됩니다. 그러나 API 키를 권한 부여에 사용하는 것은 권장하지 않습니다. API 키는 타사 개발자의 사용을 모니터링하는 데 사용하고, 권한 부여를 위해서는 서명된 API 호출 또는 OAuth 같은 좀 더 강력한 메커니즘을 활용해야 합니다.

API Gateway는 API의 각 메서드 또는 경로에 대한 제한 설정을 지원합니다. REST API의 각 메서드와 WebSocket API의 각 경로에 대해 초당 표준 속도 제한 및 초당 버스트 속도 제한을 설정할 수 있습니다. 또한, API Gateway는 위조 요청(계층 7) 공격이든 SYN Floods(계층 3) 공격이든 DDoS(분산 서비스 거부) 공격으로부터 백엔드 시스템을 자동으로 보호합니다.

예. Amazon API Gateway는 고객측 SSL 인증서를 생성하고 사용 가능한 SSL 인증서의 퍼블릭 키를 만들 수 있습니다. 생성된 인증서로 백엔드로 호출할 수 있고 인증서의 퍼블릭 키를 사용하여 Amazon API Gateway가 생성한 호출을 확인할 수 있습니다.

예. Amazon API Gateway는 AWS CloudTrail과 통합되어 REST API에 대한 변경 이력을 모두 감사할 수 있습니다. REST API를 생성, 변경, 삭제 또는 배포하기 위해 Amazon API Gateway API에 요청된 모든 API 호출은 AWS 계정의 CloudTrail에 기록됩니다.

Amazon API Gateway에서는 VPC 링크를 사용하여 프라이빗 통합을 설정함으로써 Amazon VPC에서 실행되는 백엔드 HTTP/HTTPS 리소스에 대한 요청을 프록시할 수 있습니다. Amazon API Gateway의 클라이언트 측 SSL 인증서는 백엔드 시스템에 대한 요청이 인증서의 퍼블릭 키를 사용하여 API Gateway에 의해 전송되었음을 확인하는 데 사용될 수 있습니다. 또한, Amazon API Gateway에서 프라이빗 API를 생성할 수 있습니다. 이 API는 Amazon VPC 엔드포인트를 통해 Amazon VPC 내 리소스에서만 액세스할 수 있습니다.

예. API에 리소스 정책을 적용하여 액세스를 특정 Amazon VPC 또는 VPC 엔드포인트로 제한할 수 있습니다. 또한, 리소스 정책을 사용하여 다른 계정의 Amazon VPC 또는 VPC 엔드포인트에 프라이빗 API에 대한 액세스 권한을 부여할 수 있습니다.

REST API를 사용한다면 계정에서 사용자 지정 SSL 인증서를 사용하여 CloudFront 배포를 설정하고 API Gateway에서 리전 API를 통해 사용할 수 있습니다. 그런 다음 보안 및 규정 준수 사항에 따라 TLS 1.1 이상을 사용하는 CloudFront 배포에 대한 보안 정책을 구성할 수 있습니다.

관리, 지표 및 로깅

Amazon API Gateway는 AWS 계정의 Amazon CloudWatch에 API 호출, 지연 시간 및 오류 발생률을 기록합니다. 또한, Amazon API Gateway 콘솔을 통해 REST API 대시보드에서 지표를 확인할 수 있습니다. API Gateway에서는 타사 개발자의 사용률을 측정하며, API Gateway 콘솔 및 API를 통해 해당 데이터를 확인할 수 있습니다.

예. Amazon API Gateway는 로깅 정보 및 지표를 Amazon CloudWatch에 전송합니다. Amazon CloudWatch 콘솔을 사용하여 사용자 지정 경보를 설정할 수 있습니다.

기본적으로 Amazon API Gateway는 REST API 수준에서 트래픽을 모니터링합니다. 선택적으로 배포 구성 API 또는 콘솔 화면에서 REST API의 각 메서드에 대한 상세 지표를 활성화할 수도 있습니다. 상세 지표도 Amazon CloudWatch에 기록되며 CloudWatch 요금에 따라 비용이 청구됩니다.

예. 지표 세부 정보는 REST API 및 스테이지에 의해 지정됩니다. 또한, REST API의 각 메서드에 대한 지표를 활성화할 수 있습니다.

예. Amazon API Gateway는 Amazon CloudWatch Logs와 통합되며. API의 각 스테이지에 대한 로깅을 선택적으로 활성화할 수 있습니다. 전체 요청 및 응답 데이터를 기록해야 하는 경우, REST API의 각 메서드에 대해 로깅 세부 사항을 설정할 수 있습니다.

로그, 경보, 오류 발생률 및 기타 지표는 Amazon CloudWatch에 저장되며 거의 실시간으로 확인할 수 있습니다.

조절 및 캐싱

Amazon API Gateway에서는 글로벌 또는 서비스 호출별을 비롯해 여러 수준에서 제한을 설정할 수 있으며, 표준 속도 및 버스트 속도에 대해 제한을 설정할 수 있습니다. 예를 들어, API 소유자가 REST API의 특정 메서드에 대해 초당 요청 1,000건으로 속도 제한을 설정하고 Amazon API Gateway에서 몇 초 동안 초당 요청 2,000건의 버스트를 처리하도록 구성할 수도 있습니다. Amazon API Gateway는 초당 요청 수를 추적합니다. 설정된 제한을 초과하는 요청은 429 HTTP 응답을 수신하게 됩니다. 이러한 응답이 수신되면 Amazon API Gateway에서 생성한 클라이언트 SDK(Javascript 제외)가 자동으로 호출을 재시도합니다.

예. 사용 플랜을 통해 개별 API 키에 대한 제한을 설정할 수 있습니다.

제한은 백엔드 서비스가 성능 및 가용성을 유지할 수 있도록 API 트래픽을 제어하게 해줍니다.

제한 속도는 메서드 수준에서 설정할 수 있습니다. Amazon API Gateway API 또는 Amazon API Gateway 콘솔을 통해 메서드 설정에 있는 제한을 편집할 수 있습니다.

API Gateway 조절 관련 설정은 다음 순서로 적용됩니다. 1) 사용 플랜에서 API 단계에 설정한 각 클라이언트의 메서드별 조절 한도 2) 사용 플랜에서 설정한 클라이언트별 조절 한도 3) API 단계 설정에서 설정한 기본 메서드별 한도 및 개별 메서드별 한도, 4) 리전별 계정 수준 조절

예. API Gateway 캐시를 프로비저닝하고 기가바이트 단위로 크기를 지정함으로써 API 호출에 캐싱을 추가할 수 있습니다. 캐시는 API의 특정 스테이지에 대해 프로비저닝됩니다. 이를 통해 성능을 개선하고 백엔드로 전송되는 트래픽을 줄일 수 있습니다. 캐시 설정을 사용하면 캐시 키가 구축되는 방법과 각 메서드에 저장되는 데이터의 TTL(time-to-live)을 제어할 수 있습니다. 또한, API Gateway가 표시하는 관리 API를 사용하여 각 스테이지의 캐시를 손쉽게 무효화할 수 있습니다. 캐싱은 API Gateway의 REST API에 대해 사용할 수 있습니다.

캐싱이 활성화되지 않고 제한이 설정되지 않았다면 계정 수준의 제한에 도달할 때까지 모든 요청이 백엔드 서비스로 전달됩니다. 제한이 설정되어 있다면, Amazon API Gateway가 필요한 요청 수를 줄이고 정의된 제한 내에 있는 요청만 백엔드 서비스로 전달합니다. 캐시가 구성되어 있는 경우에는 Amazon API Gateway가 사용자 지정 가능한 시간 동안 중복된 요청에 대해 캐시된 응답을 반환하겠지만, 구성된 조절 제한에 따르는 경우만 그러합니다. 백엔드와 클라이언트 간의 이러한 균형을 통해 지원하는 애플리케이션에 대한 API 성능을 최적으로 유지할 수 있습니다. 제한된 요청은 Amazon API Gateway에서 생성한 클라이언트 측 SDK에 의해 자동으로 재시도됩니다. 기본적으로 Amazon API Gateway는 API 메서드에 캐시를 설정하지 않습니다.

Amazon API Gateway는 고객이 구성한 백엔드 작업에 대한 프록시 역할을 합니다. Amazon API Gateway는 API가 수신한 트래픽 양을 처리하기 위해 자동으로 확장됩니다. Amazon API Gateway는 백엔드 작업에 대한 호출을 임의로 제한하지 않으며 Amazon API Gateway 콘솔에서 설정한 제한 및 캐싱 설정에 의해 차단되지 않은 모든 요청은 백엔드 작업으로 전송됩니다.

결제

Amazon API Gateway는 1백만 API 호출당 요금에 기가바이트 단위의 데이터 전송 비용이 추가된 요금이 청구됩니다. API에 대한 캐시를 프로비저닝하는 경우, 시간당 요금이 적용됩니다. WebSocket API의 경우 API Gateway 요금은 전송되고 수신된 메시지와 클라이언트가 API에 연결된 시간(분)에 따라 청구됩니다. 리전별 API 직접 호출, 데이터 전송 및 캐싱 비용에 대한 자세한 내용은 API Gateway 요금 페이지를 참조하세요.

API Gateway의 API에 대한 호출 비용은 API 소유자에게 청구됩니다.

예. 응답을 백엔드 작업에서 처리하든 Amazon API Gateway 캐싱 작업에서 처리하든 상관없이 API 호출은 동일하게 비용 청구 대상이 됩니다.

WebSocket API

Amazon API Gateway에서 WebSocket 라우팅은 메시지를 특정 통합에 올바르게 라우팅하는 데 사용됩니다. WebSocket API를 정의할 때 호출할 통합 백엔드와 라우팅 키를 지정합니다. 라우팅 키는 메시지 본문의 속성입니다. 일치하지 않는 라우팅에 대해서도 기본 통합이 설정될 수 있습니다. 라우팅에 대한 자세한 내용은 설명서를 참조하십시오.

WebSocket API에 새로운 클라이언트가 연결되면, 해당 클라이언트에 대해 콜백 URL이라고 하는 고유한 URL이 생성됩니다. 이 콜백 URL을 사용하여 백엔드 서비스에서 클라이언트로 메시지를 보낼 수 있습니다.

Amazon API Gateway에서는, IAM 역할 및 정책 또는 AWS Lambda Authorizers를 사용하여 WebSocket API에 대한 액세스 권한을 부여할 수 있습니다.

클라이언트가 연결되거나 연결 해제되면, $connect 및 $disconnect 라우팅을 사용하여 Amazon API Gateway 서비스에서 백엔드 AWS Lambda 함수 또는 HTTP 엔드포인트로 메시지가 전송됩니다. 연결된 사용자 목록에 대해 클라이언트 추가 또는 제거 등과 같은 적절한 조치를 수행할 수 있습니다.

연결에 대한 콜백 URL GET 메서드를 사용하여 클라이언트가 WebSocket에 연결되어 있는지 확인할 수 있습니다. 콜백 URL 사용 방법은 설명서를 참조하십시오.

예. 콜백 URL을 사용하여 백엔드 서비스에서 연결된 클라이언트의 연결을 해제할 수 있습니다.

지원되는 최대 메시지 크기는 128KB입니다. WebSocket API의 기타 제한을 보려면 설명서를 참조하십시오.

연결 시간(분) 및 메시지 수의 2가지 지표를 기준으로 요금이 청구됩니다.

연결 시간(분): 클라이언트 또는 디바이스가 WebSocket 연결에 연결된 총 시간(분 단위, 분으로 반올림).

메시지 수: 연결된 클라이언트에 대해 보내고 받은 총 메시지 수. 메시지는 32KB 단위로 요금이 청구됩니다. WebSocket API 요금 정보와 예제는 요금 페이지를 참조하십시오.

아니요. WebSocket 연결에서 메시지가 인증 또는 권한 부여에 실패할 경우에는 API 사용 요금 청구서에 포함되지 않습니다.