如何实施 AWS EFS 在 EC2 之间共享文件系统?

在多服务器环境中使用 AWS EFS 实现文件系统共享

在多服务器应用程序架构中,当需要在多台服务器之间共享文件系统时,通常会考虑使用 NFS(网络文件系统)。

NFS 确实能够实现跨服务器的文件系统共享,但这通常需要一定的管理经验和技能才能有效实施。

在传统的基础设施环境中,部署 NFS 可能涉及多个团队的协作,并且耗时较长。 然而,如果您的环境基于 AWS 云服务,那么可以使用 AWS 提供的 EFS(弹性文件系统)服务,在几分钟内完成这项任务。

AWS EFS 提供了一种可扩展的文件存储解决方案,可以方便地与 EC2 实例配合使用。 它无需预先进行容量规划,因为它可以根据实际需求自动扩展或缩减。

以下简要说明来自 AWS 官方页面,帮助您了解 EFS 的工作原理:

EFS 的一些主要优点包括:

  • 完全由 AWS 进行管理,无需额外维护。
  • 按需付费,成本效益高,只为实际使用的资源付费。
  • 具有高可用性和持久性,确保数据安全可靠。
  • 能够自动扩展或缩减,以适应不断变化的需求。
  • 提供可扩展的性能,满足各种应用场景。

在本教程中,我将使用两个正在运行的 EC2 Ubuntu 实例,创建一个 EFS,并将它挂载到这两个 EC2 服务器上。

让我们开始吧!

  • 首先,登录您的 AWS 管理控制台。
  • 然后,转到“服务”,在“存储”类别下选择 “EFS” (直接链接)。
  • 点击“创建文件系统”按钮。

  • AWS 会自动在可用区中分配一个 IP 地址。如有需要,您可以在后续的设置页面更改。

  • 您可以根据需要添加标签,并选择通用型或最大 I/O 模式。

  • 检查配置信息,确认无误后,点击“创建文件系统”。

创建过程可能需要几秒钟。完成后,您将看到一个成功创建的消息。

恭喜!您已经成功创建了一个 EFS 文件系统。 您可以通过安装了 NFSv4.1 客户端的 EC2 实例挂载此文件系统。 此外,您还可以通过 AWS Direct Connect 连接从本地服务器挂载它。

您可以在列表中看到新创建的弹性文件系统。

至此,您已经完成了 EFS 的创建,接下来可以将其挂载到 EC2 实例上。

在 EC2 上挂载 EFS

在进行挂载之前,您需要在 EC2 实例上安装 NFS 客户端。 展开 EFS 控制台中的“Amazon EC2 挂载说明”部分,可以查看详细的挂载步骤。

接下来,我们将详细介绍如何操作:

  • 首先,登录您的两个 EC2 实例,并安装 NFS 客户端。 由于我使用的是 Ubuntu,我将使用以下命令:
apt-get install nfs-common
  • 接着,创建一个目录,用于挂载 EFS。

例如:/apps

cd /
mkdir apps

使用 EFS 控制台中提供的挂载命令来挂载文件系统。例如:

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)。
  • 在 EFS 安全组中,允许 EC2 安全组的流量访问。

挂载过程可能需要几秒钟。执行 df -h 命令后,您会看到 /apps 已经成功挂载。

[email protected]:/# df -h | grep apps
fs-4fd14a06.efs.us-east-1.amazonaws.com:/ 8.0E 0 8.0E 0% /apps
[email protected]:/#

现在,您需要登录到另一台需要访问 /apps 目录的服务器,并重复创建目录和挂载 EFS 的步骤。

为了验证,我在另一台服务器上也挂载了 EFS,并且可以看到 /apps 目录在两台服务器上都可以访问。

[email protected]:/apps# df -h | grep apps
fs-4fd14a06.efs.us-east-1.amazonaws.com:/ 8.0E 0 8.0E 0% /apps
[email protected]:/apps#

操作非常简单,不是吗?

我尝试创建了一些文件,整体性能表现良好。 AWS EFS 看起来很有前途,如果您需要在 EC2 实例之间共享文件系统,强烈建议您尝试一下,相信您会喜欢它的。

您是否有兴趣了解更多关于 AWS 的信息? 可以看看这个Udemy 课程

喜欢这篇文章吗? 欢迎分享!