(AWS / EC2 / EBS)为什么根设备上的“终止时删除”默认为true?

时间:2014-07-15 19:21:25

标签: amazon-web-services amazon-ec2 amazon-ebs

在Amazon EC2上,当您使用EBS卷作为EC2实例的根设备时,"删除终止" flag默认为true,表示在销毁实例时将自动删除卷。

这有什么意义?

如果使用EBS而不是本地实例存储的主要好处是存储持久性,而不依赖于实例持久性,那么这不能完全破坏它的目的吗?

如果您不介意将根设备与实例一起销毁,为什么不使用本地实例存储,这样可以更便宜,更省力地创建/管理?

相关参考文献:

3 个答案:

答案 0 :(得分:9)

您可能只想启动/停止实例而不终止它并重新创建新实例。在这种情况下,您不希望实例上的数据恢复到初始AMI状态。您可以使用EBS支持的卷执行此操作,但不能使用临时存储。我知道我经常在测试启动和关闭脚本时循环实例,并在我不需要为不需要的周期付费时暂停它们。

这是关于serverfault的类似问题,其中包括重启,开始/停止和终止之间的差异:https://serverfault.com/questions/315123/difference-between-rebooting-and-stop-starting-an-amazon-ec2-instance

我认为对于许多人而言,在终止实例后,您希望删除支持的存储,而不仅仅是闲逛。如果要在没有实例的情况下保持状态,可以在终止之前拍摄快照或从正在运行的实例创建新的AMI。

答案 1 :(得分:7)

设置"终止时删除" flag为true是频繁自动缩放实例的首选方法。如果我们在每次缩小事件后手动检查和删除卷,那将是一场噩梦。在这种情况下,理想情况下,应用程序日志等任何有用数据都应存储在EBS之外(如syslog-ng,s3或日志记录解决方案,如Splunk,Loggly,Logstash等)。

但是对于标准实例(非自动缩放),将此标志设置为false是有意义的。

答案 2 :(得分:0)

将启动卷恢复到已知的良好状态是 AWS 最简单、最有效的恢复机制之一。 想想,“你有没有试过把它关掉再打开”……但每次都用一台新电脑。

我对设置 DeleteOnTermination=false 持谨慎态度,因为您现在已经打开了以前不必担心的磁盘状态相关问题的整个世界。最明显的-

  • 磁盘已满
  • 坏磁盘(是的,我知道它是虚拟的,但仍然......)
  • 损坏的文件
  • 由于摆弄等弄乱了启动顺序

基本上,任何导致实例想要终止的问题都有很大的可能性在重启后幸存下来(假设您保留了根 FS),除非它纯粹是内存问题,在这种情况下,重新启动应用程序而不是实例。

如果您将所需的一切都打包到 AMI 中,则启动时应该做的工作最少。如果你在启动时安装了大量的东西......好吧,那就是你的问题。自动缩放依赖于快速启动时间。 AMI 应该有尽可能多的启动过程。

相关问题