2

Je crée par cloudformation un EFS dans un VPC, ce VPC contient quelques EC2 instances.Comment savoir combien de cibles de montage pour créer par CloudFormation

J'ai besoin de créer des cibles de montage pour chaque sous-réseau.

Ce modèle de cloudform peut être exécuté dans AWS accounts différent. Comment savoir comment meny Mount targets ressources à créer?

Je peux avoir un compte vpc 1 avec 3 subnets, un autre vpc compte 2 avec 2 subnets ...

Comment rendre le modèle générique de sorte qu'il va selon tous les environnements de compte?

"FileSystem" : { 
     "Type" : "AWS::EFS::FileSystem", 
     "Properties" : { 
     "FileSystemTags" : [ 
      { 
      "Key" : "Name", 
      "Value" : "FileSystem" 
      } 
     ] 
     } 
    }, 

    "MountTarget1": { 
     "Type": "AWS::EFS::MountTarget", 
     "Properties": { 
     "FileSystemId": { "Ref": "FileSystem" }, 
     "SubnetId": { "Ref": "Subnet1" }, 
     "SecurityGroups": [ { "Ref": "MountTargetSecurityGroup" } ] 
     } 
    }, 

    "MountTarget2": { 
     "Type": "AWS::EFS::MountTarget", 
     "Properties": { 
     "FileSystemId": { "Ref": "FileSystem" }, 
     "SubnetId": { "Ref": "Subnet2" }, 
     "SecurityGroups": [ { "Ref": "MountTargetSecurityGroup" } ] 
     } 
    }, 

Répondre

0

Si je comprends bien, vous voulez pouvoir réutiliser ce même modèle dans les comptes et créer le nombre approprié de MountTargets en fonction du nombre de sous-réseaux requis par un compte.

De nombreuses variables et conditions s'appliquent en fonction du nombre de sous-réseaux (ACL, Routetables, etc.). Vous pourriez peut-être l'accomplir avec un grand nombre de conditions et de paramètres, mais le modèle deviendrait assez salissant. Bien que ce ne soit pas une solution élégante. La meilleure approche serait de créer votre modèle en utilisant troposphère. Voici un exemple pour EFS pour vous aider à démarrer. https://github.com/cloudtools/troposphere/blob/master/examples/EFS.py