
Para mi próximo proyecto, probaré AWS y sin servidor, pero no estoy seguro de cómo razonar sobre los diferentes servicios de AWS. Así que espero que alguien aquí tenga una buena idea.
Actualmente, el proyecto consta de tres aplicaciones frontend diferentes, cada una alojada en un subdominio independiente:
- dominio raíz + [www]: página web principal que consiste principalmente en contenido de "venta"
- [administración]: Aplicación frontend para nuestros sistemas de administración
- [usuario]: Aplicación frontend para nuestra experiencia de usuario
Luego, por ahora, hay una aplicación de backend que sirve a todas las aplicaciones de frontend. Este backend debe tener un proxy inverso por al menos los subdominios [administración] y [usuario] (es decir, como usuario.dominio.com/servicio/backend). Mi servicio backend actualmente se ejecuta como un contenedor acoplable y utiliza WebSockets para algunas partes, por lo que debe ser compatible.
He estado analizando algunas opciones para mis interfaces, ya sea AWS Amplify o S3+Cloudfront. Sin embargo, no estoy seguro de si alguno de estos es lo que estoy buscando.
Lo mismo ocurre con mi backend. He estado analizando AWS Fargate, AWS API Gateway y posible AWS AppSync (ya que gran parte de mi backend es una aplicación GraphQL).
Pero estoy un poco perdido. ¿Alguien podría darme un empujón en la dirección correcta? Con suerte, he proporcionado información suficiente y clara; de lo contrario, ¡estaré encantado de ampliarla! :)
¡Gracias!
Respuesta1
Para cualquiera que tenga curiosidad, la configuración con la que llegué es más o menos la que se describe aquí:https://aws.amazon.com/blogs/networking-and-content-delivery/dynamic-whole-site-delivery-with-amazon-cloudfront/
Donde dirijo todo a través de Cloudfront y luego, usando "Comportamientos", dirijo el tráfico a diferentes servicios. Por ejemplo, /service/user & /service/schedule se enruta a mi instancia ALB mientras que todo lo demás se enruta a mi depósito S3 que actúa como una página web estática.
Usando algo de magia de Lambda@Edge, puedo reescribir las solicitudes reenviadas a mi instancia de ALB, que luego puede coincidir con las solicitudes entrantes y reenviarlas a los contenedores subyacentes correctos (actualmente estoy usando clústeres en Fargate).
Esto funciona muy bien para mi caso de uso, aunque puede que no sea la "mejor práctica". Así que ciertamente continuaré explorando AWS y aprenderé cosas nuevas. :)
Si ayuda a alguien, genial. Si alguien tiene alguna opinión sobre lo anterior, ¡me encantaría escucharla!
¡Salud!