选择您的 Cookie 首选项

我们使用必要 Cookie 和类似工具提供我们的网站和服务。我们使用性能 Cookie 收集匿名统计数据,以便我们可以了解客户如何使用我们的网站并进行改进。必要 Cookie 无法停用,但您可以单击“自定义”或“拒绝”来拒绝性能 Cookie。

如果您同意,AWS 和经批准的第三方还将使用 Cookie 提供有用的网站功能、记住您的首选项并显示相关内容,包括相关广告。要接受或拒绝所有非必要 Cookie,请单击“接受”或“拒绝”。要做出更详细的选择,请单击“自定义”。

教程:挂载来自其它 VPC 的文件系统

聚焦模式
教程:挂载来自其它 VPC 的文件系统 - Amazon Elastic File System

本文属于机器翻译版本。若本译文内容与英语原文存在差异,则一律以英文原文为准。

本文属于机器翻译版本。若本译文内容与英语原文存在差异,则一律以英文原文为准。

在本教程中,您将设置一个 EC2 实例来挂载位于其他虚拟私有云 (VPC) 中的 EFS 文件系统。您可以使用 EFS 挂载帮助程序执行该操作。挂载帮助程序是 amazon-efs-utils 工具集的一部分。有关 amazon-efs-utils 的更多信息,请参阅 安装 Amazon EFS 客户端

必须使用 VPC 对等连接或 VPC 传输网关连接客户端的 VPC 和 EFS 文件系统的 VPC。当您使用 VPC 对等连接或传输网关进行连接时 VPCs,一个 VPC 中的 EC2 实例可以访问另一个 VPC 中的 EFS 文件系统,即使 VPCs 它们属于不同的账户。

注意

不支持将 Amazon EFS 与基于 Microsoft Windows 的客户端结合使用。

先决条件

要完成本教程,您必须满足以下条件:

  • 在使用此过程之前,该amazon-efs-utils组工具已安装在 EC2 实例上。有关安装 amazon-efs-utils 的说明,请参阅安装 Amazon EFS 客户端

  • 下列情况之一:

    • EFS 文件系统所在的 VPC 和 EC2 实例所在的 VPC 之间的 VPC 对等连接。VPC 对等连接是两 VPCs者之间的网络连接。这种类型的连接使您能够使用私有 Internet 协议版本 4 (IPv4) 或 Internet 协议版本 6 (IPv6) 地址在它们之间路由流量。您可以使用 VPC 对等互连 VPCs 在同一个 AWS 区域 或两者之间 AWS 区域进行连接。有关更多信息,请参阅《Amazon VPC 对等连接指南》中的创建并接受 VPC 对等连接

    • 连接 EFS 文件系统所在的 VPC 和 EC2 实例所在的 VPC 的传输网关。传输网关是一个网络中转枢纽,可用于将您的网络 VPCs 和本地网络互连。有关更多信息,请参阅《Amazon VPC Transit Gateway 指南》中的开始使用中转网关

步骤 1:确定挂载目标的可用区 ID

为确保文件系统的高可用性,我们建议您始终使用与 NFS 客户端位于同一可用区的 EC2 挂载目标 IP 地址。如果要挂载其他账户中的 EFS 文件系统,请确保 NFS 客户端和 EFS 挂载目标位于相同的可用区 ID 中。此要求适用,因为可用区名称在账户之间可能会有所不同。

确定 EC2 实例的可用区 ID
  1. Connect 连接到您的 EC2 实例。有关更多信息,请参阅 Amazon EC2 用户指南中的 Connect 到您的 EC2 实例

  2. 使用 describe-availability-zones CLI 命令确定 EC2 实例所在的可用区 ID,如下所示。

    [ec2-user@ip-10.0.0.1] $ aws ec2 describe-availability-zones --zone-name { "AvailabilityZones": [ { "State": "available", "ZoneName": "us-east-2b", "Messages": [], "ZoneId": "use2-az2", "RegionName": "us-east-2" } ] }

    可用区 ID 将在 ZoneId 属性 use2-az2 中返回。

步骤 2:确定挂载目标 IP 地址

现在您已经知道 EC2 实例的可用区 ID,现在可以检索位于相同可用区 ID 中的挂载目标的 IP 地址。

在同一可用区 ID 中确定挂载目标 IP 地址
  • 按以下所示,使用 describe-mount-targets CLI 命令在 use2-az2 可用区 ID 中检索文件系统的挂载目标 IP 地址。

    $ aws efs describe-mount-targets --file-system-id file_system_id { "MountTargets": [ { "OwnerId": "111122223333", "MountTargetId": "fsmt-11223344", =====> "AvailabilityZoneId": "use2-az2", "NetworkInterfaceId": "eni-048c09a306023eeec", "AvailabilityZoneName": "us-east-2b", "FileSystemId": "fs-01234567", "LifeCycleState": "available", "SubnetId": "subnet-06eb0da37ee82a64f", "OwnerId": "958322738406", =====> "IpAddress": "10.0.2.153" }, ... { "OwnerId": "111122223333", "MountTargetId": "fsmt-667788aa", "AvailabilityZoneId": "use2-az3", "NetworkInterfaceId": "eni-0edb579d21ed39261", "AvailabilityZoneName": "us-east-2c", "FileSystemId": "fs-01234567", "LifeCycleState": "available", "SubnetId": "subnet-0ee85556822c441af", "OwnerId": "958322738406", "IpAddress": "10.0.3.107" } ] }

    use2-az2 可用区 ID 中的挂载目标的 IP 地址为 10.0.2.153。

步骤 3:为挂载目标添加主机条目

现在,您可以在 EC2 实例/etc/hosts的文件中创建一个条目,将挂载目标 IP 地址映射到 EFS 文件系统的主机名。

为挂载目标添加主机条目
  1. 在 EC2 实例/etc/hosts的文件中添加一行表示挂载目标 IP 地址。该条目使用 mount-target-IP-Address file-system-ID.efs.region.amazonaws.com 格式。使用以下命令,将该行添加到文件中。

    echo "10.0.2.153 fs-01234567.efs.us-east-2.amazonaws.com" | sudo tee -a /etc/hosts
  2. 确保 EC2 实例和挂载目标的 VPC 安全组具有允许根据需要访问 EFS 文件系统的规则。有关更多信息,请参阅 对 Amazon EC2 实例和挂载目标使用 VPC 安全组

步骤 4:使用 EFS 挂载帮助程序挂载您的文件系统

要挂载 EFS 文件系统,请先在 EC2 实例上创建挂载目录。然后,使用 EFS 挂载助手,您可以通过 AWS Identity and Access Management (IAM) 授权或 EFS 接入点挂载文件系统。有关更多信息,请参阅使用 IAM 控制文件系统数据访问使用 Amazon EFS 接入点工作

创建挂载目录
  • 使用以下命令创建用于挂载文件系统的目录。

    $ sudo mkdir /mnt/efs/
使用 IAM 授权挂载文件系统
  • 使用以下命令,通过 IAM 授权挂载文件系统。

    $ sudo mount -t efs -o tls,iam file-system-id /mnt/efs/
使用 EFS 访问点挂载文件系统
  • 使用以下命令,通过 EFS 访问点挂载文件系统。

    $ sudo mount -t efs -o tls,accesspoint=access-point-id file-system-id /mnt/efs/

现已挂载 EFS 文件系统,您可以使用以下过程对其进行测试。

测试 EFS 文件系统连接
  1. 使用以下命令将目录更改为您创建的新目录。

    $ cd ~/mnt/efs
  2. 创建子目录并将该子目录的所有权更改为您的 EC2实例用户。接下来,使用以下命令导航到该新目录。

    $ sudo mkdir getting-started $ sudo chown ec2-user getting-started $ cd getting-started
  3. 使用以下命令创建一个文本文件。

    $ touch test-file.txt
  4. 使用以下命令列出目录内容。

    $ ls -al

这样,将会创建以下文件。

-rw-rw-r-- 1 username username 0 Nov 15 15:32 test-file.txt

您也可以在 /etc/fstab 文件中添加条目以自动挂载文件系统。有关更多信息,请参阅 在现有 EC2 Linux 实例上启用自动挂载

警告

请在自动挂载文件系统时使用 _netdev 选项,它用于指定网络文件系统。如果_netdev缺失,您的 EC2实例可能会停止响应。出现该结果是因为,需要在计算实例启动其网络后初始化网络文件系统。有关更多信息,请参阅 自动挂载失败,并且实例没有响应

步骤 5:清理资源并保护您的 AWS 账户

完成本教程后,请执行以下步骤以清理资源并保护您的 AWS 账户。

清理资源并保护您的 AWS 账户
  1. 使用以下命令卸载 EFS 文件系统。

    $ sudo umount ~/efs
  2. 打开 Amazon Elastic File System 控制台,网址为https://console.aws.amazon.com/efs/

  3. 选择要从文件系统列表中删除的 EFS 文件系统。

  4. 对于操作,选择删除文件系统

  5. 永久删除文件系统对话框中,键入要删除的 EFS 文件系统的文件系统 ID,然后选择删除文件系统

  6. 打开 Amazon EC2 控制台,网址为https://console.aws.amazon.com/ec2/

  7. 在导航窗格中,选择安全组

  8. 选择您针对本教程向其中添加了规则的安全组的名称。

    警告

    不要删除您的 VPC 的默认安全组。

  9. 对于操作,请选择编辑入站规则

  10. 选择在添加的入站规则末尾的 X,然后选择保存

隐私网站条款Cookie 首选项
© 2025, Amazon Web Services, Inc. 或其附属公司。保留所有权利。