演练:使用和 VPN 在本地创建Amazon Direct Connect和挂载文件系统 - Amazon Elastic File System
Amazon Web Services 文档中描述的 Amazon Web Services 服务或功能可能因区域而异。要查看适用于中国区域的差异,请参阅 中国的 Amazon Web Services 服务入门 (PDF)

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

演练:使用和 VPN 在本地创建Amazon Direct Connect和挂载文件系统

本演练使用 Amazon Web Services Management Console在本地客户端上创建和挂载文件系统。您可以在 Amazon Virtual Private Network (Amazon VPN) 上使用Amazon Direct Connect连接或连接来执行此操作。

注意

不支持在基于微软 Windows 的客户端上使用亚马逊 EFS。

在本演练中,我们假定您已具有 Amazon Direct Connect 或 VPN 连接。如果没有该连接,您可以立即开始建立连接,并在建立连接后返回到本演练。有关 Amazon Direct Connect 的更多信息,请参阅 Amazon Direct Connect 用户指南。有关设置 VPN 连接的更多信息,请参阅 Amazon VPC 用户指南中的 VPN 连接

当你有Amazon Direct Connect或 VPN 连接时,你可以在你的 Amazon VPC 中创建一个 Amazon EFS 文件系统和一个挂载目标。之后,您就可以下载并安装这些 amazon-efs-utils 工具。接下来,您从本地客户端中测试文件系统。最后,本演练结束时的清理步骤提供了删除这些资源的信息。

本演练在美国西部(俄勒冈)区域创建了所有这些资源 (us-west-2)。无论Amazon Web Services 区域您使用哪种方式,请务必始终如一地使用它。您的所有资源(您的 VPC、挂载目标和 Amazon EFS 文件系统)都必须处于Amazon Web Services 区域相同状态,如下图所示。

该图显示了从本地客户端挂载 EFS 文件系统Amazon Direct Connect时 Amazon EFS 是如何使用的。
注意

在某些情况下,您的本地应用程序可能需要知道 EFS 文件系统是否可用。在这些情况下,您的应用程序应能在第一个挂载点暂时不可用时指向其他挂载点 IP 地址。在这种情况下,我们建议您将两个本地客户端通过不同的可用区 (AZ) 连接到您的文件系统,以提供更高的可用性。

开始前的准备工作

您可以使用您的根凭证Amazon Web Services 账户登录控制台并尝试本练习。但是,Amazon Identity and Access Management(IAM) 最佳实践建议您不要使用自己的根证书Amazon Web Services 账户。而是在您的账户中创建一个管理员用户,并使用这些凭证来管理您的账户中的资源。有关更多信息,请参阅设置

您可以使用默认 VPC,也可以使用在您的账户中创建的自定义 VPC。对于本演练,可以使用默认的 VPC 配置。但是,如果您使用自定义 VPC,请验证以下情况:

  • Internet 网关已连接到您的 VPC。有关更多信息,请参阅 Amazon VPC 用户指南 中的 Internet 网关

  • VPC 路由表包含一个规则,以将 Internet 范围的所有流量发送到 Internet 网关。

第 1 步:创建您的亚马逊 Elastic File System 资源

在此步骤中,您将创建 Amazon EFS 文件系统和挂载目标。

创建您的亚马逊 EFS 文件系统
  1. 打开亚马逊 EFS 控制台,网址为 https://console.aws.amazon.com/efs/

  2. 选择创建文件系统

  3. VPC 列表中选择您的默认 VPC。

  4. 选中所有可用区对应的复选框。确保它们全都选择了默认子网、自动 IP 地址和默认安全组。这些是您的挂载目标。有关更多信息,请参阅创建并管理挂载目标和安全组

  5. 选择 Next Step

  6. 命名您的文件系统,选择通用型以作为您的默认性能模式,然后选择下一步

  7. 选择创建文件系统

  8. 从列表中选择您的文件系统,并记下安全组值。在下一个步骤中,您需要用到此值。

您刚刚创建的文件系统具有挂载目标。每个挂载目标都具有一个关联的安全组。该安全组充当虚拟防火墙以控制网络流量。如果您在创建挂载目标时未提供安全组,Amazon EFS 会将 VPC 的默认安全组与其关联。如果您完全按照上述步骤进行操作,则挂载目标使用默认安全组。

下一步,您将向挂载目标的安全组添加一条规则,以允许入站流量进入网络文件系统 (NFS) 端口 (2049)。您可以使用 Amazon Web Services Management Console将该规则添加到您的挂载目标在 VPC 中的安全组。

允许入站流量进入 NFS 端口
  1. 登录到 Amazon Web Services Management Console 并打开 Amazon EC2 控制台(https://console.aws.amazon.com/ec2/)。

  2. 网络与安全下面,选择安全组

  3. 选择与您的文件系统关联的安全组。您在第 1 步:创建您的亚马逊 Elastic File System 资源的结尾记录了该值。

  4. 在安全组列表下面显示的分页窗格中,选择入站选项卡。

  5. 选择编辑

  6. 选择添加规则,然后选择以下类型的规则:

    • 类型NFS

    • 任何位置

    我们建议您仅使用任何位置源进行测试。您可以创建一个设置为本地客户端 IP 地址的自定义源,或者从客户端本身中使用控制台并选择我的 IP

    注意

    您不需要添加出站规则,因为默认出站规则允许所有出站流量。如果没有该默认出站规则,请添加一个出站规则以在 NFS 端口上打开 TCP 连接,从而将挂载目标安全组指定为目标。

步骤 2:安装 NFS 客户端

在此步骤中,安装 NFS 客户端。

在本地服务器上安装 NFS 客户端
注意

如果您需要在传输中加密数据,请使用 Amazon EFS 挂载帮助程序 amazon-efs-utils 而不是 NFS 客户端。有关安装的信息 amazon-efs-utils,请参阅 “可选:加密传输中的数据” 一节。

  1. 访问本地客户端的终端。

  2. 安装 NFS。

    如果您使用的是 Red Hat Linux,请使用以下命令安装 NFS。

    $ sudo yum -y install nfs-utils

    如果您使用的是 Ubuntu,请使用以下命令安装 NFS。

    $ sudo apt-get -y install nfs-common

步骤 3:在本地客户端上安装 Amazon EFS 文件系统

创建挂载目录
  1. 使用以下命令为挂载点创建目录。

    mkdir ~/efs
  2. 选择可用区中的挂载目标的所需 IP 地址。您可以从本地 Linux 客户端中测量延迟。为此,请针对不同可用区中的 EC2 实例的 IP 地址使用基于终端的工具(如 ping)以查找具有最低延迟的实例。

  • 运行挂载命令以使用挂载目标的 IP 地址挂载文件系统。

    $ sudo mount -t nfs -o nfsvers=4.1,rsize=1048576,wsize=1048576,hard,timeo=600,retrans=2,noresvport mount-target-IP:/ ~/efs

现在您已经安装了 Amazon EFS 文件系统,可以按照以下步骤对其进行测试。

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

    $ cd ~/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 文件中添加条目以自动挂载文件系统。有关更多信息,请参阅自动挂载 Amazon EFS 文件系统

警告

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

第 4 步:清理资源并保护您的Amazon账户

完成本演练后,或者如果您不想浏览演练,则应按照以下步骤清理资源并保护您的Amazon帐户。

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

    $ sudo umount ~/efs
  2. 打开亚马逊 EFS 控制台,网址为 https://console.aws.amazon.com/efs/

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

  4. 对于 Actions,选择 Delete file system

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

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

  7. 在导航窗格中,选择 Security Groups (安全组)

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

    警告

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

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

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

可选:加密传输中的数据

要对传输中的数据进行加密,请使用 Amazon EFS 挂载帮助程序代替 NFS 客户端。 amazon-efs-utils

amazon-efs-utils 软件包是 Amazon EFS 工具的开源集合。该 amazon-efs-utils 集合附带挂载助手和工具,可以更轻松地加密传输给 Amazon EFS 的数据。有关此软件包的更多信息,请参阅使用这些 amazon-efs-utils 工具。该软件包可从免费下载 GitHub,您可以通过克隆软件包的存储库来获取。

要 amazon-efs-utils 从中进行克隆 GitHub
  1. 访问本地客户端的终端。

  2. 在终端上,使用以下命令将 amazon-efs-utils 工具克隆 GitHub 到您选择的目录中。

    git clone https://github.com/aws/efs-utils

现已具有该软件包,您可以开始进行安装了。该安装是以不同方式处理的,具体取决于本地客户端的 Linux 发行版。支持以下发行版:

  • Amazon Linux 2

  • Amazon Linux

  • Red Hat Enterprise Linux(和衍生产品,如 CentOS)7 和更新版本

  • Ubuntu 16.04 LTS 和更新版本

amazon-efs-utils 作为 RPM 软件包进行编译和安装
  1. 在您的客户端上打开终端,然后导航到包含克隆 amazon-efs-utils 软件包的 GitHub目录。

  2. 使用以下命令构建该软件包。

    make rpm
    注意

    如果尚未安装 rpm-builder 软件包,请使用以下命令进行安装。

    sudo yum -y install rpm-build
  3. 使用以下命令安装该软件包。

    sudo yum -y install build/amazon-efs-utils*rpm
amazon-efs-utils 作为 deb 软件包进行构建和安装
  1. 在您的客户端上打开终端,然后导航到包含克隆 amazon-efs-utils 软件包的 GitHub目录。

  2. 使用以下命令构建该软件包。

    ./build-deb.sh
  3. 使用以下命令安装该软件包。

    sudo apt-get install build/amazon-efs-utils*deb

安装软件包后,配置 amazon-efs-utils 为在 with Amazon Direct Connect 或 VPN 中使用。Amazon Web Services 区域

配置 amazon-efs-utils 为在您的 Amazon Web Services 区域
  1. 使用所选的文本编辑器打开 /etc/amazon/efs/efs-utils.conf 以进行编辑。

  2. 查找 “dns_name_format = {fs_id}.efs.{region}.amazonaws.com” 行。

  3. 例如{region},使用您所在Amazon地区的 ID 进行更改us-west-2

要在本地客户端上挂载 EFS 文件系统,请先在本地 Linux 客户端上打开终端。要装载系统,您需要文件系统 ID、其中一个挂载目标的挂载目标 IP 地址以及文件系统的 IP 地址Amazon Web Services 区域。如果您为文件系统创建了多个挂载目标,则可选择其中任一项。

在具有该信息时,您可以使用三个步骤挂载文件系统:

创建挂载目录
  1. 使用以下命令为挂载点创建目录。

    mkdir ~/efs
  2. 选择可用区中的挂载目标的所需 IP 地址。您可以从本地 Linux 客户端中测量延迟。为此,请针对不同可用区中的 EC2 实例的 IP 地址使用基于终端的工具(如 ping)以查找具有最低延迟的实例。

更新 /etc/hosts
  • 在本地 /etc/hosts 文件中添加一个具有文件系统 ID 和挂载目标 IP 地址的条目,格式如下所示。

    mount-target-IP-Address file-system-ID.efs.region.amazonaws.com
    192.0.2.0 fs-12345678.efs.us-west-2.amazonaws.com
创建挂载目录
  1. 使用以下命令为挂载点创建目录。

    mkdir ~/efs
  2. 运行 mount 命令以挂载文件系统。

    sudo mount -t efs fs-12345678 ~/efs

    如果要使用传输中的数据加密,mount 命令类似于以下内容。

    sudo mount -t efs -o tls fs-12345678 ~/efs