我已经在弹性豆茎中设置了一个服务器。需要时,应该将实例数量从 1 增加到最多 4。但是,我有一个潜在的怀疑,当它启动一个新实例时,该实例将无法正确配置,因为我无法安装用于 Python 的 mySQL 模块,无需 ssh 进入实例并手动设置,按照这个问题 https://stackoverflow.com/questions/16621726/getting-peewee-to-work-on-elastic-beanstalk/16745255#comment32865467_16745255.
所以我的第一个问题是测试 Elastic Beanstalk 是否正确扩展的最佳方法是什么?如果启动新实例,我如何确定看到的是新实例之一,而不是原始的手动配置实例?
我的第二个问题是,如果这是我怀疑的问题,我该如何解决?我可以“克隆”我的工作实例并在需要时成功启动复制它们吗?我该怎么做呢?
非常感谢,亚历克斯
Update:在收到小丑的非常有帮助的建议后,我将其添加到myapp.config
file:
container_commands:
install_MySQL-python:
command: /opt/python/run/venv/bin/easy_install MySQL-Python==1.2.3
正如你所看到的,我遇到的问题是 MySQL-Python 无法正确安装pip
,我不得不使用easy_install
。这意味着它无法通过以下方式安装requirements.txt
用于所有其他 python 依赖项的文件。将上面添加的命令放入我的配置文件中.ebextensions
文件夹,这是在启动实例时完成的,我不必 ssh 到每个单独的实例。
作为旁注,你don't必须在上面的命令中包含“sudo”,即使您通过 ssh 实现相同的目的时也是如此。事实上,我一开始就把它放在那里,但没有用。
非常感谢小丑。
Alex,
我认为你的怀疑是正确的。您对正在运行的 EC2 实例所做的任何配置更改都不会自动显示在新实例上。
关于你的第一个问题:
测试系统在多服务器环境中如何工作的最简单方法可能是更改参数Minimum instance count
在 Elastic Beanstalk AWS 控制台的配置部分的自动缩放部分中。例如,将此参数设置为 2。
(查看新服务器如何启动的另一种方法是终止当前的 EC2 实例。只需选择操作Stop
在您正在运行的实例上。负载均衡器应该检测到这一点,并在运行状况从绿色转变为红色后自动为您部署一个新实例。)
第二个问题:
解决这个问题的最佳办法是自定义您的 AWS EB 环境 http://docs.aws.amazon.com/elasticbeanstalk/latest/dg/customize-containers.html。创建一个.config
文件来设置所需的库并对新实例执行配置更改。
祝你好运!
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)