Amazon API Gateway 시작하기

무료 계정 생성

Amazon API Gateway 프리 티어에는 12개월 동안 매달 1백만 건의 API 호출이 포함됩니다.

Q: Amazon API Gateway란 무엇입니까?

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

Q: Amazon API Gateway를 사용해야 하는 이유는 무엇입니까?

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

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

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

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

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

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

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

Q: Amazon API Gateway는 어떻게 시작합니까?

Amazon API Gateway를 사용하여 커스텀 API를 쉽고 빠르게 생성할 수 있습니다. 간단한 "Hello World" 예의 경우, 다음 단계를 따르십시오.

1. Amazon API Gateway 콘솔로 이동합니다.

2.  기존 REST API를 선택하거나 API 이름을 입력하여 새로운 API를 생성합니다.

3.  REST API 트리 보기에서, "Create Resource"를 클릭합니다.

4.  예를 들어 "cars"와 같은 리소스 이름을 선택합니다.

5. 새로운 리소스를 선택한 상태에서 버튼을 클릭하여 새로운 메서드를 생성하고 메서드와 관련된 HTTP 동사(예: GET)를 선택합니다.

6. 통합 유형(예: HTTP 프록시)을 선택하고 Amazon API Gateway에서 호출해야 하는 URL을 입력합니다.

7. 매핑 템플릿을 사용하여 요청 및 응답이 변환되는 방법을 정의하거나 기본 설정을 허용하여 변환 없이 모든 요청 및 응답 데이터를 전달합니다.

8.  메서드의 보안 설정을 구성합니다.

9. 새로운 API를 스테이지에 배포합니다.

10. 스테이지 관리 페이지에서 캐싱 및 제한 구성을 설정합니다.

11. Amazon API Gateway 콘솔의 Client Platforms 탭에서 버튼을 클릭하여 sayHello 작업을 호출하는 헬퍼 메서드가 포함된 Android, iOS SDK 또는 JavaScript 라이브러리를 다운로드합니다. SDK 라이브러리를 사용하여 로컬 메서드를 호출하는 것과 마찬가지로 API를 호출할 수 있습니다. 클라이언트 SDK에서 재시도를 자동으로 처리하고 개발자에게 네트워크 또는 기타 오류 조건을 전달합니다. SDK 라이브러리는 API에 대한 클라이언트 애플리케이션을 인증하는 데 필요한 로직을 포함합니다.

12. 다운로드한 SDK를 모바일 애플리케이션에 통합합니다. 커스텀 API를 호출하는 코드를 작성합니다. 예를 들어, iOS 애플리케이션에서 getCar(int carId) API를 호출합니다.

–(void)getSampleCar

{

NSString *response = [MyServiceClient getCar:1323];

NSLog( @”Response was [%@]”, response );

}

13. 애플리케이션을 실행합니다.

Q: HTTPS 엔드포인트를 생성할 수 있습니까?

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

Q: Amazon API Gateway에서 사용할 수 있는 데이터 유형에는 어떤 것이 있습니까?

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

Q: Amazon API Gateway는 어떤 백엔드와 통신할 수 있습니까?

Amazon API Gateway는 사용자 계정에서 AWS Lambda 함수를 실행하거나, AWS Step Functions 상태 머신을 시작하거나, AWS Elastic Beanstalk와 Amazon EC2에 호스팅된 HTTP 엔드포인트뿐만 아니라 퍼블릭 인터넷을 통해 액세스할 수 있는 AWS 이외의 호스팅 HTTP 기반 작업에 호스팅된 HTTP 엔드포인트를 호출할 수 있습니다. 또한, API Gateway를 사용하면 매핑 템플릿을 지정하여 반환할 정적 콘텐츠를 생성함으로써 백엔드가 준비되기 전에 API를 모의로 구현할 수 있습니다. API Gateway를 다른 AWS 서비스와 직접 통합할 수 있습니다. 예를 들어 Amazon Kinesis로 데이터를 직접 전송하는 API 메서드를 API Gateway에서 호출할 수 있습니다. 

Q: Amazon API Gateway에서는 어떤 클라이언트 플랫폼에 대한 SDK를 생성할 수 있습니까?

API Gateway에서는 Android와 iOS를 사용하는 모바일 앱 개발용 커스텀 SDK와 JavaScript를 사용하는 웹 앱 개발용 커스텀 SDK를 생성합니다. API Gateway에서 API 및 API 모델을 정의하면, AWS 콘솔 또는 API Gateway API를 사용하여 클라이언트 SDK를 생성하고 다운로드할 수 있습니다.

Q: 어떤 AWS 리전에서 Amazon API Gateway를 사용할 수 있습니까?

Amazon API Gateway 서비스의 리전별 가용성에 대한 자세한 정보는 리전별 제품 및 서비스를 참조하십시오.

Q: Amazon API Gateway 콘솔을 통해 무엇을 관리할 수 있습니까?

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

Q: REST API란 무엇입니까?

Amazon API Gateway에서 REST API란 리소스, 메서드 또는 엔드포인트 그룹입니다. REST API는 각기 다른 단계에 배포하고 새로운 버전으로 복제할 수 있습니다.

Q: 리소스란 무엇입니까?

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

Q: 메서드란 무엇입니까?

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

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

Q: Amazon API Gateway API 수명 주기란 무엇입니까?

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

Q: 스테이지란 무엇입니까?

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

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

Q: 실수로 스테이지에 배포하면 어떻게 됩니까?

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

Q: 같은 REST API를 여러 버전으로 실행할 수 있습니까?

예. Amazon API Gateway는 기존 API를 복제할 수 있는 기능을 제공합니다. API의 다음 주요 버전 작업을 시작할 준비가 된 경우 버전 1과 버전 2 API 작업을 동시에 진행할 수 있습니다.

Q: Swagger API 정의를 사용할 수 있습니까?

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

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

Q: Amazon API Gateway의 내 API를 기록하려면 어떻게 해야 합니까?

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

Q: 내 API에서 오류 메시지 및 다른 설명서의 중복 복사본을 생성하는 일이 자주 반복됩니다. 이를 방지하려면 어떻게 해야 합니까?
API Gateway는 표준 규격 API 설명서를 지원하는 것 외에 설명서 상속도 지원하므로 손쉽게 설명서 문자열을 한 번 정의한 후 이를 여러 곳에서 사용할 수 있습니다. 상속은 API 설명서를 정의하는 프로세스를 간소화하며, API를 Swagger 파일로 내보낼 때 표준 표현으로 변환될 수 있습니다.

맨 위로 이동 >>

Q: 내 API에 대한 액세스 권한을 어떻게 부여합니까?

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

Q: AWS Signature Version 4는 어떻게 작동합니까?

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

Q: 사용자 정의 권한 부여자란 무엇입니까?

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

Q: Amazon API Gateway에서 타사 개발자에게 배포하기 위한 API 키를 생성할 수 있습니까?

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

Q: API 위협 또는 침해에 대응하거나 이를 예방하려면 어떻게 해야 합니까?

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

Q: Amazon API Gateway를 Amazon VPC에서 사용할 수 있습니까?

아니요. Amazon API Gateway 엔드포인트는 언제나 퍼블릭 인터넷입니다. 백 엔드 작업에 대한 프록시 요청도 인터넷에 공개적으로 액세스할 수 있어야 합니다. 하지만 Amazon API Gateway에서 클라이언트 측 SSL 인증서를 생성함으로써 인증서의 퍼블릭 키를 사용하여 API Gateway에서 백엔드 시스템으로 보낸 요청을 검증할 수 있습니다.

Q: 백엔드를 호출하는 것이 API Gateway인지 확인할 수 있습니까?
예. Amazon API Gateway는 클라이언트 측 SSL 인증서를 생성하고, 고객은 해당 인증서의 퍼블릭 키를 사용할 수 있습니다. 생성된 인증서를 통해 백엔드를 호출할 수 있고, 인증서의 퍼블릭 키를 사용하여 해당 호출이 Amazon API Gateway에서 요청한 것인지 확인할 수 있습니다.

Q: Amazon API Gateway와 함께 AWS CloudTrail을 사용할 수 있습니까?

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

맨 위로 이동 >>

Q: Amazon API Gateway API를 모니터링하려면 어떻게 해야 합니까?

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

Q: Amazon API Gateway 지표에 대해 경보를 설정할 수 있습니까?

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

Q: Amazon API Gateway에 대한 지표를 설정하려면 어떻게 해야 합니까?

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

Q: 고객이 사용하고 있는 API 버전을 확인할 수 있습니까?

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

Q: Amazon API Gateway에서 로깅 지원을 제공합니까?

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

Q: 로그는 얼마나 빨리 확인할 수 있습니까?

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

맨 위로 이동 >>

Q: 트래픽 스파이크가 발생하는 경우 백엔드 시스템 및 애플리케이션을 보호하려면 어떻게 해야 합니까?

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

Q: 내 API를 호출하는 개발자로 개별적으로 조절할 수 있습니까?
예. 사용 플랜을 통해 개별 API 키에 대한 제한을 설정할 수 있습니다.

Q: 제한은 어떻게 도움이 됩니까?

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

Q: Amazon API Gateway에서는 인바운드 API 트래픽을 어떤 수준에서 제한할 수 있습니까?

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

Q: 제한 규칙은 어떻게 적용됩니까?
먼저 API Gateway는 사용자의 AWS 계정 한도를 확인합니다. 트래픽이 설정된 계정 한도보다 적으면 API Gateway에서 스테이지 또는 메서드에 설정해 놓은 한도를 확인합니다. 트래픽이 스테이지 한도보다 적으면 API Gateway는 API 키별로 설정한 사용 플랜 한도를 적용합니다.

Q: Amazon API Gateway는 API 결과 캐싱을 제공합니까?

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

Q: 많은 수의 최종 사용자가 내 API를 동시에 호출하려고 하면 무슨 일이 발생합니까?

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

Q: API를 확장하려면 어떻게 해야 합니까?

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

맨 위로 이동 >>

Q: Amazon API Gateway 비용은 어떻게 청구됩니까?

Amazon API Gateway 요금은 1백만 API 호출당 3.50 USD이며 기가바이트 단위로 데이터 전송 비용이 추가됩니다. API에 대한 캐시를 프로비저닝하는 경우, 시간당 요금이 적용됩니다. 데이터 전송 및 캐싱 비용에 대한 자세한 내용은 API Gateway 요금 페이지를 참조하십시오.

Q: 타사 개발자가 생성한 Amazon API Gateway API 호출 비용은 누가 지불합니까?

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

Q: 캐시된 데이터에서 API 응답을 반환한 경우에도 API 호출에 대한 비용이 청구됩니까?

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

맨 위로 이동 >>