升级与备份你的部署

CoreNova Launch 的部署就是你 AWS 账号里的一个标准 CloudFormation 栈:一台 EC2 实例、一块加密 gp3 数据卷,以及跑在 Docker 里的应用。本页说明数据存在哪里、如何 保护它,以及升级到新验证版本是什么流程。

数据在哪里

应用的持久数据(文章、数据库、上传文件)都写在数据卷上——实例挂载的一块加密 gp3 EBS 磁盘,以固定路径挂进容器。栈的 Outputs 标签里有 InstanceId,需要到 EC2 控制台定位实例时用它。

两个值得记住的事实:

  • 停止实例不会丢数据。 再启动,应用照常恢复。
  • 删除栈会保留数据卷。 数据卷设置了 DeleteOnTermination: false, CloudFormation 终止实例时卷会留在你的 EC2 账户里。到 EC2 → 卷(找 corenova-data 标签)就能找到。删卷前先快照——卷一旦删除就没有软删除。

备份

两条互补的路子:

  1. EBS 快照(整卷)。 EC2 控制台 → 实例 → 选中栈的实例 → 操作 → 卷 → 创建快照。快照是增量的,底层存在 S3;恢复时从快照新建卷。它捕捉一切,包括 应用级导出覆盖不到的数据。
  2. 应用原生导出(建议叠加)。 多数应用自带导出功能——例如 Ghost 管理后台的 Labs → Export your content。应用级导出可迁移,能跟随你换任何基础设施。

对任何你在乎的数据,两个都做:快照是便宜的保险,应用导出才是真正搬得走的。

自动备份(AWS Backup)

手动快照没问题,但真正风险是忘了拍。AWS Backup 可以定时自动给数据卷拍快照:

  1. 打开 AWS Backup 控制台
  2. 创建备份计划(例如 "daily-30d-retention")。
  3. 按标签把计划关联到数据卷:在 EC2 控制台给卷打标签 corenova:app: <应用名>,然后在资源分配里匹配该标签。
  4. AWS Backup 会每天快照一次,保留 30 天。之后不用再管。

从备份恢复:在 EC2 控制台从快照创建新卷,挂到新实例的 /dev/sdf, 应用会从断点继续。

升级到新验证版本

新版本会持续在应用页面上验证发布。我们不做热替换——升级就是新栈、新版本

  1. 打开应用的版本历史页,找到新验证的版本。
  2. 点击该行的部署。部署深链按那个版本的已验证镜像 digest 钉住,新栈跑的 正是被验证过的内容。
  3. CloudFormation 以全新栈打开(换个栈名,例如 corenova-ghost-v2),等待 CREATE_COMPLETE
  4. 迁移数据:在新部署里走应用自带的导入/恢复路径(Ghost:Labs → Import)恢复 应用级导出;需要逐字节一致时,也可以把 EBS 快照恢复到新实例的卷上。
  5. 验证新部署没问题后,删除旧栈,它就不再计费。

一个版本一个栈的模型让升级变得无趣:旧部署原样跑着,直到你删它;升级失败的成本 也就是一次删除。

保护运行中的部署

部署向导支持终止保护——开启后实例会拒绝意外的终止操作,直到你显式解除保护。 它防的是手滑,不是删栈:对数据真正的保护,只有一份你验证过能恢复的备份。