私は今、スケーラブルなロードバランサーを設定していますが、これは主にこのテンプレートに従っています:
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コンソール内では、設定seemがインスタンスにSSH接続できる場合と同じように見えます。
VPC、サブネット、セキュリティグループなど、すべての設定を表示できる場所で使用しているJSONテンプレートを次に示します。 https://Gist.github.com/dambrogia/e4cd93a64ae6f3a79d4a58d466f144f8
次のコマンドからタイムアウトエラーが表示されます:(私のid_rsa
キーはec2内で有効です)
ssh -i ~/.ssh/id_rsa ec2-user@<ec2_instance>
問題は、CloudFormationテンプレートが、デフォルトのルート0.0.0.0/0がを正しく指すRouteTable
を作成することです。 [〜#〜] igw [〜#〜]、ただし、RouteTable
をサブネットに関連付けません。
必要なのは、これらの2つのRoute Table Associationsをテンプレートに追加することです:
"Subnet1RT":{
"Type" : "AWS::EC2::SubnetRouteTableAssociation",
"Properties" : {
"RouteTableId" : { "Ref": "RouteTable" },
"SubnetId" : { "Ref": "Subnet1" }
}
},
"Subnet2RT":{
"Type" : "AWS::EC2::SubnetRouteTableAssociation",
"Properties" : {
"RouteTableId" : { "Ref": "RouteTable" },
"SubnetId" : { "Ref": "Subnet2" }
}
},
次にスタックを更新します...
Route Tableを再確認します
これで、インスタンスに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 ~]$
それが役に立てば幸い:)