Deploy Flask App to EC2¶
Web App 的基础概念¶
一个 Webapp 本质上就是一台将他的 http = 80, https = 443 端口向公网世界开放的电脑. 而在这台电脑上运行着一个 http 服务器. http 服务器的实现方式有非常多种, 简直数不过来.
在 flask 中使用的是 wsgi http server.
一个极简的运行在 EC2 上的 Flask Web 服务器¶
需要一个 VPC, 拥有一个 Public Subnet
在 Public Subnet 上启动一个 EC2, 最好使用 amazon linux, 因为 amazon linux 预装 python
给这个 EC2 配置 Security Group, 其中必须开放用于 HTTP 的 TCP 80 端口, 以及用于 SSH 的 TCP 端口
SSH 到你的虚拟机, 先安装
pip
,flask
:
curl https://bootstrap.pypa.io/get-pip.py -o get-pip.py
sudo python get-pip.py
sudo pip install flask
然后创建一个
app.py
文件, 填入以下内容:
touch app.py
vim app.py
from flask import Flask
app = Flask(__name__)
@app.route('/')
def hello_world():
return 'Hello, World!'
用 flask 命令行启动服务器:
sudo flask run -h 0.0.0.0 -p 80
现在你可以从公网用浏览器访问这个网站了 http://ec2-111-111-111-111.compute-1.amazonaws.com