Não é possível fazer o SSH na instância da pilha do AWS CloudFormation

9

Eu tenho um balanceador de carga escalável configurado agora, seguido principalmente deste modelo:

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

Depois de ajustar a AWS::AutoScaling::AutoScalingGroup.CreationPolicy.ResourceSignal.Countchave para 0(basicamente permite que a pilha seja carregada sem receber sinais de sucesso), consegui carregar a pilha e posso ver todos os recursos disponíveis.

Eu posso ver o DNS público das chaves que estão sendo criadas, mas não consigo fazer o SSH na instância.

Eu tenho acesso SSH aberto a todos dentro das regras da minha instância, posso confirmar isso no console da AWS.

Também configurei uma rota para minha VPC, conforme recomendado nos documentos oficiais da AWS: https://aws.amazon.com/premiumsupport/knowledge-center/ec2-linux-ssh-trou Troubleshooting/

Percebo que as instâncias existem, mas parece que estou me restringindo ao acesso em algum lugar. No entanto, no console do AWS EC2, as configurações parecem iguais às de quando consigo fazer o SSH em uma instância.

Aqui está o meu modelo JSON que estou usando, onde você pode ver todas as minhas configurações, incluindo minha VPC, sub-redes, grupos de segurança, etc.: https://gist.github.com/dambrogia/e4cd93a64ae6f3a79d4a58d466f144f8

Estou recebendo um erro de tempo limite do seguinte comando: (minha id_rsachave é válida dentro do ec2)

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

Como posso SSH em minhas instâncias? Obrigado antecipadamente pela ajuda!

domdambrogia
fonte
2
Polegares para cima, incluindo o seu modelo CFN real! Isso realmente ajuda :)
MLU

Respostas:

11

O problema é que o modelo CloudFormation cria um RouteTablecom a rota padrão 0.0.0.0/0 apontando corretamente para o IGW , no entanto, você não o associa às RouteTablesuas sub-redes.

insira a descrição da imagem aqui

O que você precisa fazer é adicionar essas duas associações de tabela de rota ao modelo:

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

Em seguida, actualizar a pilha ...

insira a descrição da imagem aqui

E verifique novamente a tabela de rotas

insira a descrição da imagem aqui

Agora você deve conseguir fazer o SSH para as instâncias:

~ $ 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 ajude :)

MLu
fonte
Obrigado assim muito para a resposta e explicação detalhada. Funcionou como um encanto!
Domdambrogia #