EFS 会在实例终止后维护文件吗?

Will EFS maintain files after instance is terminated?

我目前大量使用 cloudformation,并且我目前正在处理三个堆栈。第一个堆栈是我的负载均衡器堆栈,它基本上只有一个应用程序负载均衡器作为其资源。第二个堆栈只有一个资源:弹性文件系统。第三个堆栈是我的主堆栈,我在第一个堆栈中提到的负载均衡器后面有一个自动缩放组。该自动缩放组还将来自第二个堆栈的 EFS 安装到每个新实例上。如果我的自动缩放组要杀死一个不健康的实例,然后初始化一个新的实例来取代它,它会保留所有最初在旧 EFS 中的文件吗?

基本上,我只是想知道如果同一文件系统安装在不同的实例中,特定实例中 EFS 中的文件是否会保留。

除非您在新机器上使用与被毁机器相同的 EFS,否则您的文件不会丢失。

根据我的经验和EFS 网页上的描述,EFS 文件在EFS 终止之前不会丢失。由于它也用于容易丢弃环境的容器,因此它也适用于您基于 ELB 的架构。

"Amazon EFS is ideal for container storage providing persistent shared access to a common file repository" https://aws.amazon.com/efs/

Basically, I am just wondering if files in an EFS in a particular instance will remain if that same file system is mounted in a different instance.

是的。文件一直存在于 EFS 文件系统中,直到 a) 您通过已安装 EFS 目标的实例的文件操作删除它们,或 b) EFS 资源本身从控制台或 CLI 中删除。它们独立于任何实例。

正是这种持久性使 EFS 成为可共享的网络附加文件存储。它专为您的确切用例而设计。

请注意,作为安全预防措施,您应该考虑将 EFS 文件共享备份到另一个 EFS 文件共享,或同步备份到 S3。此备份未内置到服务中,但可以通过计划任务、Lambda 等添加。在我们的系统中,我每天启动一个计划实例,并将生产 EFS 与备份 EFS 同步。为了安全和冗余。