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

Posted

技术标签:

【中文标题】将多个应用程序部署到私有子网上的 AWS LAMP 服务器【英文标题】:Deploying multiple apps to AWS LAMP server on a private subnet 【发布时间】:2015-04-10 22:01:38 【问题描述】:

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

    弹性豆茎。我创建了一个应用程序,并且可以成功部署到 var/www/html 目录。但是,似乎没有任何方法可以更改默认部署目录。例如,我更愿意部署到 /home/[用户目录]/[应用程序目录]。似乎也没有任何方法可以将不同的应用程序部署到不同目录中的同一环境。其中一些应用程序非常小,拥有自己的服务器/环境将是多余的。

    应用服务器本身位于 VPC 内的私有子网中,这需要我有一个中间人通过 SSH 连接到它。 DeployHQ 似乎无法处理中间人部署。

    我似乎找不到任何资源可以帮助我推送到可以访问应用程序服务器的 S3 实例(或中间人 EC2 实例),然后从 S3 设置某种自动部署到 EC2 应用服务器。

是否有一些我在这里没有看到的简单选项?我现在正在研究 AWSCodeDeploy,但想知道是否有人已经遇到过这个问题并有任何建议。

【问题讨论】:

【参考方案1】:

万一其他人遇到这种情况,我们决定将所有这些小项目放入一个存储库中。然后我们编辑了 httpd.conf 文件(类似于它在当前非 AWS 服务器上的方式),其中不同的域指向相应的目录。编辑后的 ​​httpd.conf 被放入项目 repo 根目录中的 .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 服务器托管多个域,并且仍然能够进行托管部署。如果有人有,我会全神贯注!

【讨论】:

以上是关于将多个应用程序部署到私有子网上的 AWS LAMP 服务器的主要内容,如果未能解决你的问题,请参考以下文章

AWS新用户入门学习必备知识

如何使用 mySQL 工作台连接到 AWS 私有子网 VPC 中的 RDS

SSH隧道通过Ubuntu堡垒到私有子网中的实例

一个 VPC 终端节点用于 AWS 中的多项服务

Kubernetes AWS EKS 负载均衡器未配置

在AWS上配置基本的VPC