是否可以将 to/from EBS 存储复制到实例 up/down 上的本地实例存储?

Is it possible to copy to/from EBS storage to Local Instance Storage on instance up/down?

我们的工作负载极大地受益于极快的 IO 以及基于现有缓存的工作。 IO 工作负载的大小可能高达 100GB。我目前正在测试 EBS gp3 10k IOPS,这是可以接受的,但可能会更好。

Amazon 是否支持某种实例配置,我可以通过首先将 OS 和数据从 EBS 卷复制到临时本地实例存储来请求启动我的实例,然后再次退出我什么时候请求关机?

EC2提供了user data这样的特性——当一个实例在第一次启动时被创建,我们可以执行一些脚本,这些脚本是用户数据的一部分。这些脚本 运行 仅在首次启动时出现,以防实例停止并重新启动时,它们不会 运行。

创建实例时可以添加使用数据的脚本:

现在,停止实例和终止实例是有区别的。如果您停止实例,临时实例存储的内容不会丢失(更多信息:instance lifetime)。如果你终止一个实例,显然一切都消失了。 我正在澄清这一点。因为根据 AWS,无法保证在实例终止的情况下安全地复制数据 (source]:

If you run a script on instance termination, your instance might have an abnormal termination, because we have no way to ensure that shutdown scripts run. Amazon EC2 attempts to shut an instance down cleanly and run any system shutdown scripts; however, certain events (such as hardware failure) may prevent these system shutdown scripts from running.

为了保存实例存储的数据,解决办法是定期备份数据:https://aws.amazon.com/premiumsupport/knowledge-center/accidental-termination/

我认为你可能从一个比你需要的更复杂的角度来处理这个问题。

我认为您应该将 OS 留在 EBS 卷中,并为您的工作数据使用适当大小的实例存储卷。

也许 c5d.xlarge 是个不错的选择。

此外,您仍然需要考虑一种解决方案,以便在关机时可靠地将数据复制回持久性 (EBS) 存储...也许您可以制作一个在关机时运行的 systemD 服务,它只执行 rsync; 也许这会让您朝着正确的方向前进:https://medium.com/@benmorel/creating-a-linux-service-with-systemd-611b5c8b91d6

另外,如果您想要一个在每次启动时运行的启动脚本,这里有更多关于这样做的信息: https://aws.amazon.com/premiumsupport/knowledge-center/execute-user-data-ec2/

最后,要解决您的第一个问题“Amazon 是否支持某种实例配置,我可以通过首先将 OS 和数据从 EBS 复制到临时本地实例存储来请求启动我的实例音量,以及在我请求关机时再次退出?” 简答:否。