我想每天停止并重启我的AWS EC2实例。我可以通过API命令行界面停止它,但重新连接我需要获取新的DNS信息,以便我可以通过远程桌面连接。有没有办法重新连接不涉及通过EC2管理控制台?
答案 0 :(得分:1)
为实例分配Elastic IP地址,并始终通过该IP连接。
然后,您还可以使用指向该弹性IP地址的友好名称(例如myinstance.mydomain.com)设置DNS记录。
请注意,当您的实例停止时,为其分配一个预留的弹性IP地址需要支付一小笔费用 - 有关详细信息,请参阅https://aws.amazon.com/ec2/pricing/on-demand/#Elastic_IP_Addresses。
如果您正在使用route53进行DNS管理(或其他一些DNS主机服务,您可以使用它),您可以编写一个在启动实例时运行的脚本,该脚本会检测其当前的IP地址,并使用route53 api用实例新IP地址更新DNS记录。如果这样做,您需要考虑DNS传播时间,因此如果可能的话,我绝对建议采用弹性IP方法。
使用AWS CLI和以下命令获取实例的公共IP地址。请务必更改instance-id参数以匹配您自己的实例。
aws ec2 describe-instances --instance-id i-0a3bd317964ca45543 --query 'Reservations[0].Instances[0].PublicIpAddress'
例如,将其与SSH命令组合可能如下所示:
ssh ec2-user@`aws ec2 describe-instances --instance-id i-0a3bd317964ca45543 --query 'Reservations[0].Instances[0].PublicIpAddress' --output text` -i ~/my-key.pem