web-dev-qa-db-fra.com

Configuration d'AWS Export en tant que modèle de cloudformation

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.

15
paul

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).

  1. En utilisant 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 :
    • Instance RDS -> Type: AWS::RDS::DBInstance,
    • RDS (EC2) SG -> Type: AWS::EC2::SecurityGroup,
    • Groupe de sous-réseaux RDS -> Type: AWS::RDS::DBSubnetGroup et
    • Groupe de paramètres RDS DB -> Type: 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 / ).

  1. Utilisation de AWS CloudFormer :

Points supplémentaires! :)

  1. 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.

  2. Quelques autres nouvelles alternatives pour exporter votre infra AWS déployée actuelle vers le code Cloudformation/Terraform:

8
Exequiel Barrirero

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.

[1] http://aws.Amazon.com/developertools/646018034480568

14
jzonthemtn

En plus de CloudFormer, vous voudrez peut-être jeter un œil à Bellerophon: https://github.com/arminhammer/bellerophon .

6
ataylor

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

0
Vikramsinh Gaikwad