从另一个帐户或vpc安装EFS文件系统 - Amazon Elastic File System
AWS 文档中描述的 AWS 服务或功能可能因区域而异。要查看适用于中国区域的差异,请参阅中国的 AWS 服务入门

如果我们为英文版本指南提供翻译,那么如果存在任何冲突,将以英文版本指南为准。在提供翻译时使用机器翻译。

从另一个帐户或vpc安装EFS文件系统

您可以使用 EFS 挂载帮助程序,通过 NFS 客户端和 EFS 访问点的 IAM 授权来挂载您的 Amazon EFS 文件系统。默认情况下,EFS 挂载帮助程序使用域名服务 (DNS) 来解析您的 EFS 挂载目标的 IP 地址。如果要从其他账户或 Virtual Private Cloud (VPC) 挂载文件系统,必须手动解析 EFS 挂载目标。

下面,您可以找到确定要用于您的 NFS 客户端的正确 EFS 挂载目标 IP 地址的说明。您还可以找到有关配置客户端以使用该 IP 地址挂载 EFS 文件系统的说明。

安装使用 IAM 或其他VPC的接入点

使用 VPC 对等连接或中转网关连接 VPC 时,即使 VPC 属于不同的账户,一个 VPC 中的 Amazon EC2 实例也可以访问另一个 VPC 中的 EFS 文件系统。

Prerequisites

在使用下面的过程之前,请执行以下步骤:

  • 在客户端上安装 amazon-efs-utils 工具集。您使用EFS安装助手装载文件系统,安装助手是其中的一部分 amazon-efs-utils...如需安装说明 amazon-efs-utils,参见 使用 amazon-efs-utils 工具.

  • 设置 VPC 对等连接或 VPC 传输网关。

    可以使用 VPC 对等连接或 VPC 传输网关连接,连接客户端的 VPC 和您的 EFS 文件系统的 VPC。使用 VPC 对等连接或中转网关连接 VPC 时,即使 VPC 属于不同的账户,一个 VPC 中的 Amazon EC2 实例也可以访问另一个 VPC 中的 EFS 文件系统。

    中转网关 是网络中转中心,您可用它来互连 VPC 和本地网络。有关使用VPCTransit网关的更多信息,请参阅 开始使用转机网关AmazonVPCTransitGateway指南.

    VPC 对等连接 是两个 VPC 之间的网络连接。使用此类连接,您能够使用专用 Internet 协议版本 4 (IPv4) 或 Internet 协议版本 6 (IPv6) 地址,在它们之间路由流量。您可以使用 VPC 对等来连接位于相同 AWS 区域或不同 AWS 区域中的 VPC。有关VPC等级的更多信息,请参阅 什么是VPCEring?Amazon VPC Peering Guide.

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

使用 IAM 或访问点在其他 VPC 中挂载 EFS 文件系统

  1. 连接到您的 EC2 实例。

    • 要从运行 Mac OS 或 Linux 的计算机连接到您的实例,需要为 SSH 命令指定 .pem 文件。要执行该操作,请使用 -i 选项和私有密钥路径。

    • 要从运行 Windows 的计算机连接到您的实例,可以使用 MindTerm 或 PuTTY。要使用 PuTTY,您需要安装它并将 .pem 文件转换为 .ppk 文件。

    有关更多信息,请参阅 Amazon EC2 用户指南(适用于 Linux 实例) 中的以下主题:

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

    [ec2-user@ip-10.0.0.1] $ aws ec2 describe-availability-zones --zone-name `curl -s http://169.254.169.254/latest/meta-data/placement/availability-zone` { "AvailabilityZones": [ { "State": "available", "ZoneName": "us-east-2b", "Messages": [], "ZoneId": "use2-az2", "RegionName": "us-east-2" } ] }

    AZ ID 将在 ZoneId 属性 use2-az2 中返回。

  3. 按以下所示,使用 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。

  4. 按以下所示,使用 mount-target-IP-Address file-system-ID.efs.region.amazonaws.com 格式将挂载目标 IP 地址的行添加到客户端的 /etc/hosts 文件中。

    echo "10.0.2.153 fs-01234567.efs.us-east-2.amazonaws.com" | sudo tee -a /etc/hosts
  5. 使用以下命令创建用于挂载文件系统的目录。

    $ sudo mkdir /mnt/efs
  6. 要使用 IAM 授权来挂载文件系统,请使用以下命令:

    $ sudo mount -t efs -o tls,iam file-system-id /mnt/efs/

    有关将 IAM 授权与 EFS 结合使用的更多信息,请参阅 使用 IAM 控制 NFS 对 Amazon EFS 的访问

    要使用 EFS 访问点挂载文件系统,请使用以下命令:

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

    有关 EFS 访问点的更多信息,请参阅使用 Amazon EFS 访问点

您不能对其他 VPC 中的 EFS 挂载点使用 DNS 名称解析。要挂载您的 EFS 文件系统,请使用对应可用区中挂载点的 IP 地址。或者,您可以使用 Amazon Route 53 作为您的 DNS 服务。在 Route 53 中,您可以通过创建私有托管区域和资源记录集解析其他 VPC 中的 EFS 挂载目标 IP 地址。有关如何执行此操作的更多信息,请参阅 与私人托管区域合作处理记录Amazon Route 53 开发人员指南.

从同一VPC中的另一个帐户安装

使用共享 VPC,您可以从由某个账户拥有的 Amazon EC2 实例,挂载由其他账户拥有的 Amazon EFS 文件系统。有关设置共享VPC的更多信息,请参阅 使用共享VPCAmazon VPC Peering Guide.

设置 VPC 共享之后,EC2 实例可以使用域名系统 (DNS) 名称解析或者 EFS 挂载帮助程序来挂载 EFS 文件系统。