如何在AWS EC2 Linux / UNIX实例上部署Flask应用程序

时间:2020-07-04 16:21:50

标签: python amazon-web-services unix nginx flask

如何在AWS Linux / UNIX EC2实例上部署Flask应用。

无论哪种方式 1>使用Gunicorn 2>使用Apache服务器

1 个答案:

答案 0 :(得分:1)

这是绝对可能的,但这不是最快的过程!在部署它之前,您可能还想使用Docker来对Flask应用程序进行容器化,因此可以归纳为以下步骤:

  1. 安装Docker(如果没有),并为您的应用程序构建映像,并确保可以在本地启动容器,并且该应用程序按预期工作。您还需要编写一个Dockerfile来设置您的运行时,复制所有目录并暴露端口80(稍后将在AWS上使用)。

构建映像的命令为docker build -t your-app-name .

  1. 准备好部署容器后,转到AWS并使用Linux 2计算机启动EC2实例。您将需要创建一个安全密钥(.pem文件)并将其移动到计算机上的某个位置。这就像您登录实例的凭据一样。这取决于您使用的操作系统而有所不同。在Mac上,您需要CD进入密钥所在的目录,并通过运行chmod 400 key-file-name.pem修改其权限。在Windows上,您必须进入安全设置,并确保您的帐户(理想情况下为计算机的所有者)仅 可以使用此文件,基本上将其设置为私有。此时,您可以在命令提示符下单击单击EC2仪表板上的连接到实例时使用AWS给您的命令连接到实例。

  2. 登录后,可以配置实例以安装docker并通过运行以下命令来使用它:

sudo amazon-linux-extras install docker
sudo yum install docker
sudo service docker start
sudo usermod -a -G docker ec2-user

太好了,现在您需要使用SCP(安全传输协议)将所有文件从本地目录复制到实例。很长的路要用这个命令用于每个文件:scp -i /path/my-key-pair.pem file-to-copy ec2-user@public-dns-name:/home/ec2-user。另一种方法是安装FileZilla或WinSCP以加快此过程。

  1. 现在所有文件都在实例中,从第一步开始使用相同的命令构建docker容器并激活它。如果您转到AWS提供的URL,则您的应用程序应在AWS上运行!

这是我第一次进行此操作时所用的reference,这可能也对您有所帮助