Amazon ec2 单实例AmazonEC2

Amazon ec2 单实例AmazonEC2,amazon-ec2,amazon-web-services,Amazon Ec2,Amazon Web Services,我们正在单个EC2服务器实例上运行一个轻量级web应用程序,这很适合我们的需要,但我们想知道如果它出现故障,是否需要监视并重新启动它 我们有一个单独的非Amazon服务器,我们想用它来监视EC2,必要时启动一个新实例并关闭旧实例。我们所有的用户数据都在弹性存储上,所以我们不太担心丢失任何数据 我想知道是否有人有这样使用EC2的经验,特别是自动启动新实例的过程?我们可以从头开始创建一些东西,但似乎它应该是一个解决了的问题,所以我想知道是否有人有任何提示、链接、脚本、教程等可以分享 谢谢。您应该看看

我们正在单个EC2服务器实例上运行一个轻量级web应用程序,这很适合我们的需要,但我们想知道如果它出现故障,是否需要监视并重新启动它

我们有一个单独的非Amazon服务器,我们想用它来监视EC2,必要时启动一个新实例并关闭旧实例。我们所有的用户数据都在弹性存储上,所以我们不太担心丢失任何数据

我想知道是否有人有这样使用EC2的经验,特别是自动启动新实例的过程?我们可以从头开始创建一些东西,但似乎它应该是一个解决了的问题,所以我想知道是否有人有任何提示、链接、脚本、教程等可以分享

谢谢。

您应该看看它对的支持。我也会看看这篇文章以及关于。你也可能会发现这篇文章很有用。我做过类似的事情,但没有外部监控,节点会监控自身并在不再需要时关闭,然后在以后有更多工作要做时启动新节点。

作为补充点:

我们所有的用户数据都在弹性存储上,所以我们不太担心丢失任何数据

我强烈建议您定期将EBS(弹性块存储)快照到S3,如果您还没有这样做的话。

两点:

您必须备份Amazon EBS卷。 他们声称可靠性“更好”,但不是100%,它比S3的“12 9”耐久性低几个数量级。S3耐久性>>EBS耐久性。这是事实。EBS支持“快照”功能,该功能可以高效、增量地将存储备份到S3。此外,使用EBS快照,您只需支付压缩的增量,这通常远远小于分配的卷大小。在另一种生活中,我曾向像你这样的小客户发送过丢失量的电子邮件,他们“认为”EBS是“持久的”,并且只信任它一份关键任务数据库的副本。。。真让人心碎

您的问题:自动启动新实例 您提到的设计路径相对来说是未经探索的;这就是为什么。。。许多公司运行冗余的“热备盘”实例,其中第二个实例启动并运行。这允许在发生“故障”(可能是硬件或软件)时进行快速故障切换(秒)。“冷备盘”的问题是,很难让机器保持最新状态,并准备好从旧机器停止的地方重新启动。更重要的是,验证备件是否能够成功恢复生产服务是一件棘手的事情。硬件比未经测试的软件系统更可靠。测试测试。如果您还没有测试故障转移,那么它就不起作用

启动一个新的EBS实例的简单自动化非常简单,几乎微不足道。这只是一行bash脚本调用。最棘手的是上面的一切。这样的解决方案几乎意味着一个完全100%自动化的部署过程。这些都是特定于您的应用程序的。你的应用程序是否可以下载运行所需的所有数据(可能存储在S3中?)。您能否立即终止您的实例,并使用0.000个手动设置/安装步骤启动一个新实例

或者,您可能正在谈论一个场景,我将其称为“重新实例化EBS卷”:

  • EC2盒形模具(根卷为EBS)
  • 强制分离EBS卷
  • 使用EBS卷引导新的EC2实例
  • 。。。这基本上是有效的。哥特查斯:

    • 无法防止EBS故障,无论是总量损失还是可用性损失
    • 假设一切正常,恢复时间为O(分钟)
    • 您的服务需要配置为自动重新启动。如果Nginx没有运行,那么把盒子带回来是没有好处的
    • 您的DNS路由或其他服务或任何需要与IP地址更改保持一致的内容。这可以通过ElasticIP解决
    • 如何处理主机SSH密钥?相同的名称,新的主机密钥在收到主机密钥更改的强烈警告时会破坏基于SSH的自动化
    • 我没有证据证明这一点(除了看到它发生过一次之外),但我相信EC2/EBS已经自动地从EBS实例启动了

    再说一次,这里最难的部分在你的盘子里。您能否立即停止生产服务,并在新实例上可靠地启动它?如果是这样的话,故事的EC2部分是。

    您可以使用最小/最大/所需数量为1的自动缩放组。将实例放置在ELB后面,并让ELB健康节点计数触发自动缩放组。这允许您通过cloudwatch和ELB健康检查进行内置监控。任何时候出现问题,都可以使用自动缩放服务替换实例

  • 如果您没有勾选“防止意外终止”,您可能需要这样做
  • 即使您已禁用实例的“详细监视”,您仍应看到实例的“StatusCheckFailed”度量,您可以在该度量上配置报警(在CloudWatch仪表板中)
  • 您的应用程序(托管在不同的服务器上)应接收警报并使用AWS API(或CLI)启动实例
  • 因为您已经防止了意外终止,所以永远不需要生成新实例