我现在已经设置了一个可扩展的负载均衡器,它主要遵循这个模板:
https://github.com/satterly/AWSCloudFormation-samples/blob/master/LAMP_Multi_AZ.template
AWS::AutoScaling::AutoScalingGroup.CreationPolicy.ResourceSignal.Count
将密钥调整为(基本上允许堆栈加载而没有收到成功信号)后0
,我能够加载堆栈,并且可以看到所有可用的资源。
我可以看到正在创建的密钥的公共 DNS,但是我无法通过 SSH 进入实例。
我已向实例规则内的每个人开放了 SSH 访问权限,我可以在 AWS 控制台中确认这一点。
我还按照官方 AWS 文档中的建议为我的 VPC 配置了一条路由:https://aws.amazon.com/premiumsupport/knowledge-center/ec2-linux-ssh-troubleshooting/
我可以看到实例存在,但似乎我在某个地方限制了自己的访问。然而,在 AWS EC2 控制台中,设置似乎看起来与我能够通过 SSH 进入实例时一样。
这是我正在使用的 JSON 模板,您可以在其中查看我的所有设置,包括我的 VPC、子网、安全组等:https://gist.github.com/dambrogia/e4cd93a64ae6f3a79d4a58d466f144f8
我收到以下命令的超时错误:(我的id_rsa
密钥在 ec2 中有效)
ssh -i ~/.ssh/id_rsa ec2-user@<ec2_instance>
我如何通过 SSH 进入我的实例?提前感谢您的帮助!
答案1
问题是 CloudFormation 模板RouteTable
使用默认路由创建0.0.0.0/0正确地指向政府间气候变化专门委员会,但是您没有将其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 ~]$
希望有帮助:)