Utilisation des API de passerelle comme point d'entrée unique pour les applications Web et les API

La traduction de l'article a été préparée spécialement pour les étudiants du cours «High Load Architect» .




introduction


Les avantages AWS, tels que la haute disponibilité, l'évolutivité et la résilience, ont déjà fait leurs preuves pour les fournisseurs de SaaS (Software-as-a-Service). Avec la modernisation des applications SaaS, AWS permet de passer en douceur à une architecture de microservices en fournissant un accès API aux applications externes.

Les outils de gestion d'API comme Amazon API Gateway sont le choix naturel pour fournir une API externe sécurisée et évolutive. Cependant, lors du déplacement de leurs applications vers les clouds, les fournisseurs de SaaS sont souvent confrontés à la nécessité de déployer rapidement leurs services sur plusieurs clients différents. Et, bien sûr, avec les exigences spécifiques de chacun d'eux.

L'API de passerelle permet de créer une architecture de microservice à locataires multiples. Dans une telle architecture, une seule instance d'un microservice est utilisée pour servir différents clients, ce qui permet d'utiliser les ressources de manière plus optimale et d'optimiser les coûts. Dans cette configuration, afin de servir leurs clients, les fournisseurs nécessitent la prise en charge de domaines «en marque blanche», ainsi que la capacité d'identifier un domaine client pour lier une logique métier spécifique à un client spécifique dans le backend.

Cet article décrit l'architecture de référence, qui vous permet d'utiliser l'API de passerelle comme point d'entrée unique pour les applications Web et les microservices basés sur des API avec plusieurs clients externes, en utilisant différents sous-domaines pour chacun d'eux.

Amazon API Gateway - Point d'entrée unique


La construction d'une architecture à l'aide d'une seule API de passerelle pour plusieurs applications Web et microservices est un facteur important pour la réutilisation des composants et l'optimisation des coûts.

Amazon API Gateway fournit une solution hautement évolutive pour créer et publier des API RESTful et des API WebSocket. Vous pouvez sélectionner une variété de technologies pour le backend: fonctionnalités AWS Lambda , fonctions d'étape AWS ou appeler des points de terminaison HTTP hébergés sur AWS Elastic Beanstalk , Amazon EC2 ou en dehors d'AWS.

API Gateway prend en charge des tâches de gestion d'API telles que la sécurité, la mise en cache, la limitation et la surveillance. Bien que son objectif principal soit de créer une couche abstraite au-dessus de votre API interne et de vos microservices, il peut également simplifier vos applications dorsales ou fournir un accès aux pages Web statiques et aux documents stockés dans le compartiment Amazon S3 .

En plus de ce qui précède, les fonctions clés d'API Gateway suivantes aident à créer l'architecture décrite ici.

1. Prise en charge des noms de domaine personnalisés:


Lors du déploiement d'une API à l'aide de l'API de passerelle, le nom de domaine par défaut du point de terminaison d'API n'est pas très pratique pour l'utilisateur final:

https://api-id.execute-api.region.amazonaws.com/stage

  • api-id API de passerelle générée
  • region Il vous est indiqué lors de la création de l'API;
  • stage Spécifié par vous lors du déploiement de l'API.

Le point de terminaison API par défaut peut être difficile à utiliser. Mais grâce à l'intégration avec AWS Certificate Manager, qui vous permet de tester des sous-domaines basés sur des certificats SSL, vous pouvez donner aux utilisateurs de votre API une URL plus simple et plus intuitive, comme, par exemple customer1.example.com. L'API de passerelle vous permet de mapper plusieurs sous-domaines à un seul point de terminaison d'API, ce qui vous permet d'utiliser le nom de «marque blanche» conformément aux exigences des clients externes.

2. Modification des demandes / réponses API


L'API de passerelle vous permet de configurer un traitement distinct pour chaque partie de l'adresse de point de terminaison d'API. Pour cette raison, il est possible d'acheminer les demandes d'API vers des points de terminaison individuels du backend, et en même temps, de changer les en-têtes dans la demande / réponse pour un traitement plus flexible des demandes d'API.

Les avantages d'une telle architecture


Les fonctionnalités décrites dans cet article sont illustrées dans le diagramme ci-dessous.



Voici l'architecture d'un fournisseur SaaS typique qui offre ses services à d'autres organisations et doit prendre en charge les domaines «en marque blanche» pour les infrastructures Web et API. Une architecture similaire est obtenue en utilisant les étapes suivantes:

  1. Le domaine example.compeut être enregistré auprès d' un bureau d' enregistrement de domaine, mais vous pouvez créer des sous - domaines à travers le CNAME record, par exemple customer1.example.com, customer2.example.com. Cela peut être fait dans AWS à l'aide du service Amazon Route 53 ou via n'importe quel fournisseur DNS tiers.
  2. AWS Certificate Manager (ACM) example.com *.example.com. ACM-, API Gateway.
  3. , ACM, API. API . : customer1.example.com customer2.example.com.

: CNAME- customer1 customer2 DNS, API Gateway.



4. API Endpoint


  • /service1 — integration type HTTP, ELB, ECS
  • /service2 - type d'intégration HTTP, acheminant le trafic vers le point de terminaison d'une application Web ELB hébergée dans un cluster EC2
  • /docs - type d'intégration AWS S3, pour les documents statiques



5. L'API de passerelle peut traiter le nom de domaine complet (FQDN) dans l'URL et le mapper à des en-têtes ou des paramètres personnalisés dans la chaîne de requête à envoyer au serveur principal correspondant.

Par exemple, nous pouvons créer un en-tête «Client» personnalisé pour rediriger client1 ou client2 vers une application backend spécifique au client. Cela se fait à l'aide des paramètres de demande de méthode et de demande d'intégration dans l'API de passerelle.

Total


Comme vous pouvez le voir, ce n'est qu'un exemple d'utilisation de l'API Gateway comme point d'entrée unique pour les microservices basés sur l'API et les ressources d'application Web statiques. L'API de passerelle vous permet d'utiliser l'infrastructure plus efficacement sans perdre l'échelle tout en augmentant la charge sur vos applications. Pour plus d'informations sur l'utilisation de l'API de passerelle et du DNS Route 53, consultez la documentation AWS et utilisez ces fonctionnalités pour créer des architectures qui répondent à vos besoins.

All Articles