简介
Elastic File System(EFS)是 AWS 提供的一种全托管的文件存储服务。它提供了一个简单、可扩展且高度可用的共享文件系统,可以在多个EC2实例
之间共享数据
EC2 与 EFS 区别
在 Elastic Compute Cloud (EC2) 上,一个实例
可以连接多个EBS 卷
,这些卷可以用作该实例的附加存储设备。但是,每个EBS 卷
只能附加到一个EC2 实例
,不能同时附加到多个实例
每个EBS 卷
都是针对一个特定的EC2 实例
创建的,因此它只能与该实例关联。如果希望在多个实例之间共享数据,可以使用EFS 服务
,它是 AWS 提供的一种共享文件存储服务,允许多个EC2 实例
共享相同的数据
EFS 特点
- 共享文件系统:可以轻松地在多个
EC2 实例
之间共享文件,使多个实例可以访问和共享相同的数据 - 弹性扩展:是一个高度可扩展的存储服务,可以根据需要自动调整存储容量和性能,无需预配置
- 数据一致性:确保所有
EC2 实例
都可以看到相同的数据,并提供文件级别的一致性 - 多区域复制:可以选择将
EFS 文件系统
复制到不同的AWS 区域
,以增加数据的可用性和持久性 - 多协议支持:支持多种文件系统协议,包括
NFSv4
和SMB
(通过 AWS DataSync) - 安全性:可以与
VPC
进行集成,确保数据在虚拟私有云内得到保护 - 按使用量付费:采用按使用量计费的模式,只需支付您实际使用的存储容量
EC2 实例挂载 EFS
EFS 文件系统
是一个VPC
资源,它在VPC
内创建和管理。与EBS 卷
作为一种能直接附加到EC2 实例
的存储设备不同。因为EFS
是一种托管的网络文件系统,它需要在VPC
中创建和管理,并且需要将其关联到一个或多个子网
EC2 实例挂载 EFS 需要满足的条件
- 同一VPC: 确保
EC2 实例
和EFS 文件系统
在同一个VPC
- VPC子网:
EC2 实例
和EFS 文件系统
都在相同的VPC
子网中 - 安全组设置:
EC2 实例
和EFS 文件系统
都配置在允许相互通信的安全组内 - 网络访问控制列表 (Network ACL): 如果在VPC中使用了
Network ACL
,确保允许EC2 实例
和EFS 文件系统
之间的必要网络通信
所以,创建EFS 文件系统
首先需要指定一个VPC
,然后在这个VPC
下的所有子网都可以与EFS
关联,然后在创建EC2 实例
时就可以选择挂载已创建的EFS 文件系统
,而这个EC2 实例
的子网只要和EFS 文件系统
关联的任何一个子网对应,就可以访问EFS 文件系统
拓展
EC2 实例能在创建后再挂载 EFS 吗?
在 AWS 中,EC2 实例
与EFS 文件系统
的挂载是在实例启动时完成的,而不是在实例运行期间。如果在创建EC2 实例
时没有选择挂载EFS 文件系统
,那么在实例启动后是不能再挂载EFS
查询 EC2 实例和挂载的 EFS
目前在控制台,我并未找到在EC2 实例
下查找挂载的EFS
,或者在EFS 文件系统
下查找哪个EC2 实例
在使用。查阅文档,了解到目前仅支持通过指令来查询
EFS 支持配置只在一个区域使用,那还需要设置 VPC 吗?
EFS
是一种托管的网络文件系统,它在 VPC 中创建和管理。即使在同一个区域内使用EFS
,仍然需要在同一个 VPC
下创建EFS 文件系统
,并将其关联到一个或多个子网
以下是为什么需要VPC
来使用EFS
的原因:
- 安全性: 通过将
EFS 文件系统
与VPC
关联,可以控制哪些子网可以访问该文件系统。这提供了更好的安全性,确保只有授权的实例
可以挂载和访问文件系统 - 网络隔离: 使用
VPC
可以将EFS 文件系统
与其他资源隔离开来,以便更好地管理和控制资源之间的通信和访问 - 文件系统挂载: 将
EFS 文件系统
与VPC
关联后,可以在关联的子网上使用NFS 协议
挂载和访问文件系统。这样,位于同一个VPC
下的EC2 实例
可以共享和访问同一个文件系统
总结而言,尽管不需要跨区域使用EFS
,也仍然需要设置VPC
来创建和管理EFS 文件系统
,并与EC2 实例
进行关联,以实现数据共享和访问