Impossible de SSH dans l'instance de pile AWS CloudFormation

9

J'ai un équilibreur de charge évolutif configuré en ce moment qui a été principalement suivi à partir de ce modèle:

https://github.com/satterly/AWSCloudFormation-samples/blob/master/LAMP_Multi_AZ.template

Après avoir réglé la AWS::AutoScaling::AutoScalingGroup.CreationPolicy.ResourceSignal.Countclé sur 0(permet essentiellement à la pile de se charger sans aucun signal de réussite reçu), j'ai pu charger la pile et je peux voir toutes les ressources disponibles.

Je peux voir le DNS public des clés en cours de création, mais je ne peux pas SSH dans l'instance.

J'ai un accès SSH ouvert à tout le monde dans mes règles d'instance, je peux le confirmer dans la console AWS.

J'ai également configuré un itinéraire pour mon VPC comme recommandé dans les documents officiels AWS: https://aws.amazon.com/premiumsupport/knowledge-center/ec2-linux-ssh-troubleshooting/

Je peux voir que les instances existent, mais il semble que je me restreigne l'accès quelque part. Cependant, dans la console AWS EC2, les paramètres semblent être les mêmes que lorsque je suis capable de SSH dans une instance.

Voici mon modèle JSON que j'utilise où vous pouvez afficher tous mes paramètres, y compris mon VPC, sous-réseaux, groupes de sécurité, etc.: https://gist.github.com/dambrogia/e4cd93a64ae6f3a79d4a58d466f144f8

Je reçois une erreur de temporisation de la commande suivante: (ma id_rsaclé est valide dans ec2)

ssh -i ~/.ssh/id_rsa ec2-user@<ec2_instance>

Comment puis-je SSH dans mes instances? Merci d'avance pour l'aide!

domdambrogia
la source
2
Bravo pour inclure votre modèle CFN réel! Ça aide vraiment :)
MLu

Réponses:

11

Le problème est que le modèle CloudFormation crée un RouteTableavec la route par défaut 0.0.0.0/0 pointant correctement vers l' IGW , mais vous n'associez pas le RouteTableà vos sous-réseaux.

entrez la description de l'image ici

Ce que vous devez faire est d'ajouter ces deux associations de tables de routage au modèle:

        "Subnet1RT":{
            "Type" : "AWS::EC2::SubnetRouteTableAssociation",
                "Properties" : {
                    "RouteTableId" : { "Ref": "RouteTable" },
                    "SubnetId" : { "Ref": "Subnet1" }
                }
        },
        "Subnet2RT":{
            "Type" : "AWS::EC2::SubnetRouteTableAssociation",
                "Properties" : {
                    "RouteTableId" : { "Ref": "RouteTable" },
                    "SubnetId" : { "Ref": "Subnet2" }
                }
        },

Ensuite, mettez à jour la pile ...

entrez la description de l'image ici

Et revérifiez la table de routage

entrez la description de l'image ici

Vous devriez maintenant pouvoir SSH vers les instances:

~ $ ssh 54.209.123.119
Last login: Thu Nov  1 18:54:54 2018 from ...

       __|  __|_  )
       _|  (     /   Amazon Linux AMI
      ___|\___|___|

https://aws.amazon.com/amazon-linux-ami/2018.03-release-notes/
[ec2-user@ip-10-0-2-229 ~]$ 

J'espère que cela pourra aider :)

MLu
la source
Merci donc beaucoup pour la réponse et une explication approfondie. Ça a marché comme sur des roulettes!
domdambrogia