With Amazon API Gateway, you can quickly and easily create a custom API to your code running in AWS Lambda, and then call the Lambda code from your API. Amazon API Gateway can execute AWS Lambda code in your account, start AWS Step Functions state machines, or make calls to AWS Elastic Beanstalk, Amazon EC2, or web services outside of AWS with publicly accessible HTTP endpoints. Using the Amazon API Gateway console, you can define your REST API and its associated resources and methods, manage your API lifecycle, generate your client SDKs, and view API metrics.
Amazon API Gateway helps you manage traffic to your back-end systems by allowing you to set throttling rules, based on the number of requests per second, for each HTTP method in your APIs. In addition, you can set up a cache with customizable keys and time-to-live in seconds for your API data to avoid hitting your back-end services for each request. Amazon API Gateway handles any level of traffic received by an API, so you are free to focus on your business logic and services rather than maintaining infrastructure.
Amazon API Gateway lets you run multiple versions of the same API simultaneously so that applications can continue to call previous API versions even after the latest versions are published. Amazon API Gateway also helps you manage multiple release stages for each API version, such as alpha, beta, and production. Each API stage can be configured to interact with different backend endpoints based on your API setup. Specific stages and versions of an API can be associated with a custom domain name and managed through Amazon API Gateway. Stage and version management allow you to easily test new API versions that enhance or add new functionality to earlier API releases, and ensures backward-compatibility as your user communities transition to adopt the latest release.
After an API is deployed and in use, Amazon API Gateway provides you with a dashboard to visually monitor calls to the services. The Amazon API Gateway console is integrated with Amazon CloudWatch, so you get back-end performance metrics, such as API calls, latency, and error rates. Because API Gateway uses CloudWatch to record monitoring information, you can set up custom alarms on Amazon API Gateway APIs. Amazon API Gateway can also log API execution errors to CloudWatch Logs to make debugging easier.
To authorize and verify API requests to AWS services, API Gateway can help you leverage signature version 4 -- the same technology used by AWS for its services. Using signature version 4 authentication, you can use Identity and Access Management (IAM) and access policies to authorize access to your APIs and all your other AWS resources. You can also use AWS Lambda functions to verify and authorize bearer tokens such as JWT tokens or SAML assertions.
API Gateway helps you manage the ecosystem of third-party developers accessing your APIs. You can create API keys on Amazon API Gateway, set fine-grained access permissions on each API key, and distribute them to third-party developers to access your APIs. You can also define plans that set throttling and request quota limits for each individual API key. The use of API keys is completely optional and must be enabled on a per-method level.