将多个应用程序部署到私有子网上的AWS LAMP服务器

时间:2015-02-10 18:24:05

标签: amazon-web-services deployment amazon-ec2 lamp

我正在将托管多个“apps”的内部服务器迁移到AWS。在内部服务器上,托管多个应用程序是通过httpd.conf与VirtualHosts和DocumentRoots完成的。我们目前使用Bitbucket和DeployHQ部署此服务器的修订版。创建新的部署策略是我正在努力的地方。以下是我遇到的问题:

  1. Elastic Beanstalk。我有一个已创建的应用程序,可以成功部署到var / www / html目录。但是,似乎没有任何方法可以更改默认部署目录。例如,我更愿意部署到/ home / [用户目录] / [app目录]。似乎也没有任何方法可以将不同的应用程序部署到不同目录中的相同环境中。其中一些应用程序非常小,拥有自己的服务器/环境会有点过分。

  2. 应用程序服务器本身位于VPC内的私有子网中,这需要我有一个中间人来SSH。 DeployHQ似乎无法处理中间人部署。

  3. 我似乎无法找到任何资源来帮助我推送到具有访问应用服务器的S3实例(或中间人EC2实例),然后从S3设置某种自动部署到EC2应用服务器。

  4. 我有没有看到一些简单的选项?我现在正在寻找AWSCodeDeploy,但想知道是否有人已遇到此问题并有任何建议。

1 个答案:

答案 0 :(得分:1)

如果有其他人遇到此问题,我们决定将所有这些小项目放入一个存储库中。然后,我们编辑了httpd.conf文件(类似于它在当前非AWS服务器上的方式),其中不同的域指向相应的目录。编辑好的httpd.conf放在项目仓库根目录下的.ebextensions文件夹中。此文件夹中还有一个名为01httpd.config的文件,其中包含以下内容:

container_commands: replace_config: command: "cp .ebextensions/httpd.conf /etc/httpd/conf/httpd.conf"

更多信息:http://docs.aws.amazon.com/elasticbeanstalk/latest/dg/customize-containers-ec2.html

虽然这有效,但最终我希望有一个更优雅的解决方案,允许一个未暴露于直接流量的EC2服务器托管多个域,并且仍然能够进行托管部署。如果有人有,我全都耳朵!