Un guide étape par étape pour créer et déployer une fonction Lambda économique pour la gestion des instantanés EBS
Bienvenue dans le monde du DevOps ! Aujourd'hui, nous allons nous plonger dans un projet passionnant d'optimisation des coûts qui s'attaque à un défi courant auquel sont confrontés les utilisateurs d'AWS : la gestion des instantanés EBS inutiles. Dans ce projet, nous allons créer un programme Python qui nettoie automatiquement :
Ce projet pratique est non seulement un excellent moyen de réduire vos coûts de stockage AWS, mais également une opportunité de renforcer votre compréhension de l'utilisation des ressources dans AWS. En cours de route, nous explorerons boto3, le SDK AWS pour Python, pour interagir avec les ressources AWS et les manipuler en fonction de nos besoins.
Commençons ce voyage pour automatiser les mesures de réduction des coûts et améliorer vos compétences DevOps !
Avant de nous lancer dans la construction de notre projet d’optimisation des coûts, assurons-nous que vous disposez des outils et des connaissances nécessaires. Voici ce dont vous aurez besoin :
aws configure
Cette étape configurera vos clés d'accès, votre région et votre format de sortie pour permettre une communication transparente avec les services AWS.
Une fois ces prérequis cochés, vous serez prêt à poursuivre le projet !
Le code source de ce projet est disponible dans mon dépôt GitHub :
? GitHub Repo : Optimisation des coûts du cloud AWS
Suivez ces étapes pour créer et configurer votre fonction Lambda :
Créer une fonction Lambda :
Ajouter le code :
aws configure
Déployer le code :
Augmenter le délai d'attente :
Testez la fonction :
Cette erreur se produit car la fonction Lambda ne dispose pas des autorisations requises, ce que nous aborderons à l'étape suivante.
Pour permettre à la fonction Lambda d'interagir avec les ressources EC2, nous devons ajouter des autorisations spécifiques à son rôle de service. Au lieu d'accorder un accès complet, nous suivrons le principe du moindre privilège pour garantir que la fonction dispose uniquement des autorisations dont elle a besoin. Suivez ces étapes :
Localisez le rôle de service :
Ouvrez le rôle de service dans IAM :
Créer une politique en ligne :
Examiner et attribuer la stratégie :
La politique des autorisations ebs ressemblera à ceci :
Une fois cette stratégie en ligne ajoutée, la fonction Lambda disposera de toutes les autorisations dont elle a besoin pour décrire et supprimer efficacement les instantanés, les volumes et les instances.
Une fois les autorisations en place, testons à nouveau la fonction à l'étape suivante !
Une fois les autorisations en place, il est temps de tester notre fonction Lambda à l'aide de scénarios réels. Suivez ces étapes pour voir comment la fonction fonctionne :
1. Premier cas d'utilisation : nettoyage des instantanés des instances supprimées
Créer une instance EC2 :
Créer un instantané :
Supprimer l'instance :
Une fois l'instantané prêt, terminez l'instance test-ebs. Cela laisse un instantané d'une instance inexistante, qui est désormais redondante.
Exécutez la fonction Lambda :
Vérifiez la suppression dans la section Snapshots du tableau de bord EC2.
2. Deuxième cas d'utilisation : nettoyage des instantanés des volumes supprimés
Créer un volume EBS :
Créer un instantané :
Supprimer le volume :
Une fois l'instantané prêt, supprimez le volume ebs. Cela laisse un instantané qui n'est attaché à aucun volume.
Exécutez la fonction Lambda :
En gérant avec succès ces deux scénarios, la fonction Lambda démontre sa capacité à identifier et à nettoyer les instantanés EBS redondants, ce qui permet de réduire les coûts et de rationaliser la gestion des ressources.
Félicitations ! ? Vous venez de créer une solution d'optimisation des coûts sur AWS à l'aide de Python et Lambda. Dans ce projet, nous avons exploré comment identifier et nettoyer les instantanés EBS redondants qui ne servent plus à rien, vous aidant ainsi à économiser sur les coûts du cloud tout en améliorant la gestion des ressources.
Voici un bref récapitulatif de ce que nous avons réalisé :
Ce projet met en évidence l'importance de l'optimisation des ressources dans un environnement cloud et vous offre une expérience pratique de l'automatisation des tâches AWS à l'aide de Python.
N'hésitez pas à personnaliser et à améliorer davantage cette fonction. Par exemple, vous pouvez configurer une règle CloudWatch pour déclencher la fonction périodiquement ou étendre la logique pour gérer des scénarios de nettoyage supplémentaires.
Merci de nous suivre et restez à l'écoute pour d'autres projets DevOps et cloud passionnants ! ?
? Pour un blog plus informatif, suivez-moi sur Hashnode, X(Twitter) et LinkedIn.
En attendant, bon apprentissage ! ?
Ce qui précède est le contenu détaillé de. pour plus d'informations, suivez d'autres articles connexes sur le site Web de PHP en chinois!