我已经在弹性beanstalk中设置了一个服务器。在需要时,它应该将实例数从1增加到最多4.然而,我有一个潜在的怀疑,当它启动一个实例未能正确配置的新实例时,因为我无法根据{{3}}安装适用于Python的mySQL模块,无需ssh进入实例并手动设置它。
所以我的第一个问题是测试Elastic Beanstalk正确扩展的最佳方法是什么?如果启动了新实例,我怎样才能确定我看到的是新的实例,而不是手动配置的原始实例?
我的第二个问题是,如果这是我怀疑的问题,我该如何解决?我可以克隆"我的工作实例并在需要时成功复制它们?我该怎么做?
非常感谢,Alex
更新:在joker非常有用的建议之后,我将其添加到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实现相同的功能。事实上,我最初在那里有它,它没有工作。
非常感谢小丑。
答案 0 :(得分:4)
亚历,
我认为你的怀疑是正确的。您对正在运行的EC2实例所做的任何配置更改都不会自动显示在新实例上。
关于你的第一个问题:
测试系统在多服务器环境中的工作方式的最简单方法可能是更改Elastic Beanstalk AWS控制台“配置”部分的“自动缩放”部分中的参数Minimum instance count
。例如,将此参数设置为2。
(查看新服务器如何启动的另一种方法就是杀死当前的EC2实例。只需在正在运行的实例上选择操作Stop
。负载均衡器应检测到这一点,并自动部署新实例一旦健康从绿色转变为红色,就会为你服务。)
第二个问题:
问题的最佳选择是customize your AWS EB environment。创建.config
文件以设置所需的库并对新实例执行配置更改。