
Para meu próximo projeto, estou dando uma chance à AWS e sem servidor, mas não tenho certeza de como raciocinar sobre os diferentes serviços da AWS. Então, espero que alguém aqui tenha uma boa noção disso.
O projeto atualmente consiste em três aplicativos frontend diferentes, cada um hospedado em um subdomínio separado:
- domínio raiz + [www]: página principal que consiste principalmente em conteúdo de "venda"
- [administração]: Aplicativo frontend para nossos sistemas de administração
- [usuário]: Aplicativo frontend para nossa experiência de usuário
Então, por enquanto, existe um aplicativo de back-end que atende todos os aplicativos de front-end. Este back-end deve ter proxy reverso por pelo menos os subdomínios [administração] e [usuário] (ou seja, como user.domain.com/service/backend). Meu serviço de back-end atualmente é executado como um contêiner docker e usa WebSockets para algumas partes, portanto, isso precisa ser compatível.
Tenho procurado algumas opções para meus frontends, seja AWS Amplify ou S3+Cloudfront. No entanto, não tenho certeza se algum desses é o que estou procurando.
O mesmo vale para meu back-end. Tenho observado o AWS Fargate, o AWS API Gateway e o possível AWS AppSync (já que grande parte do meu back-end é um aplicativo GraphQL).
Mas estou meio perdido. Alguém poderia me dar um empurrão na direção certa? Espero ter fornecido informações suficientes e claras, caso contrário, ficarei feliz em expandir! :)
Obrigado!
Responder1
Para qualquer curioso, a configuração que encontrei é mais ou menos a descrita aqui:https://aws.amazon.com/blogs/networking-and-content-delivery/dynamic-whole-site-delivery-with-amazon-cloudfront/
Onde roteio tudo pelo Cloudfront e, em seguida, usando "Comportamentos", direciono o tráfego para diferentes serviços. Por exemplo, /service/user & /service/schedule é roteado para minha instância ALB enquanto todo o resto é roteado para meu bucket S3 agindo como uma página da web estática.
Usando um pouco da mágica do Lambda@Edge, sou capaz de reescrever as solicitações encaminhadas para minha instância ALB, que pode corresponder às solicitações recebidas e encaminhá-las para os contêineres subjacentes corretos (atualmente estou usando clusters no Fargate).
Isso funciona muito bem para o meu caso de uso, mesmo que não seja uma "melhor prática". Portanto, certamente continuarei explorando a AWS e aprendendo coisas novas. :)
Se ajudar alguém, ótimo. Se alguém tiver alguma opinião sobre o que foi dito acima, eu adoraria ouvir!
Saúde!