我的客户将 AWS 用于他的 VPS。他遇到的一件事是,如果现场实例的出价高于他的出价,那么他的实例就会被终止。看起来没什么大不了的,只是现场实例不是持久的,所以每次发生这种情况时我们都必须从图像中恢复。
他想让我做的是写一些东西,每隔 X 时间检查一次终止的实例,并自动重新启动它们。更重要的是,他想要某种方式来假装“坚持”。我最好的想法是每隔 Y 时间从每个服务器创建一个映像,然后从该映像启动(如果/当该实例终止时)。
任何其他想法都会很高兴听到。我想我的问题是,我是否走在正确的轨道上,你们知道可能已经存在的任何解决方案吗?
更新:差不多一年后,我回到这里,发现所有这些精彩的回应以及对这个话题的更多关注,超出了我的预期。以下许多答案虽然内容丰富且很有帮助,但对我的推理提出了质疑。我想说的是,即使在那个时候,我也 100% 同意这不是一个明智的想法,而是我的客户所要求的,尽管我做了任何尝试,以使事情朝着更好的方向发展。
非常感谢大家的帮助。我最终确实弄清楚了如何做我想要的,并且能够编写一些自动重新启动终止实例的代码。这从来都不是一件容易的事,但当我转向一个新客户时,它运作良好。
祝你们任何有同样问题的人好运,你们正在(可能是通过武力,就像我的情况一样)做一些不容易的事情。Spot 请求更便宜,正如这里的一些人在他们的回复中提到的那样,特别是因为不提供持久性。否则,我想“现货请求”市场的定价会大不相同。
尽管如此,这是可能的,我做到了,这是一次很棒的经历。没有办法的时候,你必须伪造它!如果你不这样做,别人会。
更新二:我只想提醒大家,这是我的主要任务。虽然当时很多人都忽略了整个概念,但我最终得到了一个功能或多或少的 SaaS,它允许一个人轻松管理和监控所有的现场实例,包括启用/禁用自动持久重新启动的能力例如,为各个实例安排时间(应该或不应该启动它们)等。
虽然我完全同意,从开发人员的角度来看,这是一个不雅的要求,而且当时我不想这样做,但我仍然会说它在某种程度上很好,被要求努力工作,因为我不仅学到了很多东西,不仅对自己的能力和代码充满信心,而且还为我开发了一个非常有用且据我所知非常有价值的软件客户(即使他们要求错误的东西,因为他们不知道更好)。
我试图说服他不要这样做,但他坚持说,因为他是那个付钱的人,所以我把注意力集中在那里,不仅完成了这里许多人认为愚蠢的事情,而且还让它对某人有利可图。
要是这么傻,谁也省不了钱。
看,我现在读了这篇文章,有点畏缩。那我就天真多了。我更了解 AWS ,现在,我现在编码更好,等等。自然。
但我仍然为解决这个问题而感到自豪,特别是因为是这些年纪较大、经验更丰富、无疑是伟大的程序员告诉我不能或不应该这样做的人。是你们给我带来了挑战,所以谢谢你们!
如果可以盈利怎么办?你确定不应该吗?