测试 AWS Elastic Beanstalk 扩展

Posted

技术标签:

【中文标题】测试 AWS Elastic Beanstalk 扩展【英文标题】:Testing AWS Elastic Beanstalk scaling 【发布时间】:2014-03-14 08:14:41 【问题描述】:

我在 elastic beanstalk 中设置了一个服务器。需要时,应该将实例数从 1 增加到最多 4。但是,我有一个偷偷摸摸的怀疑,当它启动一个新实例时,该实例将无法正确配置,因为我无法安装根据this question,用于 Python 的 mysql 模块,无需 ssh 进入实例并手动设置它。

所以我的第一个问题是测试 Elastic Beanstalk 是否正确扩展的最佳方法是什么?如果启动了新实例,我如何确定我看到的是新实例之一,而不是原来的手动配置的实例?

我的第二个问题是,如果这是我怀疑的问题,我该如何解决?我可以“克隆”我的工作实例并在需要时成功复制它们吗?我该怎么做?

非常感谢,亚历克斯

更新:在获得了小丑非常有用的建议后,我将其添加到了myapp.config 文件中:

container_commands:
    install_MySQL-python:
        command: /opt/python/run/venv/bin/easy_install MySQL-Python==1.2.3

如您所见,我遇到的问题是 MySQL-Python 无法正确安装 pip,我必须使用 easy_install。这意味着它不能通过用于所有其他 python 依赖项的requirements.txt 文件安装。将上面添加的命令放入我的 .ebextensions 文件夹中的配置文件中,这是在启动实例时完成的,我不必 ssh 进入每个单独的实例。

附带说明,您不必在上述命令中包含“sudo”,即使您在通过 ssh 实现相同功能时也这样做。事实上,我一开始就有它,但它没有用。

非常感谢小丑。

【问题讨论】:

【参考方案1】:

亚历克斯,

我认为你的怀疑是正确的。您对正在运行的 EC2 实例所做的任何配置更改都不会自动出现在新实例上。

关于你的第一个问题:

测试您的系统如何在多服务器环境中工作的最简单方法可能是更改 Elastic Beanstalk AWS 控制台的配置部分的自动缩放部分中的参数 Minimum instance count。例如,将此参数设置为 2。

(查看新服务器如何启动的另一种方法是简单地终止您当前的 EC2 实例。只需在您正在运行的实例上选择操作 Stop。负载均衡器应该检测到这一点,并自动为您部署一个新实例一旦健康状况从绿色转变为红色。)

还有第二个问题:

解决此问题的最佳选择是customize your AWS EB environment。创建一个.config 文件以设置所需的库并对新实例执行配置更改。

祝你好运!

【讨论】:

完美! .config 文件是要走的路。非常感谢。

以上是关于测试 AWS Elastic Beanstalk 扩展的主要内容,如果未能解决你的问题,请参考以下文章

AWS Elastic Beanstalk 和 JAVA_OPTS

AWS Elastic Beanstalk 中的 Laravel .env

AWS Elastic Beanstalk Rails Bundler 失败

在 AWS Elastic Beanstalk 上运行 Laravel 的迁移命令

Symfony 4 在 AWS Elastic Beanstalk 上运行

AWS Certificate Manager 和 Elastic Beanstalk:创建没有域名的 SSL