在 laravel 中部署 AWS Beanstalk 的模式

Posted

技术标签:

【中文标题】在 laravel 中部署 AWS Beanstalk 的模式【英文标题】:Pattern to deploy AWS Beanstalk in laravel 【发布时间】:2017-12-31 22:08:52 【问题描述】:

我一直在关注本指南:

https://deliciousbrains.com/scaling-laravel-using-aws-elastic-beanstalk-part-3-setting-elastic-beanstalk/

但是我被困在这一点上。

不是说某些东西不起作用,而是应该如何正确地完成它。我应该部署哪个应用?

是否是经过测试和部署的开发应用程序?我是否要在 AWS 中创建另一个仅用于部署就绪应用程序的实例?要遵循的模式是什么?

目前我有在我的 PC 上运行的本地开发服务器,以及 AWS 上的 1 个开发实例 EC2。除了 Elastic beanstalk 之外,我还需要更多吗?

请给我建议!谢谢!

【问题讨论】:

一个问题应该是自包含的,这意味着链接应该用作参考,而不应该是编写答案所必需的。这样做的原因是链接通常不可靠(它们会改变、变得不可用、依赖于可能在某个时候关闭的外部服务等) 【参考方案1】:

以下模式最适合您的需求。你不只是在寻找一种模式,而是一种架构。我会尽力帮助您处理您提供的信息。

首先,您必须真正了解 Beanstalk 是什么以及它是如何工作的。见:http://docs.aws.amazon.com/en/elasticbeanstalk/latest/dg/Welcome.html

回答您的问题,应用程序通常被放置在 beantalk 中以实现可扩展的生产,但也没有什么能阻止您设置开发环境以进行测试。

您无需创建实例即可部署,您可以使用控制台、cli 或 api 从自己的本地计算机进行部署。看:

控制台:https://sa-east-1.console.aws.amazon.com/elasticbeanstalk/home

EB Cli:http://docs.aws.amazon.com/en/elasticbeanstalk/latest/dg/eb-cli3.html

API:http://docs.aws.amazon.com/en/elasticbeanstalk/latest/api/Welcome.html

话虽如此,我将在几个案例中引用一个非常有用的场景:

您从控制台或 cli 创建 beanstalk 应用程序并配置与 AWS CodeCommit 的集成。 CodeCommit 将阻止您将整个项目发送到每个部署。

您创建一个亚马逊实例来执行植入。这个实例有一个项目的 git 存储库,它被提交到 beanstalk 环境设置(例如环境变量),并使用 CodeCommit 部署到 beanstalk。

此场景对于 beanstalk 的团队项目非常有用,因为您可以使用部署实例来隐藏敏感细节并配置部署模式。

【讨论】:

以上是关于在 laravel 中部署 AWS Beanstalk 的模式的主要内容,如果未能解决你的问题,请参考以下文章

Laravel AWS Elastic Beanslack 部署错误 - 内存不足错误

在 AWS Elastic Beanstalk 中部署后浏览 https 时,Laravel 资产、路由和 url() 不起作用

Laravel Passport:部署到 aws 后缺少密钥

AWS Beanstalk 使用 Grunt 任务部署 Laravel

使用 EbCommands 部署 Laravel Aws Elastic-Beanstalk

在 AWS Elastic Beanstalk 上部署 Laravel 8 后得到 404