【发布时间】:2020-05-08 16:34:11
【问题描述】:
我正在尝试找出在 Amazon Web Service 上部署 Angular 应用程序的最佳方式。 我的应用程序已经运行良好,我将它托管在 VPS 上。我想将我的应用程序迁移到 AWS 上,但我不知道如何进行部署。
目前,由于我的应用也有一个 lumen 后端,我正在使用 composer 库 deployer 在服务器上部署我的应用。该脚本主要登录远程服务器,通过git pull 检索我的代码,编译并安装所需的所有依赖项,然后将符号链接更改为新版本,以便可以从网络访问。
使用这种方法,Angular App 在服务器上编译过来,可以使用大量 RAM 进行简单编译。由于这个原因,我最近不得不升级我的 RAM。
现在,我的问题是,我如何在 AWS 上部署我的应用程序?理想情况下,我想利用 AWS 的负载平衡功能,因此我需要更新后的应用程序的 AMI。我知道这可以使用 Amazon SDK 完成,但我不太确定这是要走的路。
目前,我的部署流程是:
- 将主文件签入新文件夹
- 安装依赖项
- 编译应用程序
- 使用
dist文件夹构建和AMI(不知何故) - 在 AWS 上上传该 AMI
- 通知我的实例使用新的 AMI 而不是当前的。
- 冲洗并重复 API。
我也担心这会因为实例重启而带来一些停机时间。
我可以使用我现在使用的相同机制在 EC2 实例上编译应用程序,但这意味着我只需要一个更大的实例来编译我的应用程序,这不是最优化的。
我也知道Amplify,但我从未使用过它,我不确定它是否能满足我的要求,因为我不是在寻找自动化部署。
我已经检查了一些答案,但它们并没有完全符合我的要求。
Deploying Angular App on AWS for practice
Deploying angular app to AWS Elastic beanstalk
【问题讨论】:
-
我认为使用 AWS Elastic beanstalk 有利于自动扩展和避免停机,因为它会自动处理部署。此外,您可能希望使用 docker 而不是 AMI。要部署 AMI 或 docker 映像,您可以使用 aws sdk。我使用它的方式是1)。构建泊坞窗图像,2)。推至 ECR 3)。推至 S3 4)。部署到 beantalk
-
@OronBen-David 这似乎是一个很好的选择。我不确定如何使用 docker 进行部署。我认为我仍然需要以这种方式进行研究,因为我还有一些问题。就像我是否部署我的
php-fpm容器一样。非常感谢您的建议 -
太棒了!祝你好运:)
标签: angular amazon-web-services