跳至主要内容

使用 Amazon Lightsail 快速部署和运行 Python 应用程序

概述

Tag:Amazon Lightsail

难度:初级

时间:30 分钟

费用:免费套餐

受众:初学者,开发人员

前提条件:海外区域账户,账户类型为付费计划

示例代码:低代码

上次更新时间:2025 年 12 月 18 日

相关行业:通用

相关产品:Amazon LightsailEC2

教程简介

本教程将指导您使用 Amazon Lighsail 快速搭建一个基于 Flask 服务框架的 Python 应用程序。

第一步 注册账户和创建IAM用户

全部打开

    首先,您需要登录亚马逊云科技官网:aws.amazon.com注册一个新用户,作为您的根账户。账户注册过程请参见相关官方教程。

    创建账户后,以根账户身份登录管理控制台。
     

     

    在控制台搜素栏中,搜索关键字”iam”,用来访问 IAM 服务。

     

    进入到管理控制台,在左侧导航栏选择“用户”。

     

    点击“创建用户”。
     

     

    点击“下一步”完成创建用户。

第二步 创建和连接 Lightsail 实例

全部打开

    在管理控制台页面搜索服务”Lightsail”.

     

    进入到 Lightsail 控制台。

     

    点击页面中央“Create instance”(创建实例)。

     

    控制台页面显示“访问Lightsail可能出现了问题“。

    页面中提示两种可能性:

    1. AWS账户尚未完成注册。如需检查是否完成注册 ,可点击“Confirm your AWS registration”(确认您的AWS注册)以完成账户注册。
    2. 免费计划须升级。Lightsail服务仅包含在付费计划中,并包含90天免费试用,点击”Upgrade Plan”(升级计划)。付费计划同免费计划一样仍可享受免费套餐。

    点击“升级套餐”按钮。

    AWS账户完成套餐升级,点击“继续”。

    *注意:由于升级到付费套餐计划,因此,返回控制台主页面时,建议打开Cost Explorer(成本资源浏览器)。

    打开Cost Explorer控制台。

    创建预算,选择默认预算设置 – 使用模版(简化),按照默认“零支出预算”,输入预算名称,电子邮件收件人(多个邮件地址用逗号隔开)后,点击“创建预算”。

    显示“您的预算已成功创建。”等信息。

    此时,重新打开 Lightsail 控制台,点击“Create instance”(创建实例)。

    创建实例后,须选择实例镜像。

    选择平台按照默认的 Linux/Unix,在 Select a blueprint 部分,点击”Operating System (OS) only“(仅操作系统)。

    滚动到页面下方,在 Choose your instance plan (选择您的实例计划)列表,按照包月(Price per month)选择 $5 套餐。

     

    点击页面右下角“Create instance”(创建实例)按钮。

     

    创建完毕后,在实例列表里出现了刚刚命名过的新实例。
     

     

    在前面步骤中,点击“Connect using SSH”(用 SSH 连接)。

    通过 SSH 连接,在控制台页面打开运行的是 Amazon Linux 2023 终端窗口。

第三步 安装 Python 运行环境

全部打开

    由于配置了Amazon Linux 2023,因此,在连接打开的SSH终端中,须执行以下命令,从源代码安装Python最新版 3.14:

    $ sudo yum -y update
     

     

    这样,软件更新完毕!

    执行以下命令,以安装 dependencies (依赖项):

    sudo yum -y groupinstall "Development Tools"

    再执行以下命令:

    sudo yum -y install openssl-devel bzip2-devel libffi-devel
     

     

    执行以下命令:

    $ sudo yum -y install wget

     

    $ wget https://www.python.org/ftp/python/3.14.2/Python-3.14.2.tgz
     

     

    $ tar xvf Python-3.14.2.tgz
     

     

    $ cd Python-3.14.2/

    $ ./configure --enable-optimizations

    $ sudo make altinstall
     

     

    执行以下命令,验证 Python 3.14 完成安装:

    $ python3.14 –version

     

    终端显示 Python 版本为 3.14.2。

    为了让最新版本成为开机后 Python3 的默认版本,执行以下命令:

    $ echo 'alias python3="/usr/local/bin/python3.14"' >> ~/.bashrc

    $ echo 'alias python="/usr/local/bin/python3.14"' >> ~/.bashrc

    $ source ~/.bashrc

     

    执行以下命令,安装 Flask:

    $ python3 -m pip install flask

     

    终端显示 Flask 安装成功!

第四步 构建 Python Web 应用程序

全部打开

    准备好 Python 应用程序代码(Flask 驱动的 Web 应用程序);并在 SSH 终端中,执行文本编辑命令:

    $ nano app.py

    修改 Web 应用代码,优化如下:
     

     

    保存并退出 NANO 编辑器。

第五步 配置 Lightsail 防火墙规则

全部打开

    返回 Amazon Lightsail 控制台,打开创建的实例。

     

    选择页面下方选项卡“Networking”。

     

    在防火墙中添加规则。

     

    在 IPV4 Firewall 部分,点击”Add rule”(增加规则),选择 Application 下拉菜单“Custom”,Protocol 为“TCP”,Port or range(端口或范围)为”5000”,点击“Create”完成规则创建。
     

     

第六步 验证 Flask 应用程序

全部打开

    在 Amazon_Linux_2023_instance 创建的实例中,显示有 Public IPv4 address (即通常所说的IP地址),加上配置的防火墙规则(包括 TCP 协议和端口号 5000)。

     

    因此,打开 Chrome 浏览器,在地址栏输入IP地址加端口并访问 Web 页面。
     

     

    可以看到,访问公网 IP 地址时,显示页面内容“Hello! This is from Amazon Lightsail Python Application!” ,说明使用 Lightsail 实例成功构建了基于 Python 的 Web 应用程序!

第七步 Amazon Lightsail 和 EC2 横向对比

全部打开

    Amazon Lightsail 作为轻量级实例应用,与经典的 EC2(Elastic Compute Cloud,弹性计算云)有很多异同点,以下做个简要比较分析。

    两者最终均需输出一个应用示例,即在 Web 页面返回一行文本(仅举例):

    Hello from Flask Application!

    对比维度

    Amazon Lightsail

    Amazon EC2

    控制台入口

    独立 Lightsail 控制台

    EC2 通用控制台

    创建实例

    选择 Blueprint + 套餐

    选择 AMI + 实例类型

    网络配置

    自动完成

    需理解 VPC / 子网

    防火墙

    图形化端口规则

    Security Group 规则

    公网 IP

    自动分配

    自动或弹性 IP

    SSH 登录

    浏览器内置

    本地 SSH + Key

    必需 AWS 知识

    极少

    较多

    新手成功率

    很高

    中等

    步骤类别

    Lightsail

    EC2

    创建实例

    1 步

    5–6 步

    配置网络

    无需理解

    必须配置

    打开端口 5000

    Firewall(1 步)

    Security Group(多项)

    登录实例

    点按钮

    配 Key

    安装 Python/Flask

    相同

    相同

    编写 app.py

    相同

    相同

    应用监听配置

    0.0.0.0

    0.0.0.0

    验证公网访问

    Public IP

    Public IP

    总步骤数(约)

    ~11 步

    20–25 步

    项目

    Lightsail

    EC2

    说明

    Flask 代码

    相同

    相同

    完全一致

    Python 版本

    相同

    相同

    Ubuntu 官方源

    端口监听

    必须 0.0.0.0

    必须 0.0.0.0

    公网访问前提

    Linux 命令

    相同

    相同

    apt / pip

    TCP 行为

    相同

    相同

    网络原理一致

    结论:
    Lightsail 并没有“简化 Linux 或 Python”,而是简化了AWS 基础设施管理层

    对比项

    Lightsail

    EC2

    防火墙层级

    实例级

    实例级

    配置方式

    Firewall UI

    Security Group

    默认策略

    拒绝除 SSH 外

    拒绝除 SSH 外

    打开端口

    输入端口即可

    定义规则对象

    误配置概率

    排障复杂度

    中–高

    项目

    Lightsail

    EC2

    计费方式

    固定月费

    按资源

    流量

    包含额度

    单独计费

    存储

    含 SSD

    EBS 分离

    账单可预测性

    非常高

    教学成本控制

    极佳

    需解释

第八步 总结

全部打开

    本教程利用 Lightsail 进行高效部署和运行 Python 应用程序,实现了轻量级 Lightsail 快捷部署应用程序的详细步骤,对比 Lightsail 和 EC2,二者在运行“同一个 Flask 应用”的前提下有以下差别:

    • Lightsail 让学习者专注应用本身
    • EC2 要求学习者同时理解云基础设施