升级与备份你的部署
CoreNova Launch 的部署就是你 AWS 账号里的一个标准 CloudFormation 栈:一台 EC2 实例、一块加密 gp3 数据卷,以及跑在 Docker 里的应用。本页说明数据存在哪里、如何 保护它,以及升级到新验证版本是什么流程。
数据在哪里
应用的持久数据(文章、数据库、上传文件)都写在数据卷上——实例挂载的一块加密
gp3 EBS 磁盘,以固定路径挂进容器。栈的 Outputs 标签里有 InstanceId,需要到
EC2 控制台定位实例时用它。
两个值得记住的事实:
- 停止实例不会丢数据。 再启动,应用照常恢复。
- 删除栈会保留数据卷。 数据卷设置了
DeleteOnTermination: false, CloudFormation 终止实例时卷会留在你的 EC2 账户里。到 EC2 → 卷(找corenova-data标签)就能找到。删卷前先快照——卷一旦删除就没有软删除。
备份
两条互补的路子:
- EBS 快照(整卷)。 EC2 控制台 → 实例 → 选中栈的实例 → 操作 → 卷 → 创建快照。快照是增量的,底层存在 S3;恢复时从快照新建卷。它捕捉一切,包括 应用级导出覆盖不到的数据。
- 应用原生导出(建议叠加)。 多数应用自带导出功能——例如 Ghost 管理后台的 Labs → Export your content。应用级导出可迁移,能跟随你换任何基础设施。
对任何你在乎的数据,两个都做:快照是便宜的保险,应用导出才是真正搬得走的。
自动备份(AWS Backup)
手动快照没问题,但真正风险是忘了拍。AWS Backup 可以定时自动给数据卷拍快照:
- 打开 AWS Backup 控制台。
- 创建备份计划(例如 "daily-30d-retention")。
- 按标签把计划关联到数据卷:在 EC2 控制台给卷打标签
corenova:app: <应用名>,然后在资源分配里匹配该标签。 - AWS Backup 会每天快照一次,保留 30 天。之后不用再管。
从备份恢复:在 EC2 控制台从快照创建新卷,挂到新实例的 /dev/sdf,
应用会从断点继续。
升级到新验证版本
新版本会持续在应用页面上验证发布。我们不做热替换——升级就是新栈、新版本:
- 打开应用的版本历史页,找到新验证的版本。
- 点击该行的部署。部署深链按那个版本的已验证镜像 digest 钉住,新栈跑的 正是被验证过的内容。
- CloudFormation 以全新栈打开(换个栈名,例如
corenova-ghost-v2),等待CREATE_COMPLETE。 - 迁移数据:在新部署里走应用自带的导入/恢复路径(Ghost:Labs → Import)恢复 应用级导出;需要逐字节一致时,也可以把 EBS 快照恢复到新实例的卷上。
- 验证新部署没问题后,删除旧栈,它就不再计费。
一个版本一个栈的模型让升级变得无趣:旧部署原样跑着,直到你删它;升级失败的成本 也就是一次删除。
保护运行中的部署
部署向导支持终止保护——开启后实例会拒绝意外的终止操作,直到你显式解除保护。 它防的是手滑,不是删栈:对数据真正的保护,只有一份你验证过能恢复的备份。