Hébergement AWS de l'application Web SPA

Sep 17 2020

Je viens tout juste de commencer à envisager d'utiliser AWS pour mes applications Web SPA. Et j'ai beaucoup lu sur les différents types d'héberger les applications Web sur AWS. J'ai examiné l'hébergement Lambda, S3 Static. EC2. Mais je n'arrive pas à comprendre comment exploiter AWS et ses services de la meilleure façon possible.

My Web App se compose d'un frontal écrit en Vue js. Qui utilise une API Backend écrite en Laravel. Le frontal et le backend sont isolés, ils n'ont donc pas besoin d'être placés sur la même machine. Je suppose donc que cela pourrait offrir de bonnes opportunités pour utiliser les différents produits AWS? La base de données est uniquement connectée à l'API backend, donc le frontend est statique. Je suis également ouvert à l'idée de passer à un autre type de base de données si cela s'intègre mieux dans l'environnement AWS. Mais je ne sais pas si je devrais séparer le frontend et l'API en différents services.

Merci d'avance!

Réponses

1 DannySchoemann Sep 22 2020 at 21:10

La réponse AWS serait d'utiliser les services appropriés pour chaque composant.

Par exemple, mettez la base de données sur un RDS - ils ont plusieurs choix. Déployez le front-end à l'aide de Fargate et Lambda.

Il y a 2 problèmes à considérer:

1. La courbe d'apprentissage.

Se mettre à niveau sur la technologie AWS - et les suivre alors qu'ils apportent des modifications mineures qui réduisent les déploiements en retard - peut devenir très coûteux, en termes de temps.

OTOH, une fois que vous êtes un expert de ces technologies, vous pouvez les exploiter avec des résultats étonnants.

2. Les coûts:

Pendant que vous développez, vous utiliserez principalement le niveau gratuit et les coûts seront minimes.

Une fois que vous êtes entré en production, vous devez commencer à utiliser de «vraies» machines, et même si vous ne le faites pas, la plupart des services ont une expiration pour leur offre gratuite: 12 mois et / ou une certaine quantité d'utilisation.

À ce stade, les coûts commencent à monter en flèche. du petit changement à 3 ou même 4 chiffres pour une petite installation.


L'autre approche consiste à le faire comme vous le feriez sans AWS.

Vous ne m'avez pas donné beaucoup de détails, mais si vous déployez quelque chose de simple, vous voudrez peut-être lancer une instance EC2, installer un serveur LAMP et l'utiliser à la fois pour le front et le back-end.

Vous pouvez ensuite utiliser Lifecycle Manager pour sauvegarder quotidiennement l'intégralité de la machine.

Cependant, si vous devez le faire évoluer considérablement, vous devrez recommencer à zéro.


Alors, que choisissez-vous?

La réponse dépend de vos ressources: temps, argent et main-d'œuvre, ainsi que de la façon dont vous voyez cela passer d'un projet ponctuel à une installation à long terme très utilisée qui a besoin de redondance, d'équilibrage de charge et de capacité d'évolution dynamique.

Vous pouvez également regarder quelque chose comme AWS Beanstalk, qui est plus facile à implémenter et à redéployer, mais pas aussi dynamique, que leur approche sans serveur.