Implemente un Amazon API Gateway API en un sitio web interno mediante puntos de conexión privados y un Application Load Balancer - Recomendaciones de AWS

Las traducciones son generadas a través de traducción automática. En caso de conflicto entre la traducción y la version original de inglés, prevalecerá la version en inglés.

Implemente un Amazon API Gateway API en un sitio web interno mediante puntos de conexión privados y un Application Load Balancer

Creado por Saurabh Kothari () AWS

Entorno: producción

Tecnologías: aplicaciones web y móviles; redes; sin servidor; infraestructura

AWSservicios: Amazon API Gateway; Amazon Route 53; AWS Certificate Manager (ACM)

Resumen

Este patrón le muestra cómo implementar Amazon API Gateway API en un sitio web interno al que se puede acceder desde una red local. Aprenderá a crear un nombre de dominio personalizado para un dominio privado API mediante una arquitectura diseñada con puntos de enlace privados, un Application Load Balancer y Amazon AWS PrivateLink Route 53. Esta arquitectura evita las consecuencias imprevistas del uso de un nombre de dominio y un servidor proxy personalizados para facilitar el enrutamiento basado en dominios en un. API Por ejemplo, si implementa un punto final de nube privada virtual (VPC) en una subred no enrutable, la red no podrá llegar a Gateway. API Una solución habitual consiste en utilizar un nombre de dominio personalizado y, a continuación, implementarlo API en una subred enrutable, pero esto puede interrumpir otros sitios internos cuando la configuración del proxy transfiere el tráfico (execute-api.{region}.vpce.amazonaws.com) a Direct AWS Connect. Por último, este patrón puede ayudarte a cumplir con los requisitos organizativos relacionados con el uso de un dominio privado al API que no se pueda acceder desde Internet y un nombre de dominio personalizado.

Requisitos previos y limitaciones

Requisitos previos 

  • ¿Una cuenta activa AWS

  • Un certificado de indicación del nombre de servidor (SNI) para su sitio web y API

  • Una conexión desde un entorno local a una AWS cuenta configurada mediante AWS Direct Connect o AWS Site-to-Site VPN

  • Una zona alojada privada con el dominio correspondiente (por ejemplo, domain.com) que se resuelve desde una red local y reenvía las DNS consultas a Route 53

  • Una subred privada enrutable a la que se puede acceder desde una red en las instalaciones

Limitaciones

Para obtener más información sobre las cuotas (antes denominadas límites) para los equilibradores de carga, las reglas y otros recursos, consulte Cuotas para los Equilibrador de carga de aplicación en la documentación de Elastic Load Balancing.

Arquitectura

Pila de tecnología

  • Amazon API Gateway

  • Amazon Route 53

  • Equilibrador de carga de aplicación

  • AWSCertificate Manager

  • AWS PrivateLink

Arquitectura de destino

El siguiente diagrama muestra cómo se implementa un Application Load Balancer en un sistema VPC que dirige el tráfico web a un grupo objetivo de un sitio web o a un grupo objetivo de API Gateway en función de las reglas de escucha del Application Load Balancer. El grupo objetivo de API Gateway es una lista de direcciones IP para el VPC punto final de Gateway. API APILa puerta de enlace está configurada para convertirla en API privada con su política de recursos. La política deniega todas las llamadas que no procedan de un VPC punto final específico. Los nombres de dominio personalizados de API Gateway se actualizan para utilizar api.domain.com en la fase API y en su fase. Las reglas de Equilibrador de carga de aplicación se agregan para enrutar el tráfico en función del nombre del host.

Arquitectura que utiliza las reglas de escucha de Application Load Balancer para dirigir el tráfico web.

En el diagrama, se muestra el siguiente flujo de trabajo:

  1. Un usuario de una red en las instalaciones intenta acceder a un sitio web interno. La solicitud se envía a ui.domain.com y api.domain.com. A continuación, la solicitud se resuelve en el Equilibrador de carga de aplicación interno de la subred privada enrutable. SSLSe termina en el Application Load Balancer de ui.domain.com y api.domain.com.

  2. Las reglas de oyente, configuradas en Equilibrador de carga de aplicación, comprueban el encabezado del host.

    a. Si el encabezado del host es api.domain.com, la solicitud se reenvía al grupo objetivo de Gateway. API El Application Load Balancer inicia una nueva conexión con API Gateway a través del puerto 443.

    b. Si el encabezado del host es ui.domain.com, la solicitud se reenvía al grupo objetivo del sitio web.

  3. Cuando la solicitud llega a API Gateway, la asignación de dominios personalizada configurada en API Gateway determina el nombre de host y cuál se API debe ejecutar.

Automatizar y escalar

Los pasos de este patrón se pueden automatizar mediante AWS CloudFormation el AWS Cloud Development Kit (AWSCDK). Para configurar el grupo objetivo de las llamadas de API Gateway, debes usar un recurso personalizado para recuperar la dirección IP del VPC punto final. APIlas llamadas describe-vpc-endpointsy describe-network-interfacesdevuelven las direcciones IP y el grupo de seguridad, que se pueden utilizar para crear el grupo API objetivo de direcciones IP.

Herramientas

  • Amazon API Gateway le ayuda a crear, publicar, mantener, supervisar y proteger RESTHTTP, y WebSocket APIs a cualquier escala.

  • Amazon Route 53 es un servicio DNS web escalable y de alta disponibilidad.

  • AWSCertificate Manager (ACM) le ayuda a crear, almacenar y renovar certificados y claves SSL TLS X.509 públicos y privados que protegen sus AWS sitios web y aplicaciones.

  • AWSCloud Development Kit (AWSCDK) es un marco de desarrollo de software que le ayuda a definir y aprovisionar AWS la infraestructura de nube en código.

  • AWS PrivateLinkle ayuda a crear conexiones unidireccionales y privadas desde sus servicios VPCs a otros. VPC

Epics

TareaDescripciónHabilidades requeridas

Cree un SNI certificado e impórtelo aACM.

  1. Cree un SNI certificado para ui.domain.com y api.domain.com. Para obtener más información, consulta Cómo HTTPS atender CloudFront las solicitudes en la CloudFront documentación de Amazon.

  2. Importe los SNI certificados a AWS Certificate Manager (ACM). Para obtener más información, consulte Importación de certificados a AWS Certificate Manager en la ACM documentación.

Administrador de red
TareaDescripciónHabilidades requeridas

Cree un VPC punto final de interfaz en Gateway. API

Para crear un VPC punto de enlace de interfaz, siga las instrucciones de Acceder a un AWS servicio mediante un VPC punto de enlace de interfaz en la documentación de Amazon Virtual Private Cloud (AmazonVPC).

Administrador de la nube
TareaDescripciónHabilidades requeridas

Creación de un grupo de destino para la aplicación.

Creación de un grupo de destino para los recursos de interfaz de usuario de su aplicación.

Administrador de la nube

Cree un grupo objetivo para el punto final de API Gateway.

  1. Cree un grupo de destino con un tipo de dirección IP y, a continuación, agregue la dirección IP del VPC punto final del punto final de la API puerta de enlace al grupo de destino.

  2. Configure las comprobaciones de estado para los grupos de destino con el código de éxito 403. El código 403 es obligatorio porque el VPC punto final de la API puerta de enlace devuelve un código 403 cuando la comprobación de estado del grupo de destino lo invoca sin ningún encabezado.

Administrador de la nube

Cree un Equilibrador de carga de aplicación.

  1. Cree un Equilibrador de carga de aplicación (interno) en una subred privada enrutable.

  2. Agregue el listener 443 a Application Load Balancer y elija el certificado entre ellos. ACM

Administrador de la nube

Cree reglas de oyentes.

Cree reglas de oyente para hacer lo siguiente:

  1. Reenvíe el host api.domain.com al grupo objetivo de Gateway API

  2. Reenvíe el host ui.domain.com al grupo de destino de los recursos de la interfaz de usuario

Administrador de la nube
TareaDescripciónHabilidades requeridas

Crear una zona alojada privada.

Cree una zona alojada privada para domain.com.

Administrador de la nube

Cree registros de dominio.

Cree CNAME registros para lo siguiente:

  • Y API con el valor establecido en el DNS nombre del Application Load Balancer

  • Una interfaz de usuario con el valor establecido en el DNS nombre del Application Load Balancer

Administrador de la nube
TareaDescripciónHabilidades requeridas

Cree y configure un API punto final privado.

  1. Para crear un API punto de conexión privado, siga las instrucciones de Crear un punto de conexión privado API en Amazon API Gateway en la documentación de API Gateway. 

  2. Configure la política de recursos para permitir las llamadas únicamente API desde el VPC punto de conexión. Para obtener más información, consulte Controlar el acceso a y API con las políticas de recursos de API Gateway en la documentación de API Gateway.

Desarrollador de aplicaciones, administrador de la nube

Cree un nombre de dominio personalizado.

  1. Crea un nombre de dominio personalizado para api.domain.com. Para obtener más información, consulte Configuración de nombres de dominio personalizados REST APIs en la documentación de API Gateway.

  2. Seleccione la creación API y la fase. Para obtener más información, consulte Trabajar con API mapeos REST APIs en la documentación de API Gateway.

Administrador de la nube

Recursos relacionados