Vous allez lancer un nouveau projet ou vous êtes peut-être sur le point de développer de nouvelles fonctionnalités ? Avant d'entreprendre toute action, il est utile d'en savoir le plus possible sur les différents outils externes qui pourraient vous être utiles.
Les deux services AWS de base, et probablement les plus populaires, sont EC2 et S3. En bref : avec EC2, vous pouvez mettre en place vos projet et le montrer au monde entier, tandis que S3 est utilisé pour stocker les données de toute nature. Cependant, dans cet article, j'aimerais examiner d'autres outils AWS plus ou moins populaires que nous utilisons normalement ici, chez Codest.
Cloudfront
Il s'agit d'un outil spécialement conçu pour fournir très rapidement des ressources à de nombreux utilisateurs. Et beaucoup ne signifie pas des centaines ou des milliers mais des millions de demandes pour une seule ressource. Par exemple, vous voulez permettre de placer votre graphique, css, html ou javascript sur n'importe quelle page. Vous souhaitez également avoir un impact total sur le contenu de la ressource - vous devez modifier quelque chose et vous voulez que ce changement se produise sur toutes les pages contenant votre fichier. C'est là qu'intervient AWS Cloudfront, avec toutes ses capacités, qui permettront à l'utilisateur final de recevoir votre ressource le plus rapidement possible.
Cloudfront propose également un certain nombre de statistiques. Par exemple, les pages les plus demandées, les appareils avec lesquels la demande de ressource a été faite, les statuts http, etc.
Bien sûr, cet outil est assez cher, mais plus il y a de requêtes vers cloudfront, moins vous payez pour le service. Par conséquent, vous devriez envisager cette solution si vous souhaitez placer la ressource sur des sites web dont le trafic est très important, voire énorme.
Lot
Pour simplifier, il s'agit d'un service qui permet d'exécuter un grand nombre de tâches directement sur AWS. Tout ce que vous devez préparer est un script d'exécution et une image docker, tandis qu'AWS Batch fera le reste. Batch créera dynamiquement des instances sur EC2, allouera un emplacement approprié pour les travaux et les lancera en même temps. Vous n'avez pas à craindre que votre instance EC2 manque d'espace ou de mémoire, ou que vous deviez constamment penser au moment et à la manière dont le travail peut être lancé. Pour la communication entre le script dans l'image docker et votre service, il vous suffit de créer l'API et le tour est joué. Si vous souhaitez utiliser Batch, vous devez également préparer votre référentiel Docker dans le service Amazon Elastic Container Registry (ECR).
Un autre service, qui bénéficie des avantages des conteneurs Docker, mérite également d'être mentionné. Il s'agit d'Elastic Container Service (ECS). Sa principale différence par rapport à Batch est que vous devez configurer et mettre à l'échelle vous-même les instances EC2, alors que Batch fait tout le travail à votre place. Les coûts de Batch dépendent des instances EC2 que vous êtes autorisé à utiliser, car, dans ce cas, vous ne payez que pour les instances en cours d'exécution.
Lambda
AWS Batch fait le travail en lançant des images docker, tandis que le service suivant - AWS Lambda - vous permet d'exécuter le script directement. Vous n'avez pas besoin de configurer de serveur, le service code est exécuté virtuellement, et ce qui est encore mieux, c'est que vous pouvez également renvoyer une valeur de la manière que vous souhaitez.
Quand peut-on l'utiliser ? Disons que vous souhaitez effectuer certains calculs sur notre site web sur la base de paramètres provenant du navigateur, et peut-être qu'en plus, ces calculs nécessitent quelques requêtes supplémentaires à d'autres endroits sur le web. Dans ce cas, tout ce que vous avez à faire est de créer un endpoint dans Lambda, d'ajouter votre script et d'utiliser cet endpoint sur le site web. C'est très simple.
Les coûts Lambda sont comptabilisés uniquement lorsque le script est en cours d'exécution, lorsque le point de terminaison n'est pas utilisé, vous ne payez rien.
SNS
Simple Notification Service, comme son nom l'indique, est un outil spécialement conçu pour envoyer des notifications. Il peut être facilement utilisé pour la communication entre différents services AWS. Par exemple, vous avez un groupe de microservices et vous voulez que l'un d'entre eux dirige les autres - en démarrant certains d'entre eux ou en exécutant certaines actions. Dans ce cas particulier, vous pouvez envoyer une notification à partir du service principal et gérer la réception des messages dans d'autres microservices de votre choix. À propos, il convient également de mentionner le service Amazon Simple Queue Service (SQS), qui peut créer une connexion très intéressante avec SNS.
Dans le cas de SNS (ainsi que de SQS), le paiement n'est fourni que pour les demandes exécutées : envoi de messages à SNS, envoi de messages de SNS à d'autres services et autres demandes supplémentaires du pool API SNS.
RDS
Amazon Relational Database Service est une base de données externe. Grâce à ce service, AWS permet de configurer, d'utiliser et de faire évoluer facilement une base de données relationnelle. Par exemple, si vous prévoyez que votre base de données aura une taille considérable et qu'elle augmentera de plus en plus chaque jour, et si vous envisagez d'effectuer régulièrement des opérations plus ou moins complexes à l'aide de celle-ci, par exemple le traitement et la copie de données vers une autre base de données, cette solution vaut la peine d'être envisagée. Les moteurs de base de données disponibles sont PostgreSQL, MySQL et MariaDB.
Il est facile de deviner que les coûts de RDS sont liés à la taille de la base de données et à son utilisation, il est donc difficile de dire s'il sera très coûteux ou non.
Résumé
AWS est en constante évolution, qu'il s'agisse d'améliorer les services existants ou de créer quelque chose de nouveau. Il est préférable de se tenir au courant des innovations technologiques, mais aussi d'apprendre à connaître ce qui existe déjà.
Liens utiles