【问题标题】:Changes made via SSH WILL BE LOST if the instance is replaced by auto scaling如果实例被 Auto Scaling 替换,通过 SSH 所做的更改将丢失
【发布时间】:2019-10-27 08:23:00
【问题描述】:

我需要在我的弹性 beanstalk 创建的 EC2 实例上安装 gRPC PHP 扩展。我启用了自动扩展,当启动新的 EC2 实例时,我会丢失所有安装。

从文档中,我找到了两种解决方法:

  1. 创建一个实例并下载所需的所有内容并拍摄该实例的映像。并在 Elastic Beanstalk 环境中(在配置 -> 实例下)添加映像 ID(AMI ID)。自动缩放创建的每个新实例都将来自我提供的图像。这种方法对我从来没有用过。我在这里遗漏了什么吗?
  2. 在 .ebextensions 中编写一个配置文件,以便在启动新实例时自动安装所有必需的扩展。为此,我们需要根据 cloud.google.com/ 中的文档创建一个 yaml/json 文件php/grpc.

有人可以指导应该采取哪种方法吗?并帮助我创建 yaml/json 文件以自动执行 Auto Scaling 中所有实例的流程?

【问题讨论】:

  • 为什么 AMI 方法从来不适合您?
  • 当新实例被启动时,它仍然显示我安装 gprc 错误。

标签: amazon-web-services amazon-ec2 amazon-elastic-beanstalk


【解决方案1】:

根据 AWS 文档 here,要自定义您的 Elastic Beanstalk 环境,您应该使用 .ebextensions 配置文件。

创建.ebextensions 提供了完全自定义运行应用程序的实例和环境的能力,并使您的实例和环境的升级、更改和/或添加变得简单高效。

作为旁注,应避免通过 SSH 连接到 ElasticBeanstalk 实例并进行实例更改。您面临的自动缩放问题是一个原因,但另一个主要原因是对实例本身进行更改会导致实例状态与预期的 EB 状态不同步。如果状态不同步,后续部署将失败,因为 EB 预期的应用程序版本已经漂移。通过代码和.ebextensions 管理您的应用程序和环境可以消除此问题。

【讨论】:

    猜你喜欢
    • 2014-01-06
    • 2013-07-05
    • 2021-02-09
    • 1970-01-01
    • 2015-07-03
    • 2021-08-25
    • 1970-01-01
    • 2020-08-03
    • 1970-01-01
    相关资源
    最近更新 更多