有一个小要求,我有50个开发人员,使用EC2实例的开发任务,他们使用它来开发他们的本地ec2实例上的word新闻网站。目前,它们的EC2实例是全天候运行的,这增加了相关成本。如果我使用EC2CLI
来关闭和启动他们的EC2实例,他们将失去他们的IP (因为我们使用的是动态IP,并且不想使用静态IP,因为它的开销很大)。它们将其IP映射到本地Windows7Hosts文件中的域名(例如:1.1.1.1 wwwname.examplesite.com
)。
我们计划在非工作时间使用EC2命令行界面关闭他们的EC2实例,并在一天开始时再次自动启动它,但一旦我们再次启动它,IP将会更改,以及开发人员如何知道他们的IP。
任何关于这方面的意见都将受到高度赞赏。
发布于 2015-11-30 22:00:24
没有“一键方式”来做这个afaik,因为亚马逊并不是真的想让你这样省钱:)。
我使用AWS SDK为此编写了一个解决方案:基本上,它会定期轮询AWS的所有实例的公共主机名。当它找到它们时,它会将公共主机名注册到amazon Route 53 (DNS),并提供指向您选择的公共域名(您现在在windows主机文件中使用的域名)的CNAME链接。
它是动态域名系统的原理。几年来它一直运行得很好。祝好运
发布于 2015-12-01 07:04:35
很多时候,依赖IP地址实际上是不好的做法,因为它们可能会发生变化,就像你在回答中提到的那样。相反,您应该依赖DNS名称。
最好的解决方案是编写一个脚本,获取实例上的当前公共IP并更新DNS记录。这将是最有意义的路由53,因为它有一个很好的API。
您需要为每个员工分配自己的DNS名称,并且每个实例都需要知道与其相关的DNS名称(例如,在脚本、环境变量等中硬编码)。然后,您可以编写一个脚本,让它在每次实例启动时运行,并执行以下操作:
使用AWS Lambda,您可以编写一个脚本来在特定时间停止所有实例,这要归功于this recent announcement。但是,如果您的员工工作到很晚,并且被他们的实例关闭中断,这可能会带来一些小问题。此外,我也不建议您在某个特定时间重新启动所有这些实例。如果只允许员工每天启动他们的实例,这将是一个更具成本效益的解决方案。如果5名员工请病假怎么办?如果他们不来工作,他们的实例将不会启动:)
发布于 2015-12-01 18:19:59
在开发人员机器上编写一个VB脚本怎么样?在windows7桌面启动时,他们的特定机器将启动,而在windows7桌面关闭时,可以调用VB脚本来关闭实例。或者有没有其他语言可以代替VB (我必须学习VB )。不能使用python,也不能安装python。
https://stackoverflow.com/questions/33998193
复制相似问题