我阅读了文档,但仍然不明白。 AWS论坛需要时间来回答。这是我的情景:
我在EC2实例中有代码,但需要将实例加入缩放组。有一个已经创建,所以我刚加入我的,因为它是“未使用”。请稍后通知我的实例终止,我在实例中丢失了所有我的代码。只有缩放组中的原始实例才会自行维护。
现在我的问题:缩放是否应该有助于相同的服务性能?这是因为:
这意味着我可以通过SSH连接到一个,但如果我连接到另一个,那么会有相同的代码吗?
动态创建的实例不具备相同的安全组
原始实例(可以保存代码)如果替换为新实例(我不知道标准)也会关闭。因此,持有代码的人可以随时关闭......
因此,在尝试理解是否需要尝试恢复已终止的EC2实例并理解所有这些过程之间,我必须承认我很失落,因为没有什么能真正激发“只是增加流程能力”,所以我真的不喜欢我知道该怎么做。
答案 0 :(得分:5)
简短的回答。自动缩放使用水平缩放(添加更多实例)而不是垂直缩放(增加CPU /内存分配)
为了成功使用自动缩放,您需要使用无共享架构原则设计应用程序。实例本身不能存储持久性数据。相反,您可以将其存储在S3或其他不属于自动缩放组的实例上。
答案 1 :(得分:4)
很遗憾听到您丢失了有价值的信息。关于Auto Scaling的一件事是,实例可以被终止,所以它们的设计应考虑到这一点。
Auto Scaling的目的
Auto Scaling旨在动态调整自动缩放组中的实例数,以处理给定的计算/处理要求。当事情繁忙时可以自动添加实例,当事情不那么繁忙时可以终止实例。
Auto Scaling使用启动配置自动创建新实例,其中描述了要启动的实例类型,要使用的磁盘映像(AMI),安全组,网络设置,启动脚本等。当然,每个新实例都会收到自己的私有IP地址,并且(如果已配置)它自己的公共IP地址。
我们的想法是可以使用无需手动干预启动新实例,并且Auto Scaling组中的所有实例通常都配置相同(因为它们执行相同的工作)。
当不再需要实例时,该组将“按比例缩放”,表示实例已终止。实例上的所有数据都将丢失。 (实际上,磁盘可以在终止后保留,但是以后处理起来很麻烦,所以最好不要这样做。)
实例终止是可以的,因为当Auto Scaling启动新实例时可以轻松地重新创建实例。不幸的是,在您的情况下,您使用自己的配置向现有Auto Scaling组添加了一个实例。因此,确保您可以处理实例丢失将是您的责任。手动将实例添加到现有的Auto Scaling组是非常不寻常的 - 通常是将一些流量发送到测试实例或进行A / B试验。
为什么会终止?
Auto Scaling组附带的扩展策略可能决定您有太多容量(由于增加了实例数),因此决定终止实例。
恢复已终止的实例
您终止的实例无法“恢复”,但您的磁盘仍然可用的可能性很小。默认情况下,启动Amazon EC2实例时,引导磁盘标记为终止时删除,但其他磁盘在终止时默认为不删除。因此,如果您的代码位于非启动磁盘上,则它仍可在卷标签中使用。
但是,如果您的代码位于已删除的磁盘卷上,则内容无法恢复。 (好吧,如果你有支持,你可以问他们,但这不太容易,特别是如果删除后已经过去了。)