AWS Elastic Beanstalk部署

问题描述 投票:1回答:2

我目前正在Elastic Beanstalk之外运行一个EC2实例,其中包含一堆PHP文件/文件夹。 我希望这个应用程序位于Elastic Beanstalk中,因此我创建了一个新的Elastic Beanstalk环境,该环境自动启动了一个新的EC2实例。

1)我是否必须将所有PHP文件/文件夹保存在zip文件中并上传和部署?

2)如果我更改文件,是否必须重新压缩和上传(例如,没有FTP)? (这将是耗时的,因为我有500MB的图像)。

3)当我的应用程序是最终版本并且继续在其外部使用EC2实例以便于FTP和更改时,我是否应该仅使用Elastic Beanstalk?

php amazon-web-services amazon-ec2 amazon-elastic-beanstalk
2个回答
3
投票

1)我是否必须将所有PHP文件/文件夹保存在zip文件中并上传和部署?

是。 但这可以抽象出来。 我建议使用EB CLI 。 CLI只需输入eb deploy即可为您进行压缩,上传和更新。

2)如果我更改文件,是否必须重新压缩和上传(例如,没有FTP)? (这将是耗时的,因为我有500MB的图像)。

目前,弹性beanstalk仅支持完整的拉链。 所以你每次都要上传整件事。 EB CLI将使用多个线程上传您的zip,除非您的网络连接速度慢,否则不应该花费很长时间。 话虽如此,我强烈建议您将所有图像和资源放在s3和cloudfront中,然后使用Ajax将它们加载到您的app中。 这将为您做两件事。

  1. 您的应用程序版本(.zip文件)将相当小,因此部署将快速而轻松。
  2. 这些图像将加载您的最终用户更快

此外,值得注意的是,应用程序版本的最大允许大小为512M,因此如果添加任何图像,很快就无法部署。

3)当我的应用程序是最终版本并且继续在其外部使用EC2实例以便于FTP和更改时,我是否应该仅使用Elastic Beanstalk?

您的决定。 但是你应该知道beanstalk有很多围绕开发和推广的特性。 典型的弹性beanstalk流程将在本地进行开发。 然后,完成功能后,部署到开发环境。 测试它,确保它有效,然后办理登机手续。 一旦您的应用程序处于prod状态,您就可以使用prod环境( eb swap )进行cname交换,以实现零停机时间部署。


0
投票

您有多种方法可以将php应用程序部署到Elastic Beanstalk。 您可以使用AWS CLI。 (对于Java,您也可以将Eclipse与AWS插件一起使用,我不确定它是否也适用于PHP,但值得检查。)

这是一个很好的资源: 开发,测试和部署 - Beanstalk

没有亲身经验,但.NET插件能够进行增量部署,因此您有很好的机会使用PHP。 (因此您不会再次上传所有图像。)

为了生产,我真的支持HA Beanstalk设置,我将它用于.NET和Java环境。 为您提供了许多优秀的功能,因此您无需处理所有操作细节。

© www.soinside.com 2019 - 2024. All rights reserved.