Uso de API de puerta de enlace como punto de entrada único para aplicaciones web y API

La traducción del artículo fue preparada especialmente para los estudiantes del curso "Arquitecto de alta carga" .




Introducción


Los beneficios de AWS, como la alta disponibilidad, la escalabilidad y la resistencia, ya han demostrado su valía para los proveedores de SaaS (software como servicio). Con la modernización de las aplicaciones SaaS, AWS ayuda a cambiar sin problemas a una arquitectura de microservicio al proporcionar acceso API a aplicaciones externas.

Las herramientas de administración de API como Amazon API Gateway son la opción natural para proporcionar una API externa segura y escalable. Sin embargo, al mover sus aplicaciones a las nubes, los proveedores de SaaS a menudo enfrentan la necesidad de implementar rápidamente sus servicios en varios clientes diferentes. Y, por supuesto, con los requisitos específicos de cada uno de ellos.

La API de Gateway ayuda a crear una arquitectura de microservicio de múltiples inquilinos. En dicha arquitectura, se utiliza una única instancia de un microservicio para atender a diferentes clientes, lo que permite utilizar los recursos de manera más óptima y optimizar los costos. En esta configuración, para servir a sus clientes, los proveedores requieren el soporte de dominios de "marca blanca", así como la capacidad de identificar un dominio de cliente para vincular una lógica comercial específica a un cliente específico en el back-end.

Este artículo habla sobre la arquitectura de referencia, que le permite utilizar la API de Gateway como un único punto de entrada para aplicaciones web y microservicios basados ​​en API con varios clientes externos, utilizando diferentes subdominios para cada uno de ellos.

Amazon API Gateway: punto de entrada único


Construir una arquitectura usando una sola API de Gateway para múltiples aplicaciones web y microservicios es un factor importante para la reutilización de componentes y la optimización de costos.

Amazon API Gateway proporciona una solución altamente escalable para crear y publicar API RESTful y API WebSocket. Puede seleccionar una variedad de tecnologías para el back-end: características de AWS Lambda , AWS Step Functions o llamar a puntos finales HTTP alojados en AWS Elastic Beanstalk , Amazon EC2 o fuera de AWS.

API Gateway asume tareas típicas de administración de API como seguridad, almacenamiento en caché, aceleración y monitoreo. Aunque su objetivo principal es crear una capa abstracta sobre su API interna y microservicios, también puede simplificar sus aplicaciones de back-end o proporcionar acceso a páginas web estáticas y documentos almacenados en el bucket de Amazon S3 .

Además de lo anterior, las siguientes funciones clave de API Gateway ayudan a crear la arquitectura descrita aquí.

1. Soporte para nombres de dominio personalizados:


Al implementar una API con la API de Gateway, el nombre de dominio predeterminado del punto final de API no es muy conveniente para el usuario final:

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

  • api-id API de puerta de enlace generada
  • region Usted lo indica cuando crea la API;
  • stage Especificado por usted al implementar la API.

El punto final de API predeterminado puede ser difícil de trabajar. Pero gracias a la integración con AWS administrador de certificados, que le permite a los subdominios de prueba basados en SSL certificados, se puede dar a los usuarios de su API más fácil y más intuitivo URL, por ejemplo, customer1.example.com. La API de Gateway le permite asignar múltiples subdominios a un único punto final de API, lo que le permite utilizar el nombre de "etiqueta blanca" de acuerdo con los requisitos de los clientes externos.

2. Modificación de solicitudes / respuestas API


La API de Gateway le permite configurar un procesamiento separado para cada parte de la dirección de punto final de API. Gracias a esto, es posible enrutar las solicitudes API a puntos finales individuales y, al mismo tiempo, cambiar los encabezados en la solicitud / respuesta para un procesamiento más flexible de las solicitudes API.

Las ventajas de tal arquitectura


Las características descritas en este artículo se muestran en el siguiente diagrama.



Aquí está la arquitectura para un proveedor SaaS típico que ofrece sus servicios a otras organizaciones y debe admitir dominios de "etiqueta blanca" para infraestructuras web y API. Se logra una arquitectura similar utilizando los siguientes pasos:

  1. El dominio example.compuede ser registrado en un registrador de dominios, pero se pueden crear subdominios a través del CNAME a grabar, por ejemplo customer1.example.com, customer2.example.com. Esto se puede hacer en AWS utilizando el servicio Amazon Route 53 o mediante cualquier proveedor de DNS de terceros.
  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 - tipo de integración HTTP, enrutando el tráfico al punto final de una aplicación web ELB alojada en un clúster EC2
  • /docs - tipo de integración AWS S3, para documentos estáticos



5. La API de Gateway puede procesar el nombre de dominio completo (FQDN) en la URL y asignarlo a los encabezados o parámetros personalizados en la cadena de consulta para enviarlos al backend correspondiente.

Por ejemplo, podemos crear un encabezado personalizado "Cliente" para redirigir al cliente1 o al cliente2 a una aplicación de fondo específica del cliente. Esto se realiza utilizando los parámetros de Solicitud de método y Solicitud de integración en la API de Gateway.

Total


Como puede ver, este es solo un ejemplo del uso de la API de Gateway como un único punto de entrada para microservicios basados ​​en API y recursos de aplicaciones web estáticas. Gateway API le permite usar la infraestructura de manera más eficiente sin perder escala mientras aumenta la carga en sus aplicaciones. Para obtener más información sobre cómo trabajar con Gateway API y Route 53 DNS, consulte la documentación de AWS y use estas funciones para crear arquitecturas que cumplan con sus requisitos.

All Articles