有一个小要求,我有50个开发人员,他们使用EC2实例
开发任务,他们用它来开发当地ec2上的文字新闻网站
实例。目前,他们的EC2实例已全天候运行并且正常运行
增加成本。如果我使用EC2CLI
关闭并启动它们
EC2实例他们将失去他们的IP(因为我们使用动态IP而不是
想要使用静态IP,因为它成本很高)。他们将IP映射到域
在本地Windows 7主机文件中的名称(例如:1.1.1.1 wwwname.examplesite.com
)。
我们计划在非工作办公时间内关闭他们的EC2实例 使用EC2 CLI并在Day开始后再次自动启动它,但一旦我们完成 再次启动它,IP将发生变化,以及开发人员如何了解他们的IP。
对此的任何输入都将得到高度赞赏。
答案 0 :(得分:0)
没有“单击方式”可以做到这一点,因为亚马逊并不真的希望你这样省钱:)。
我已使用AWS SDK为此编写了一个解决方案:基本上,它会定期轮询AWS所有实例的公共主机名。当它找到它们时,它会将公共主机名注册到amazon Route 53(DNS),其中包含您所选择的公共域名(您现在在windows hosts文件中使用的域名)的CNAME链接。
这是动态DNS的原理。它已经好几年了。祝你好运
答案 1 :(得分:0)
很多时候,依靠IP地址实际上是不好的做法,因为它们会像您在答案中所提到的那样发生变化。您应该依赖DNS名称。
最好的解决方案是编写脚本获取实例上的当前公共IP并更新DNS A记录。使用Route 53进行此操作最有意义,因为它有一个很好的API。
您需要为每个员工分配他们自己的DNS名称,并且每个实例都需要知道与其相关的DNS名称(例如,在脚本中硬编码,环境变量等)。然后,您可以编写一个脚本,使其在每次实例启动时运行,并让它执行以下操作:
使用AWS Lambda,您可以编写一个脚本,以便在this recent announcement时在特定时间停止所有实例。但是,如果您的员工工作到很晚,并且被实例关闭而中断,这可能会带来一些小问题。此外,我不建议您在特定时间再次启动所有这些实例。这将是一个更具成本效益的解决方案,只允许员工每天启动他们的实例。如果5名员工生病了怎么办?如果他们不上班,他们的实例将无法开始:)
答案 2 :(得分:-1)
如何在开发人员计算机上编写VB脚本。在windows7桌面启动时,他们的特定机器会启动并在windows7桌面关机时,可以调用VB脚本来关闭实例。或者是否有任何其他语言我可以使用而不是VB(必须学习VB)。不能使用python或者无法安装python。