测试 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 的迁移命令