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 应用程序版本

[AWS] Elastic Beanstalk

如何为我的 Elastic Beanstalk 单实例配置 SSL

AWS Elastic Beanstalk CLI 安装错误

使用 AWS Elastic Beanstalk / EC2 时如何查看服务器日志?我需要使用 SSH 吗?