如何在EC2之间实现AWS EFS共享文件系统?
如果您正在使用多服务器应用程序环境,需要在多个服务器之间共享文件系统,则需要设置NFS(网络文件系统)。
NFS使您能够在多个服务器上共享文件系统,但是实施需要一些管理技能。
在传统的基础设施环境中,您可能需要涉及多个团队,并且需要一些时间来创建NFS。但是,如果使用AWS,您可以在几分钟内使用其(弹性文件系统)服务完成。
AWS EFS允许您创建可用于EC2的可扩展文件存储。您无需担心容量预测,因为它可以根据需求进行自动扩展或缩减。
下面是从AWS页面获取的快速说明,以帮助您了解它的工作原理。
EFS的一些优势包括:
- AWS完全管理。
- 低成本,按使用量付费。
- 高可用性和可靠性。
- 自动扩展或缩减。
- 可扩展性能。
我有两个正在运行的EC2 Ubuntu实例,在本教程中,我将创建一个EFS,然后将其挂载到两个EC2服务器上。
让我们开始吧。
- 登录到AWS控制台
- 转到服务,选择存储下的EFS。
- 单击“创建文件系统”。
- AWS将在可用区自动分配一个IP地址。如果需要更改,可以在下一屏幕上执行此操作。
- 如果需要,添加标签,并选择常规用途或最大I/O之间的性能模式。
- 查看配置,如果一切正常,则点击“创建文件系统”。
可能需要几秒钟,完成后,将显示成功消息。
成功!
您已创建文件系统。您可以使用安装了NFSv4.1客户端的EC2实例从中挂载文件系统。您还可以通过AWS Direct Connect连接从本地服务器挂载文件系统。
您将能够在列表中看到新创建的弹性文件系统。
这表明您已创建了EFS,并准备好将其挂载到EC2实例上。
在EC2上挂载EFS
在挂载之前,您需要安装NFS客户端。如果展开列表并单击“Amazon EC2挂载说明”,您将获得详细信息。
但是让我们看看具体情况。
- 登录到两个EC2实例并安装NFS客户端。我使用Ubuntu,因此我将使用以下命令。
apt-get install nfs-common
- 让我们创建一个要将EFS挂载到的文件夹。
示例:/apps
cd /
mkdir apps
使用说明中给出的命令挂载文件系统。
示例:
mount -t nfs4 -o nfsvers=4.1,rsize=1048576,wsize=1048576,hard,timeo=600,retrans=2 fs-4fd14a06.efs.us-east-1.amazonaws.com:/ apps
注意:如果挂载过程中遇到任何问题,请参考此链接,并确保检查安全组以确保以下内容。
- EC2实例入站规则中允许NFS端口(2049)
- EC2安全组允许EFS安全组
这将需要几秒钟的时间,如果执行df -h
命令,则会注意到/apps已被挂载。
root@ip-172-31-6-238:/# df -h | grep apps
fs-4fd14a06.efs.us-east-1.amazonaws.com:/ 8.0E 0 8.0E 0% /apps
root@ip-172-31-6-238:/#
现在,您需要登录到另一台服务器上,您希望在其中使用/apps,并重复创建文件夹并挂载EFS。
为了验证,我在另一台服务器上挂载了我的EFS,可以看到/apps在两台服务器上都可以访问。
root@ip-172-31-12-97:/apps# df -h | grep apps
fs-4fd14a06.efs.us-east-1.amazonaws.com:/ 8.0E 0 8.0E 0%
/apps root@ip-172-31-12-97:/apps#
这很简单,不是吗?
我尝试创建了一些文件,总体上性能看起来很好。AWS EFS看起来很有前途,如果您需要在EC2实例之间共享文件系统,请试试看,我相信您会喜欢它。
您对了解更多关于AWS的内容感兴趣吗?请查看这个Udemy course。