J'utilise AWS CLI et cloudformation, et je n'ai trouvé aucune référence dans la documentation.
Tout le monde sait s'il est possible de créer un modèle de cloudformation à partir d'une configuration actuelle.
Disons que je veux obtenir des modèles de cloudformation à partir de la configuration actuelle de mon groupe de sécurité.
Une idée s'il est possible d'exporter cette configuration en tant que modèle en utilisant la ligne de commande?
Cordialement.
Sur la base de notre expérience, nous avons trouvé 2 façons possibles de traduire les infra AWS existants déployés manuellement (depuis l'interface utilisateur de la console Web) en Cloudformation (CF).
aws cli
exécuter $aws service_name_here describe
pour chaque élément qui constitue votre pile, par exemple pour Pile de base de données RDS : Type: AWS::RDS::DBInstance
,Type: AWS::EC2::SecurityGroup
,Type: AWS::RDS::DBSubnetGroup
etType: AWS::RDS::DBParameterGroup
Et traduire manuellement en CF sur la base des sorties obtenues à partir du aws cli
pour chacun des composants. Cette approche nécessite généralement plus d'expérience à la fois dans AWS et CF, mais les modèles que vous créez peuvent être structurés et conçus selon de bonnes pratiques, entièrement paramétrés (Sub, Ref, Join, Fn::GetAtt:, Fn::ImportValue
), modulaire, appliquant conditions
et dans une 1ère itération le résultat serait probablement proche de l'état final des modèles (exemples de référence intéressants: https://github.com/widdix/ aws-cf-templates / ).
Points supplémentaires! :)
Utilisation de Terraforming ( https://github.com/dtan4/terraforming ). Compte tenu de la nouvelle version de Terraform 0.12.0-beta2
(déjà pris en charge dans la version stable par terraform-provider-aws 2.7.0
), avec de nouvelles fonctionnalités et sa syntaxe plus conviviale, et sans ignorer qu'il s'agit d'un outil open source et d'un fournisseur de cloud agnostique, je n'écarterais pas la possibilité de générer du code Terraform basé sur les infra AWS existants, si possible sous la forme de modules et sous-modules ayant comme référence -> https://registry.terraform.io/ comme alternative à AWS CF.
Quelques autres nouvelles alternatives pour exporter votre infra AWS déployée actuelle vers le code Cloudformation/Terraform:
Il n'est pas possible d'utiliser l'AWS CLI, mais vous pouvez utiliser l'outil CloudFormer [1] pour créer un modèle CloudFormation à partir de ressources existantes. J'ai eu un succès décent avec ça. Les modèles ne sont pas aussi "jolis" que les modèles faits à la main mais ils fournissent un bon point de départ.
En plus de CloudFormer, vous voudrez peut-être jeter un œil à Bellerophon: https://github.com/arminhammer/bellerophon .
CloudFormer est actuellement en version bêta. Nous vous déconseillons de l'utiliser dans des environnements critiques ou de production - à partir de la documentation AWS