我正在使用 AWS Elastic Beanstalk,可以轻松开始部署基于 Java 的 Web 应用程序,这非常棒。
但是,我想在本地每个实例上安装 Memcached,以便它们可以用于缓存,但似乎验证了 Elastic Beanstalk 的原理?
是否可以本地自动部署 memcached,并与 Elastic Beanstalk 的自动缩放功能一起使用?
(我知道我可以使用 Elastic Cache,但想节省一些钱,但仍然想利用自动扩展的优势)
谢谢。
答案1
自定义环境的可能性确实是AWS Elastic Beanstalk与其他 PaaS 产品相比:
大多数现有的应用程序容器或平台即服务解决方案虽然减少了所需的编程量,但大大削弱了开发人员的灵活性和控制力。[...] 但是,使用 Elastic Beanstalk,您可以完全控制支持应用程序的 AWS 资源。如果您决定接管其基础设施的部分(或全部)元素,您可以无缝地完成[...]
您所寻找的东西可以通过促进自定义 AMI启动环境后,您可以自定义其配置详细信息,其中包括实例使用的 AMI,如中所示配置服务器。虽然需要满足一些要求才能在 Beanstalk 中正确执行,但您基本上可以根据自己的心意定制这些 AMI,该过程记录在使用自定义 AMI(有关第三方解释,请参见如何自定义 Amazon Elastic Beanstalk 实例)。
但请注意以下含义:
重要的
在您自己的自定义 AMI 上运行后,您将不再收到操作系统、软件堆栈或 AWS Elastic Beanstalk 主机管理器的任何自动更新。
这意味着你需要自己跟踪 AWS AMI 的演变,以确保应用程序的稳定性和安全性——这并不像现在那么容易,正如在Amazon AMI 产品生命周期问题最近紧跟 AWS 开发人员的步伐(最新 AMI)。
祝你好运!
答案2
您现在可以使用配置文件配置 AWS Elastic Beanstalk。这是创建和维护自定义 AMI 的替代方法。
http://docs.amazonwebservices.com/elasticbeanstalk/latest/dg/customize-containers.html
它目前支持 Tomcat 6/7、Python 2.6 和 Ruby 1.8.7/1.9.3。
答案3
如使用配置文件之前所写,创建一个文件:
./.ebextensions/myapp.config
内容如下:
packages:
yum:
memcached: []
container_commands:
01_memcached_start:
command: "service memcached restart"