AWS Lightsail 建站完整指南:从开机器到 HTTPS
Lightsail 是 AWS 里最像"传统 VPS"的产品:固定月费、包流量、控制台简单。缺点也明显——没有香港区,亚洲只有新加坡、东京、首尔、悉尼、孟买。
这篇按实际操作顺序走一遍,把我踩到的问题都标出来。
第一步:选对套餐
新加坡区的 Linux 套餐(2026 年 11 月价格):
| 套餐 | 内存 | CPU | 硬盘 | 月流量 | 价格 |
|---|---|---|---|---|---|
| nano | 0.5 GB | 2 vCPU | 20 GB | 1 TB | $5 |
| micro | 1 GB | 2 vCPU | 40 GB | 2 TB | $7 |
| small | 2 GB | 2 vCPU | 60 GB | 3 TB | $12 |
建站建议至少 micro:0.5GB 跑 nginx + PHP/Node 会频繁 OOM,而且 没有 swap 默认配置。
第二步:绑静态 IP(别跳过)
Lightsail 实例默认的"公网 IP"在停止再启动后会变。域名解析会因为 IP 变化而失效。
# 分配
aws lightsail allocate-static-ip --static-ip-name my-ip --region ap-southeast-1
# 绑定
aws lightsail attach-static-ip --static-ip-name my-ip \
--instance-name my-instance --region ap-southeast-1
分配免费,只要绑定在运行中的实例上就一直不收费。解绑后会按小时计费,记得删。
第三步:防火墙只开必要的端口
# 只放行 22(限定来源 IP)、80、443
aws lightsail put-instance-public-ports --instance-name my-instance \
--port-infos '[
{"fromPort":22,"toPort":22,"protocol":"tcp","cidrs":["你的IP/32"]},
{"fromPort":80,"toPort":80,"protocol":"tcp","cidrs":["0.0.0.0/0"]},
{"fromPort":443,"toPort":443,"protocol":"tcp","cidrs":["0.0.0.0/0"]}
]'
家宽 IP 会变。把 22 端口锁死在家里 IP 上,宽带一重播你就进不去了。稳妥做法:绑定一个固定的跳板,或者保留 Lightsail 控制台的浏览器版 SSH 作为后路。
第四步:加 swap(1GB 内存的救命设置)
sudo fallocate -l 2G /swapfile
sudo chmod 600 /swapfile
sudo mkswap /swapfile
sudo swapon /swapfile
echo '/swapfile none swap sw 0 0' | sudo tee -a /etc/fstab
echo 'vm.swappiness=10' | sudo tee /etc/sysctl.d/99-swap.conf
sudo sysctl -p /etc/sysctl.d/99-swap.conf
装系统包、跑 apt upgrade 的时候,1GB 内存很容易被 OOM killer 杀掉进程。加 2GB swap 之后基本不会了。
swappiness=10 是为了让系统优先用内存,只在压力大时才用 swap,避免无谓的磁盘 IO。
第五步:nginx + 证书
sudo apt update
sudo apt install -y nginx certbot python3-certbot-nginx
站点配置:
server {
listen 80;
server_name example.com;
root /var/www/site;
index index.html;
location / {
try_files $uri $uri/ =404;
}
}
启用后签证书,certbot 会自动改 nginx 配置并加上 301 跳转:
sudo ln -s /etc/nginx/sites-available/site /etc/nginx/sites-enabled/
sudo rm -f /etc/nginx/sites-enabled/default
sudo nginx -t && sudo systemctl reload nginx
sudo certbot --nginx -d example.com --agree-tos -m you@example.com --redirect -n
证书 90 天有效,certbot 装了 systemd timer 会自动续期,不用手动管。
第六步:域名解析
如果用 Cloudflare 代理(橙云),注意两个限制:
- 单文件超过 25MB 就别想放 Pages 了
- 免费版单个响应最大 100MB
下载站这种场景,把记录设成仅 DNS(灰云)直连源站更合适。
三个必须知道的收费细节
① 关机仍然收费
Lightsail 的"停止实例"只停计算资源,硬盘和静态 IP 照收。想真正停费用必须 删除实例(先拍快照)。
② 流量超额很贵
套餐内流量用完后按 $0.09/GB 计费。1TB 用完之后,再跑 100GB 就是 $9——比套餐本身还贵。
③ 快照另算
自动快照默认关闭,手动快照按 $0.05/GB/月计费。删实例之前拍一个,重启后再删,是最省的重装方案。
成本对比:为什么不直接用 EC2
同样 1GB 内存:
| Lightsail micro | EC2 t4g.micro(新加坡) | |
|---|---|---|
| 月费 | $7 | 约 $8.5 |
| 流量 | 含 2 TB | 不含,$0.085/GB |
| 建站总成本 | 约 $7 | 约 $8.5 + 流量费 |
跑 100GB 流量的话,EC2 要多花 $8.5,总成本翻倍。Lightsail 的"包流量"是它最大的优势。