L'un des coûts les plus importants d'AWS est la bande passante. Elle est coûteuse, surtout si votre application dépend de la diffusion de contenu. La compression des images que vous diffusez peut réduire considérablement votre facture et vous faire économiser de l'argent sur les coûts de stockage.
Pourquoi réduire la taille?
Le moyen le plus simple de réduire la bande passante consiste à réduire la taille des objets que vous servez avec la compression et le codage. Cela peut également réduire vos coûts de stockage, ce qui peut vous faire économiser beaucoup d'argent au fil du temps. JPEG a une qualité intégrée dans la norme; Les JPEG encodés à environ 70% sont toujours nets et presque impossibles à distinguer de la qualité 100% (auquel aucun JPEG destiné à la distribution Web ne doit être encodé).
De plus, si vous permettez aux utilisateurs de télécharger leurs propres images et que vous ne les traitez pas d'une manière ou d'une autre, vous vous exposez aux abus des utilisateurs qui téléchargent plusieurs gigaoctets de photos gigantesques et ralentissent votre application.
AWS ne dispose pas d'outil intégré pour cela, vous devrez donc utiliser Lambda, Le service AWS pour exécuter du code en réponse à des déclencheurs sans provisionnement de serveurs. Si vous souhaitez également encoder la vidéo, AWS a un service pour cela, car il s'agit d'une tâche plus gourmande en ressources processeur.
Commencer
Dirigez-vous vers le Console de gestion Lambda, puis cliquez sur "Créer une fonction".
Heureusement, il existe déjà une application prédéfinie sur le référentiel d'applications sans serveur Lambda qui peut gérer la compression d'image de base et est parfaite pour cette tâche. Sélectionnez "Parcourir le référentiel d'applications sans serveur".
Ensuite, recherchez "compresser" en Evanchiu
:
Cette application utilise se transforme, qui possède un compartiment S3 et le surveille pour les fichiers téléchargés. Lorsqu'un fichier est téléchargé, la fonction s'exécute, compresse l'image et la place dans un compartiment de destination.
Le bucket d'entrée est créé par la fonction, mais le bucket de sortie devra être créé à partir du Console de gestion S3:
Ensuite, de retour dans la console Lambda, entrez le nom de votre compartiment de destination dans les paramètres de l'application, puis donnez un nom au compartiment source qui sera créé. Assurez-vous que ne fait pas existent déjà, car l'application doit posséder le compartiment.
Vous pouvez spécifier ici la qualité JPEG. Alors que 70% environ devraient être un bon nombre, vous pouvez faire vos propres tests pour voir ce qui fonctionne le mieux pour votre application.
Cliquez sur «Déployer» et l'application devrait être opérationnelle. Dans quelques minutes, vous verrez le bucket source nouvellement créé appartenant à l'application. Si vous y importez une image, vous verrez rapidement l'image compressée créée dans le bucket de destination.
Si vous souhaitez modifier l'application ou ajouter vos propres fonctionnalités, vous pouvez le faire en cliquant sur l'onglet "Fonctions" à droite:
Ici, vous pouvez également modifier les déclencheurs qui provoquent l'exécution de la fonction et modifier les paramètres que vous avez définis lors de la création de la fonction.