EC2 Hibernate 是什么
EC2 Hibernate休眠 是 AWS EC2 提供的一种实例状态管理功能。它与 Stop停止 和 Terminate终止 不同Hibernate 会保存内存RAM中的数据到 EBS 根卷再次启动时恢复内存内容让应用程序从暂停的位置继续运行而不是重新启动操作系统。一、一句话理解 Hibernate可以把 EC2 想象成你的笔记本电脑操作类比电脑结果Reboot重启电脑系统重新启动程序关闭Stop关机系统关闭重新开机后程序需重新启动Hibernate睡眠/休眠保存内存恢复后程序继续运行Terminate扔掉电脑实例被删除二、Stop、Hibernate、Terminate 对比EC2 Instance Running │ ┌───────────┼────────────┐ │ │ │ ▼ ▼ ▼Stop Hibernate Terminate1. Stop停止执行Instance State↓Stop InstanceAWS 会停止操作系统CPU 停止RAM 内容丢失EBS 保留重新启动后Linux Boot↓启动所有服务↓登录所有程序需要重新运行。2. Hibernate休眠执行Hibernate InstanceAWS 会RAM↓保存到 Root EBS↓EC2 关闭重新启动时Root EBS↓恢复 RAM↓继续运行程序保持原来的状态。例如你打开IntelliJChromePythonMySQLHibernate 后再次启动IntelliJChromePythonMySQL仍然保持原来的状态。3. Terminate终止执行Terminate结果EC2 删除如果 Root EBS 设置为Delete on Termination Yes那么Root Volume↓一起删除数据全部丢失。三、Hibernate 工作原理正常运行RAM16GB↓程序运行HibernateAWS 会RAM16GB↓写入 Root EBS例如Root EBS30GBRAM 文件16GB恢复Root EBS↓RAM↓继续运行所以Hibernate 的 Root EBS 必须足够大能够容纳内存镜像。四、Hibernate 的特点项目Hibernate操作系统不重新启动RAM保留CPU停止EBS保留Private IP保留Elastic IP保留Public IPv4自动分配Stop/Start 后仍可能变化若使用 Elastic IP 则保持不变实例 ID保留五、什么时候适合 Hibernate例如机器学习训练PyTorchTensorFlow训练了8 小时需要暂停。Hibernate恢复继续训练。IDE 开发环境例如VS CodeIntelliJDockerNodeJava不用重新打开。长时间初始化的应用例如OracleSAP大型 Java 服务启动20 分钟Hibernate恢复几分钟内即可继续工作。六、Hibernate 的要求并不是所有 EC2 都支持 Hibernate。一般需要满足支持 Hibernate 的实例类型EBS Root Volume不能是 Instance StoreRoot Volume 加密通常推荐启用AMI 支持 Hibernate如 Amazon Linux、Ubuntu 的部分版本Root EBS 容量足够保存 RAM 内容AWS 官方维护支持 Hibernate 的实例类型和系统列表。(docs.aws.amazon.com)七、创建 EC2 时启用 Hibernate创建 EC2Launch Instance展开Advanced Details找到Enable Hibernate勾选Enable启动即可。如果这里是灰色说明当前Instance TypeAMI不支持 Hibernate。八、如何 Hibernate进入EC2Instances选择实例。点击Instance State选择Hibernate InstanceAWS保存 RAM。关闭 EC2。九、恢复 Hibernate点击Start InstanceAWS恢复 RAM。继续运行。例如登录后Chrome还是打开Java继续运行Python继续运行十、Hibernate 与 Spot InstanceSpot Instance如果Interruption Behavior设置HibernateAWS回收 Spot不会直接Terminate而是Hibernate以后Spot 可用。继续Resume十一、Hibernate、Stop、Terminate 对比功能StopHibernateTerminateCPU停止停止删除RAM❌ 丢失✅ 保留❌ 丢失EBS✅ 保留✅ 保留通常删除取决于卷设置Private IP✅ 保留✅ 保留❌ 删除Elastic IP✅ 保留如果已绑定✅ 保留如果已绑定❌ 与实例解除关联自动 Public IPv4Stop/Start 后可能变化恢复后可能变化若未使用 EIP❌ 删除Instance ID保留保留删除应用程序状态重新启动从暂停处恢复删除十二、面试高频问题Q1Hibernate 与 Stop 最大区别StopRAM 丢失操作系统重新启动HibernateRAM 保存到 EBS系统恢复后继续运行Q2Hibernate 数据保存在哪里保存在 Root EBS Volume 中。Q3Hibernate 会保留 Public IP 吗如果是 自动分配的 Public IPv4恢复后仍可能发生变化如果绑定的是 Elastic IP则会保持不变。最后一张图总结Running│ ┌─────────────┼─────────────┐ │ │ │ ▼ ▼ ▼StopHibernateTerminate│ │ │ RAM 丢失 RAM 保存到EBS 实例删除 系统重启 恢复后继续运行 数据删除 EBS 保留 EBS 保留RootEBS 通常删除一句话记忆Stop 关机。Hibernate 睡眠/休眠保存内存状态。Terminate 删除整台服务器。