Amazon API Gateway – это полностью управляемый сервис для разработчиков, который упрощает публикацию, обслуживание, мониторинг, защиту и использование API в любых масштабах. Это сервис с оплатой по факту использования, который решает все трудоемкие задачи по безопасной и надежной работе API в любом масштабе.

С распространением мобильных устройств и развитием Интернета вещей (IoT) все большую важность получает задача по обеспечению доступа к серверным системам и данным для приложений посредством API. Многие приложения активно используют API, а сообщества разработчиков рассчитывают на их стабильную работу. В результате разработка API и управление ими отнимают все больше времени и сил. Для упрощения работы с API сервис API Gateway может генерировать клиентские SDK на многих языках, включая JavaScript, iOS и Android.

Поддержка API RESTful и API WebSocket

Сервис API Gateway позволяет создавать API RESTful, используя API HTTP или API REST. API HTTP – лучший способ создавать API, которым не требуются возможности управления API. API HTTP оптимизированы для бессерверных рабочих нагрузок и серверной части HTTP. По сравнению с API REST из API Gateway они обеспечивают снижение затрат почти на 71 %, а задержки – на 60 %. Для рабочих нагрузок, которым требуется прокси-сервер для API и функции управления API, такие как планы использования и ключи API, в одном решении, API Gateway предоставляет API REST. Наглядное сравнение поддерживаемых возможностей API HTTP и API REST см. в нашей документации. Создавайте приложения для двусторонней связи в режиме реального времени, такие как приложения для чата и панели для потоковой передачи данных, с помощью интерфейсов API WebSocket. Подробнее об API RESTful и API WebSocket из API Gateway см. на нашей странице вопросов и ответов.

Частная интеграция с AWS ELB и AWS Cloud Map

С помощью шлюза API можно направлять запросы к частным ресурсам VPC. С помощью API HTTP можно создавать API для сервисов, защищенных частными ALB, частными NLB и IP-сервисами, зарегистрированными в AWS Cloud Map, такими как задачи ECS.

Стабильная работа

API Gateway позволяет управлять входящим трафиком серверных систем путем установки правил ограничения нагрузки на основании количества запросов в секунду для каждого HTTP‑метода в API. API Gateway обрабатывает все уровни трафика, получаемые API, поэтому вы можете сконцентрироваться на функциональном коде и сервисах вместо управления инфраструктурой. Кроме того, при использовании API REST существует возможность формирования кэша с настраиваемыми ключами и временем жизни в секундах для API, чтобы исключить обращение к серверным системам при каждом запросе.

Простое создание и развертывание API

С помощью API Gateway можно быстро и просто создавать собственные API для кода AWS Lambda и затем вызывать этот код с помощью API. API Gateway может исполнять код AWS Lambda в рамках аккаунта, запускать конечные автоматы AWS Step Functions, а также вызывать AWS Elastic Beanstalk, Amazon EC2 или сетевые сервисы за пределами AWS с публичными адресами HTTP. Используя консоль API Gateway, можно задавать интерфейс REST API и связанные с ним ресурсы и методы, управлять жизненным циклом API, генерировать собственные клиентские SDK и просматривать метрики API.

Мониторинг операций с API

После развертывания и начала использования API можно визуально отслеживать вызовы сервисов на панели управления API Gateway. Консоль API Gateway интегрирована с Amazon CloudWatch, что позволяет вам получать метрики производительности сервера с указанием вызовов API, задержки и коэффициента ошибок. Так как API Gateway использует CloudWatch для записи результатов мониторинга, можно устанавливать и настраивать уведомления для API сервиса API Gateway. API Gateway также может записывать информацию об ошибках в работе API в логи CloudWatch, что упрощает отладку.

Авторизация AWS

При авторизации и проверке запросов API к другим сервисам AWS API Gateway может помочь внедрить подпись версии 4 для API REST и API WebSocket. Для аутентификации с помощью подписи версии 4 можно использовать AWS Identity and Access Management (IAM) и настраиваемые политики авторизации доступа к API и другим ресурсам AWS. Для проверки и авторизации токенов носителей, таких как токены JWT или утверждения SAML, можно также использовать возможности AWS Lambda.

Ключи API для сторонних разработчиков

Если вы используете API REST, API Gateway позволяет управлять сетью сторонних разработчиков, имеющих доступ к вашим API. Вы можете создавать ключи API в API Gateway, устанавливать тонкие настройки доступа для каждого ключа API и передавать их сторонним разработчикам для предоставления доступа к вашим API. Можно также определить планы, устанавливающие предельные квоты на ограничения и запросы для каждого ключа API в отдельности. Использование ключей API не является обязательным и должно быть активировано для каждого метода отдельно.

Генерирование SDK

Если вы используете API REST, Amazon API Gateway может генерировать для некоторых платформ клиентские SDK, которые можно использовать для быстрого тестирования новых API в приложениях и передачи SDK сторонним разработчикам. Эти SDK используют ключи API и запросы на подпись с помощью данных AWS, подтверждающих права доступа. API Gateway может генерировать клиентские SDK для Java, JavaScript, Java для Android, Objective-C или Swift для iOS и Ruby. Можно использовать интерфейс командной строки AWS для генерирования и скачивания комплекта SDK API для поддерживаемой платформы с помощью команды get‑sdk.

Управление жизненным циклом API

Если вы используете API REST, API Gateway позволяет одновременно использовать несколько версий одного API, поэтому приложения могут вызывать предыдущие версии API, даже если опубликованы более новые версии. API Gateway также позволяет управлять такими стадиями выпуска, как альфа, бета и рабочая стадия, для каждой версии API. Каждую стадию API можно настроить для взаимодействия с разными серверными конечными точками с учетом настроек API. Определенным стадиям и версиям API можно назначить пользовательское доменное имя и управлять ими с помощью API Gateway. Функция управления стадиями выпуска и версиями позволяет удобно тестировать новые версии API с улучшенными или расширенными функциональными возможностями и обеспечивает обратную совместимость по мере того, как сообщества пользователей переходят к использованию последних версий.