dom*_*gia 9 load-balancing amazon-ec2 amazon-web-services amazon-cloudformation
我现在设置了一个可扩展的负载均衡器,主要遵循这个模板:
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>
Run Code Online (Sandbox Code Playgroud)
MLu*_*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" }
}
},
Run Code Online (Sandbox Code Playgroud)
然后更新堆栈...
并重新检查路由表
现在您应该能够通过 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 ~]$
Run Code Online (Sandbox Code Playgroud)
希望有帮助:)
| 归档时间: |
|
| 查看次数: |
1419 次 |
| 最近记录: |