Не удается подключиться по SSH к экземпляру стека AWS CloudFormation

9

У меня прямо сейчас настроен масштабируемый балансировщик нагрузки, который в основном следовал из этого шаблона:

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

После настройки AWS::AutoScaling::AutoScalingGroup.CreationPolicy.ResourceSignal.Countключа 0(в основном, позволяет загружать стек без получения сигналов об успешном завершении), я смог загрузить стек и увидеть все доступные ресурсы.

Я вижу общедоступный DNS создаваемых ключей, но не могу подключиться по SSH к экземпляру.

У меня есть открытый SSH-доступ ко всем в рамках правил моего экземпляра, я могу подтвердить это в консоли AWS.

Я также настроил маршрут для своего VPC в соответствии с рекомендациями в официальных документах AWS: https://aws.amazon.com/premiumsupport/knowledge-center/ec2-linux-ssh-trou устранение неисправностей/

Я вижу, что экземпляры существуют, но мне кажется, что я где-то ограничиваю доступ. Однако в AWS EC2 консоли, настройки , кажется , выглядеть так же , как когда я могу SSH в экземпляр.

Вот мой шаблон JSON, который я использую, где вы можете просмотреть все мои настройки, включая мой VPC, подсети, группы безопасности и т. Д .: https://gist.github.com/dambrogia/e4cd93a64ae6f3a79d4a58d466f144f8

Я получаю сообщение об ошибке тайм-аута от следующей команды: (мой id_rsaключ действителен в ec2)

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

Как я могу использовать SSH в своих экземплярах? Заранее спасибо за помощь!

domdambrogia
источник
2
Спасибо за включение вашего фактического шаблона CFN! Это действительно помогает :)
MLu

Ответы:

11

Проблема заключается в том, что шаблон CloudFormation создает RouteTableмаршрут по умолчанию 0.0.0.0/0, правильно указывающий на IGW , однако вы не ассоциируете его RouteTableсо своими подсетями.

введите описание изображения здесь

Что вам нужно сделать, это добавить эти две таблицы таблиц маршрутов в шаблон:

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

Затем обновите стек ...

введите описание изображения здесь

И еще раз проверьте таблицу маршрутов

введите описание изображения здесь

Теперь вы должны быть в состоянии SSH к экземплярам:

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

Надеюсь, это поможет :)

мМЕ
источник
Спасибо так много для ответа углубленного и объяснения. Оно работало завораживающе!
domdambrogia