测试AWS Elastic Beanstalk扩展

时间:2014-02-14 19:49:40

标签: python amazon-web-services mysql-python elastic-beanstalk

我已经在弹性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实现相同的功能。事实上,我最初在那里有它,它没有工作。

非常感谢小丑。

1 个答案:

答案 0 :(得分:4)

亚历,

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

关于你的第一个问题:

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

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

第二个问题:

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

祝你好运!