AWS弹性Beanstalk部署


AWS Elastic Beanstalk Deployment

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

1( 我必须把我所有的PHP文件/文件夹保存在一个zip文件中并上传&部署

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

3( 我应该只在我的应用程序是最终版本时使用Elastic Beanstalk,并继续使用它之外的EC2实例以方便FTP和更改吗?

1( 我必须把我所有的PHP文件/文件夹保存在一个zip文件中并上传&部署

是的。但这是可以抽象掉的。我建议使用EB CLI。CLI只需键入eb deploy即可为您进行压缩、上载和更新。

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

目前弹性豆茎只支持全拉链。所以你每次都必须上传整个东西。EB CLI将用多个线程上传您的zip,除非您的网络连接速度较慢,否则不会花太长时间。话虽如此,我强烈建议您将所有图像和资产放在s3和cloudfront中,然后使用Ajax将它们加载到您的应用程序中。这将为你做两件事。

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

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

3( 我应该只在我的应用程序是最终版本时使用Elastic Beanstalk,并继续使用它之外的EC2实例以方便FTP和更改吗?

你的决定。但你应该知道,豆茎有很多围绕开发和推广生产而建立的特点。典型的弹性豆茎流是在局部进行发育。然后,一旦特性完成,就部署到开发环境中。测试它,确保它工作,然后签入。一旦您的应用程序处于生产状态,您就可以与生产环境(eb swap(进行cname交换,以实现零停机部署。

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

这对您来说是一个很好的来源:开发、测试和部署-Beanstalk

在这方面没有实际经验,但.NET插件能够进行增量部署,因此使用PHP很有可能做到这一点。(这样你就不会再上传所有的图片了。(

对于生产,我确实支持HABeanstalk设置,我将其用于.NET和Java环境。它为您提供了许多不错的功能,因此您不需要处理所有的操作细节。