如何将 Amazon EFS 卷挂载到我的 Elastic Beanstalk 环境中的实例?

上次更新时间:2021 年 3 月 18 日

我想将 Amazon Elastic File System (Amazon EFS) 卷挂载到我的 AWS Elastic Beanstalk 环境中的实例。

简短描述

在 Elastic Beanstalk 环境中,您可以使用 Amazon EFS 创建共享目录,以存储应用程序用户上传或修改的文件。您的应用程序可以将挂载的 Amazon EFS 卷用作本地存储,因此,您不必更改应用程序代码就能扩展到多个实例。

要将 Amazon EFS 卷挂载到您的 Elastic Beanstalk 环境中的 Amazon Elastic Compute Cloud (Amazon EC2) 实例,您必须在源代码中添加置文件。

解决方法

1.创建一个 Amazon EFS 文件系统,然后记下 Amazon EFS ID 和安全组 ID。

2.要允许连接,请编辑文件系统的安全组规则,以允许从与 Elastic Beanstalk 环境中的实例相关联的安全组进入端口 2049(网络文件系统或 NFS)的入站连接。

3.更新实例安全组,以允许通过端口 2049 到 Amazon EFS 安全组的出站连接。

注意:如果要将一个子网中的挂载目标挂载到另一个子网中的环境上,则 Amazon EFS 安全组必须允许从您的 Amazon Virtual Private Cloud (Amazon VPC) CIDR 通过端口 2049 的入站连接。

4.在应用程序包的 root 目录中,创建一个名为 .ebextensions 的目录。

5.向您的目录添加格式化配置文件(YAML 或 JSON)。

重要提示:在配置文件中添加文件系统 ID。将 FILE_SYSTEM_ID: {"Ref" : "FileSystem"} 替换为 FILE_SYSTEM_ID: fs-xxxxxxxx。配置文件包含一个脚本,该脚本将在部署期间将 Amazon EFS 文件系统挂载到 EC2 实例。

6.将包含第 5 步中的配置文件的源代码部署到您的 Elastic Beanstalk 应用程序。

7.要确认您的 Amazon EFS 卷是否已挂载到指定挂载路径上的实例,请运行以下命令:

df -H