No se puede SSH en la instancia de pila de AWS CloudFormation

9

Tengo un equilibrador de carga escalable configurado en este momento que se siguió principalmente de esta plantilla:

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

Después de ajustar la AWS::AutoScaling::AutoScalingGroup.CreationPolicy.ResourceSignal.Countclave a 0(básicamente permite que la pila se cargue sin recibir señales de éxito) pude cargar la pila y puedo ver todos los recursos disponibles.

Puedo ver el DNS público de las claves que se crean, pero no puedo SSH en la instancia.

Tengo un acceso SSH abierto a todos dentro de las reglas de mi instancia, puedo confirmar esto dentro de la consola de AWS.

También configuré una ruta para mi VPC como se recomienda en los documentos oficiales de AWS: https://aws.amazon.com/premiumsupport/knowledge-center/ec2-linux-ssh-troubleshooting/

Puedo ver que existen instancias, pero parece que me estoy restringiendo el acceso a alguna parte. Sin embargo, dentro de la consola AWS EC2, la configuración parece ser la misma que cuando puedo SSH en una instancia.

Aquí está mi plantilla JSON que estoy usando donde puede ver todas mis configuraciones, incluyendo mi VPC, subredes, grupos de seguridad, etc.: https://gist.github.com/dambrogia/e4cd93a64ae6f3a79d4a58d466f144f8

Recibo un error de tiempo de espera del siguiente comando: (mi id_rsaclave es válida dentro de ec2)

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

¿Cómo puedo SSH en mis instancias? Gracias de antemano por la ayuda!

domdambrogia
fuente
2
¡Felicitaciones por incluir su plantilla CFN real! Realmente ayuda :)
MLu

Respuestas:

11

El problema es que la plantilla CloudFormation crea un RouteTablecon la ruta predeterminada 0.0.0.0/0 apuntando correctamente a la IGW , sin embargo, no se asocia RouteTablecon sus subredes.

ingrese la descripción de la imagen aquí

Lo que debe hacer es agregar estas dos asociaciones de tabla de ruta a la plantilla:

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

Luego actualice la pila ...

ingrese la descripción de la imagen aquí

Y vuelva a verificar la tabla de ruta

ingrese la descripción de la imagen aquí

Ahora debería poder SSH a las instancias:

~ $ 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 ~]$ 

Espero que ayude :)

MLu
fuente
Gracias por lo tanto por la respuesta y explicación en profundidad. ¡Funcionó a las mil maravillas!
domdambrogia