首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >问答首页 >在亚马逊网络服务中,为了节省成本,在非办公时间关闭/启动所有开发人员EC2实例(使用动态IP )

在亚马逊网络服务中,为了节省成本,在非办公时间关闭/启动所有开发人员EC2实例(使用动态IP )
EN

Stack Overflow用户
提问于 2015-11-30 20:01:49
回答 3查看 65关注 0票数 0

有一个小要求,我有50个开发人员,使用EC2实例的开发任务,他们使用它来开发他们的本地ec2实例上的word新闻网站。目前,它们的EC2实例是全天候运行的,这增加了相关成本。如果我使用EC2CLI来关闭和启动他们的EC2实例,他们将失去他们的IP (因为我们使用的是动态IP,并且不想使用静态IP,因为它的开销很大)。它们将其IP映射到本地Windows7Hosts文件中的域名(例如:1.1.1.1 wwwname.examplesite.com)。

我们计划在非工作时间使用EC2命令行界面关闭他们的EC2实例,并在一天开始时再次自动启动它,但一旦我们再次启动它,IP将会更改,以及开发人员如何知道他们的IP。

任何关于这方面的意见都将受到高度赞赏。

EN

回答 3

Stack Overflow用户

发布于 2015-11-30 22:00:24

没有“一键方式”来做这个afaik,因为亚马逊并不是真的想让你这样省钱:)。

我使用AWS SDK为此编写了一个解决方案:基本上,它会定期轮询AWS的所有实例的公共主机名。当它找到它们时,它会将公共主机名注册到amazon Route 53 (DNS),并提供指向您选择的公共域名(您现在在windows主机文件中使用的域名)的CNAME链接。

它是动态域名系统的原理。几年来它一直运行得很好。祝好运

票数 0
EN

Stack Overflow用户

发布于 2015-12-01 07:04:35

很多时候,依赖IP地址实际上是不好的做法,因为它们可能会发生变化,就像你在回答中提到的那样。相反,您应该依赖DNS名称。

最好的解决方案是编写一个脚本,获取实例上的当前公共IP并更新DNS记录。这将是最有意义的路由53,因为它有一个很好的API。

您需要为每个员工分配自己的DNS名称,并且每个实例都需要知道与其相关的DNS名称(例如,在脚本、环境变量等中硬编码)。然后,您可以编写一个脚本,让它在每次实例启动时运行,并执行以下操作:

  1. 使用ChangeResourceRecordSets应用编程接口调用向http://169.254.169.254/latest/meta-data/public-ipv4 (EC2元数据服务,阅读更多here)提交一个HTTP请求,以获取instance
  2. Update的当前公共IP地址和路由53上的A记录。

使用AWS Lambda,您可以编写一个脚本来在特定时间停止所有实例,这要归功于this recent announcement。但是,如果您的员工工作到很晚,并且被他们的实例关闭中断,这可能会带来一些小问题。此外,我也不建议您在某个特定时间重新启动所有这些实例。如果只允许员工每天启动他们的实例,这将是一个更具成本效益的解决方案。如果5名员工请病假怎么办?如果他们不来工作,他们的实例将不会启动:)

票数 0
EN

Stack Overflow用户

发布于 2015-12-01 18:19:59

在开发人员机器上编写一个VB脚本怎么样?在windows7桌面启动时,他们的特定机器将启动,而在windows7桌面关闭时,可以调用VB脚本来关闭实例。或者有没有其他语言可以代替VB (我必须学习VB )。不能使用python,也不能安装python。

票数 -1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/33998193

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档