如何在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

类似文章