[英]in AWS shutting down / starting all developers EC2 instance at non office working Hours for cost saving ( using Dynamic IP )
有一个小要求,我有 50 个开发人员,他们使用 EC2 实例来完成他们的开发任务,他们用它来在本地 ec2 实例上开发 word press 网站。 目前,他们的 EC2 实例全天候 24/7 运行,这增加了所涉及的成本。 如果我使用EC2CLI
关闭并启动他们的 EC2 实例,他们将丢失他们的 IP(因为我们使用动态 IP 并且不想使用 static IP,因为它成本很高)。 他们 map 他们 IP 到一个域名(例如: 1.1.1.1 wwwname.examplesite.com
)在本地 windows 7 主机文件。
我们计划在非工作办公时间使用 EC2 CLI 关闭他们的 EC2 实例,并在一天开始后再次自动启动它,但是一旦我们再次启动它,IP 就会改变,开发人员如何了解他们的 IP。
对此的任何投入将不胜感激。
没有“一键式”方式来执行此afaik,因为亚马逊并不真的希望您通过这种方式省钱:)。
我已经使用AWS开发工具包为此编程了一个解决方案:基本上,它会定期轮询AWS以获取所有实例的公共主机名。 找到它们后,它会将公共主机名注册到带有选择名称的公共域名(您现在在Windows主机文件中正在使用的域名)的CNAME链接到Amazon Route 53(DNS)上。
这是动态DNS的原理。 它已经工作好几年了。 祝好运
很多时候,依赖IP地址实际上是一种不好的做法,因为它们会像您在回答中所触及的那样不断变化。 您应该改为依靠DNS名称。
最好的解决方案是编写一个脚本,以获取实例上的当前公共IP并更新DNS A记录。 使用Route 53进行此操作最有意义,因为它具有不错的API。
您需要为每个员工分配自己的DNS名称,每个实例都需要知道与其相关的DNS名称(例如,在脚本中硬编码,环境变量等)。 然后,您可以编写一个脚本,使该脚本在每次实例启动时运行,并执行以下操作:
借助此最新公告 ,您可以使用AWS Lambda编写脚本以在特定时间停止所有实例。 但是,如果您的员工上班迟到,并因实例关闭而中断,则可能会带来一些小问题。 另外,我不建议您在特定时间再次启动所有这些实例。 仅允许员工每天启动实例将是一种更具成本效益的解决方案。 如果有5名员工生病怎么办? 如果他们不上班,他们的实例将无法开始:)
我可能会迟到,但如果其他人想要这样做,您可以使用 python 和boto3编写脚本。 这将使您能够:
如何在开发人员机器上编写VB脚本。 在Windows7桌面启动时,其特定计算机将启动,在Windows7桌面关闭时,可以调用VB脚本关闭实例。 还是我可以使用其他任何语言代替VB(必须学习VB)。 无法使用python或无法安装python。
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.