AWS Elastic Beanstalk - 如何在同一个 ec2 实例中运行 php 和 nodejs
Posted
技术标签:
【中文标题】AWS Elastic Beanstalk - 如何在同一个 ec2 实例中运行 php 和 nodejs【英文标题】:AWS Elastic Beanstalk - how to run php and nodejs in same ec2 instance 【发布时间】:2015-07-16 10:03:48 【问题描述】:我正在使用 Elastic Beanstalk 部署根应用程序 (node.js),并且还想运行 node.js 应用程序需要在同一个 ec2 实例中调用的 php 代码。
当我连接到实例时,它会说:
此 EC2 实例由 AWS Elastic Beanstalk 管理。所做的更改 如果实例被自动缩放替换,通过 SSH 将丢失。 [...]
表示当我在/var/www/
文件夹(通过ssh连接)中添加php源时,如果实例发生变化,它将被删除。
我怎样才能在同一个实例 node.js 和 php 中运行?
【问题讨论】:
【参考方案1】:可能是这样的:
**
创建一个“.ebextensions/nodeinstall.config”文件
**
commands:
node_install:
cwd: /tmp
command: 'yum install -y nodejs --enablerepo=epel'
不久前我遇到了类似的情况,这对我有用。
来源: http://qpleple.com
【讨论】:
【参考方案2】:您可以探索基于 ECS 的多容器选项,以便在每个 beanstalk 环境中运行多个容器。
文档:
http://docs.aws.amazon.com/elasticbeanstalk/latest/dg/create_deploy_docker_ecs.html
http://docs.aws.amazon.com/elasticbeanstalk/latest/dg/create_deploy_docker_v2config.html
http://docs.aws.amazon.com/elasticbeanstalk/latest/dg/create_deploy_docker_ecstutorial.html
您希望两个应用在同一个实例上运行是否有特殊原因?
【讨论】:
我不能代表 james,但我希望做同样的事情,因为我们的后端是用 PHP 编写的,但我们希望迁移到 Node.js。通过同一个 API 网关运行两者将有利于测试并确保迁移是值得的。除非你能想出另一种方法来做到这一点...... 如果您打算使用 Elastic Beanstalk,我建议您创建两个独立的环境 - 一个使用 PHP 后端,另一个使用 Node.js 后端。您将为您的两个环境(或您的 ELB)中的每一个获得两个 URL。您可以设置两条 Route 53 记录,在您的两个环境中实现负载平衡。您可以使用加权记录来控制进入每个环境的流量。您可以根据权重选择每个环境中的实例数。在此处阅读有关加权记录集的更多信息:tinyurl.com/jgr9jwb以上是关于AWS Elastic Beanstalk - 如何在同一个 ec2 实例中运行 php 和 nodejs的主要内容,如果未能解决你的问题,请参考以下文章
在 laravel 中部署 AWS Beanstalk 的模式
Amazon Elastic BeanStalk 错误:无法创建 AWS Elastic Beanstalk 应用程序版本
如何为我的 Elastic Beanstalk 单实例配置 SSL