|
A partir de hoy, puede implementar Amazon CloudFront, nuestra red de entrega de contenido (CDN) global, frente a sus puntos finales de API de gRPC.
gRPC es un marco moderno, eficiente e independiente del lenguaje para crear API. se utiliza Búfers de protocolo (protobuf) como su lenguaje de definición de interfaz (IDL), que le permiten definir servicios y tipos de mensajes de forma independiente de la plataforma. Con gRPC, la comunicación entre servicios se logra a través de llamadas a procedimientos remotos (RPC) ligeras y de alto rendimiento a través de HTTP/2. Esto promueve una comunicación eficiente y de baja latencia entre servicios, lo que lo hace ideal para arquitecturas de microservicios.
gRPC ofrece funciones como transmisión bidireccional, control de flujo y generación automática de código para un variedad de lenguajes de programación. Es ideal para escenarios en los que se requiere alto rendimiento, comunicación eficiente y transmisión de datos en tiempo real. Si su aplicación necesita manejar una gran cantidad de datos o requiere una comunicación de baja latencia entre el cliente y el servidor, gRPC puede ser una buena opción. Sin embargo, gRPC puede ser más difícil de aprender en comparación con REST. Por ejemplo, gRPC se basa en el formato de serialización protobuf, que requiere que los desarrolladores definan sus estructuras de datos y métodos de servicio en .proto
archivos.
Veo dos beneficios de implementar Frente a la nube frente a los puntos finales de la API de gRPC.
Primero, permite reducir la latencia entre la aplicación cliente y la implementación de su API. Frente a la nube ofrece una red global de más de 600 ubicaciones de borde con enrutamiento inteligente al borde más cercano. Las ubicaciones de borde proporcionan terminación TLS y almacenamiento en caché opcional para su contenido estático. Frente a la nube transfiere solicitudes de aplicaciones de clientes a su origen gRPC a través de la red privada de AWS totalmente administrada, de baja latencia y de gran ancho de banda.
En segundo lugar, sus aplicaciones se benefician de servicios de seguridad adicionales implementados en ubicaciones de borde, como el cifrado de tráfico, la validación de los encabezados HTTP a través de AWS Web Application Firewall y la protección AWS Shield Standard contra ataques de denegación de servicio distribuido (DDoS).
Veámoslo en acción
Para iniciar esta demostración, utilizo el Demostración de guía de ruta de gRPC de el repositorio oficial de código gRPC. Implemento esta aplicación de ejemplo en un contenedor para facilitar la implementación (pero también se admite cualquier otra opción de implementación).
yo uso esto Dockerfile
FROM python:3.7
RUN pip install protobuf grpcio
COPY ./grpc/examples/python/route_guide .
CMD python route_guide_server.py
EXPOSE 50051
Yo también uso el Línea de comando de AWS Copilot implementar mi contenedor en Amazon Elastic Container Service (Amazon ECS). El comando Copilot me solicita que recopile la información necesaria para construir e implementar el contenedor. Luego, crea automáticamente el clúster ECS, el servicio ECS y la tarea ECS. También me crea un certificado TLS y el equilibrador de carga. yo pruebo la aplicación cliente modificando línea 122 para utilizar el nombre DNS del punto final de escucha del equilibrador de carga. También cambio el código de la aplicación cliente para usar grpc.secure_channel
en lugar de grpc.insecure_channel
porque el equilibrador de carga proporciona a la aplicación un punto final HTTPS.
Cuando estoy seguro de que mi API está implementada y funcionando correctamente, procedo y configuro Frente a la nube.
Primero, en el Frente a la nube sección de la Consola de administración de AWS, selecciono Crear distribución.
En Origen, ingreso el nombre DNS de mi punto final gRPC como Dominio de origen. yo habilito Solo HTTPS como Protocolo y deje el puerto HTTPS como está (443). Entonces elijo un Nombre para la distribución.
Bajo Espectadorselecciono Solo HTTPS como Política de protocolo del espectador. Luego selecciono OBTENER, CABEZA, OPCIONES, PONER, PUBLICAR, PATCH, BORRAR como Métodos HTTP permitidos. selecciono Permitir para Permitir solicitudes de gRPC a través de HTTP/2.
Bajo Solicitudes de origen y clave de cachéselecciono Todo Visor como Política de solicitud de origen.
La política de caché predeterminada es Caché optimizadopero gRPC no es tráfico de API que se puede almacenar en caché. Por lo tanto, selecciono Almacenamiento en caché deshabilitado como Política de caché.
AWS WAF lo ayuda a protegerse contra bots y exploits web comunes que pueden afectar la disponibilidad, comprometer la seguridad o consumir recursos excesivos. Para el tráfico gRPC, AWS WAF puede inspeccionar los encabezados HTTP de la solicitud y aplicar el control de acceso. No inspecciona el cuerpo de la solicitud en formato protobuf.
Para esta demostración, elijo no utilizar AWS WAF. Bajo Cortafuegos de aplicaciones web (WAF)selecciono No habilitar protecciones de seguridad.
También mantengo todas las demás opciones con su valor predeterminado. La compatibilidad con HTTP/2 está seleccionada de forma predeterminada. No lo desactives porque es necesario para gRPC.
Finalmente selecciono Crear distribución.
Solo hay un interruptor para habilitar gRPC además de la configuración habitual. Cuando está activado, con HTTP/2 y HTTP POST habilitados, Frente a la nube detecta el tráfico del cliente gRPC y lo reenvía a su origen gRPC.
Después de unos minutos, la distribución está lista. Copio y pego la URL del punto final del Frente a la nube distribución, y cambio la aplicación del lado del cliente para que apunte a Frente a la nube en lugar del balanceador de carga creado previamente.
Pruebo la aplicación nuevamente y funciona.
Precios y disponibilidad
Los orígenes de gRPC están disponibles en los más de 600 Frente a la nube ubicaciones perimetrales sin costo adicional. Se aplican las solicitudes habituales y las tarifas de transferencia de datos.
Ve y apunta tu Frente a la nube origen a un punto final gRPC hoy.
GIPHY App Key not set. Please check settings