Amazon Elastic Compute Cloud
Linux 实例用户指南
AWS 文档中描述的 AWS 服务或功能可能因区域而异。要查看适用于中国区域的差异,请参阅 Amazon AWS 入门

Amazon Elastic File System (Amazon EFS)

Amazon EFS 提供可扩展文件存储以供和 Amazon EC2 一起使用。您可以创建 EFS 文件系统并配置实例来装载文件系统。您可以使用 EFS 文件系统作为在多个实例上运行的工作负载和应用程序的通用数据源。有关更多信息,请参阅 Amazon EC2 用户指南(适用于 Linux 实例) 中的 Amazon Elastic File System 产品页

在本教程中,您创建一个 EFS 文件系统和两个可以使用该文件系统共享数据的 Linux 实例。

重要

Amazon EFS 在 Windows 实例上不受支持。

先决条件

  • 创建安全组 (例如 efs-sg) 以便关联到 EC2 实例和 EFS 挂载目标,然后添加以下规则:

    • 允许从您计算机到 EC2 实例的入站 SSH 连接 (源是您的网络的 CIDR 块)

    • 允许从与此安全组关联的 EC2 实例 (源是安全组本身) 通过 EFS 挂载目标向文件系统的入站 NFS 连接。有关更多信息,请参阅 Amazon EFS 文件系统Amazon Elastic File System 用户指南 中的 Amazon EC2 实例和挂载目标的安全组

  • 创建密钥对。您必须在配置您的实例时指定密钥对,否则无法连接到它们。有关更多信息,请参阅 创建密钥对

步骤 1:创建 EFS 文件系统

Amazon EFS 能让您创建一个可供多个实例同时装载并访问的文件系统。有关更多信息,请参阅 Amazon Elastic File System 用户指南 中的为 Amazon EFS 创建资源

创建文件系统

  1. 通过 https://console.amazonaws.cn/efs/ 打开 Amazon Elastic File System 控制台。

  2. 选择 Create file system

  3. Configure file system access 页面上,执行以下操作:

    1. 对于 VPC,选择用于您的实例的 VPC。

    2. 对于 Create mount targets,选择所有可用区。

    3. 对于每可用区,确保 Security group 的值是您在先决条件中创建的安全组。

    4. 选择 Next Step

  4. Configure optional settings 页面上,执行以下操作:

    1. 对于具有 Key=Name 的标签,在 Value 中键入文件系统的名称。

    2. 对于 Choose performance mode,保留默认选项 General Purpose

    3. 选择 Next Step

  5. Review and create 页面上,选择 Create File System

  6. 在创建文件系统后,请记下文件系统 ID,因为您将在本教程中稍后部分使用它。

步骤 2:装载文件系统

使用以下步骤启动两个 t2.micro 实例。用户数据脚本在启动时将文件系统装载到两个实例并且在实例重启之后更新 /etc/fstab 以确保重新装载文件系统。请注意,必须在子网中启动 T2 实例。您可以使用默认的 VPC 或非默认的 VPC。

注意

还有其他装载卷的方式 (例如,在已运行的实例上)。有关更多信息,请参阅 Amazon Elastic File System 用户指南 中的装载文件系统

启动两个实例并装载 EFS 文件系统

  1. 打开 Amazon EC2 控制台 https://console.amazonaws.cn/ec2/

  2. 选择 Launch Instance

  3. Choose an Amazon Machine Image 页面上,选择一个具有 HVM 虚拟化类型的 Amazon Linux AMI。

  4. Choose an Instance Type 页面上,保留默认的实例类型 t2.micro,然后选择 Next: Configure Instance Details

  5. Configure Instance Details (配置实例详细信息) 页面中,执行以下操作:

    1. 对于 Number of instances,键入 2。

    2. [默认 VPC] 如果您有默认 VPC,则它是 Network的默认值。保留默认 VPC 和 Subnet 的默认值以便在 Amazon EC2 为您的实例选择的可用区中使用默认子网。

      [非默认 VPC] 为 Network 选择您的 VPC,并从 Subnet 中选择一个公有子网。

    3. [非默认 VPC] 对于 Auto-assign Public IP,选择 Enable。否则,您的实例将不会得到公有 IP 地址或公有 DNS 名称。

    4. Advanced Details (高级详细信息) 下选择 As text (以文本形式),然后将以下脚本粘贴到 User data (用户数据) 中。使用您文件系统的 ID 更新 FILE_SYSTEM_ID。您可以选择用您装载的文件系统的一个目录更新 MOUNT_POINT

      #!/bin/bash yum update -y yum install -y nfs-utils FILE_SYSTEM_ID=fs-xxxxxxxx AVAILABILITY_ZONE=$(curl -s http://169.254.169.254/latest/meta-data/placement/availability-zone ) REGION=${AVAILABILITY_ZONE:0:-1} MOUNT_POINT=/mnt/efs mkdir -p ${MOUNT_POINT} chown ec2-user:ec2-user ${MOUNT_POINT} echo ${FILE_SYSTEM_ID}.efs.${REGION}.amazonaws.com:/ ${MOUNT_POINT} nfs4 nfsvers=4.1,rsize=1048576,wsize=1048576,hard,timeo=600,retrans=2,_netdev 0 0 >> /etc/fstab mount -a -t nfs4
    5. 转到向导的步骤 6。

  6. Configure Security Group (配置安全组) 页面上,选择 Select an existing security group (选择现有安全组),然后选择您在先决条件中创建的安全组,再选择 Review and Launch (查看并启动)。

  7. Review Instance Launch 页面上,选择 Launch

  8. Select an existing key pair or create a new key pair 对话框中,选择 Choose an existing key pair,然后选择您的密钥对。选择确认复选框,然后选择 Launch Instances

  9. 在导航窗格中,选择 Instances 以查看您的实例的状态。最初,其状态是 pending。在状态变为 running 后,您的实例即准备就绪,可以使用。

步骤 3:测试文件系统

您可以连接到您的实例并验证文件系统是否已装载到您指定的目录 (例如,/mnt/efs)。

验证文件系统是否已装载

  1. 连接到您的实例。有关更多信息,请参阅 连接到您的 Linux 实例

  2. 从每个实例的终端窗口,运行 df - T 命令以验证 EFS 文件系统是否已装载。

    $ df -T Filesystem Type 1K-blocks Used Available Use% Mounted on /dev/xvda1 ext4 8123812 1949800 6073764 25% / devtmpfs devtmpfs 4078468 56 4078412 1% /dev tmpfs tmpfs 4089312 0 4089312 0% /dev/shm efs-dns nfs4 9007199254740992 0 9007199254740992 0% /mnt/efs

    请注意,文件系统的名称 (在示例输出中显示为 efs-dns)具有以下格式:

    file-system-id.efs.aws-region.amazonaws.com:/
  3. (可选) 从一个实例在文件系统中创建一个文件,然后验证您是否可以从另一实例查看该文件。

    1. 从第一个实例,运行以下命令来创建文件:

      $ sudo touch /mnt/efs/test-file.txt
    2. 从第二个实例,运行以下命令来查看文件:

      $ ls /mnt/efs test-file.txt

步骤 4:清除

当您完成本教程后,您可以终止这些实例并删除文件系统。

终止实例

  1. 打开 Amazon EC2 控制台 https://console.amazonaws.cn/ec2/

  2. 在导航窗格中,选择 Instances

  3. 选择要终止的实例。

  4. 依次选择 ActionsInstance StateTerminate

  5. 当系统提示您确认时,选择 Yes, Terminate

删除文件系统

  1. 通过 https://console.amazonaws.cn/efs/ 打开 Amazon Elastic File System 控制台。

  2. 选择要删除的文件系统。

  3. 选择 ActionsDelete file system

  4. 在提示确认时,键入文件系统的 ID 并选择 Delete File System