AWS Elastic Beanstalk
开发人员指南
AWS 文档中描述的 AWS 服务或功能可能因区域而异。要查看适用于中国区域的差异,请参阅 Amazon AWS 入门

将 Elastic Beanstalk 用于 Amazon Elastic File System

借助 Amazon Elastic File System (Amazon EFS),您可以创建可由跨多个可用区的实例装载的网络文件系统。Amazon EFS 文件系统是一种 AWS 资源,它使用安全组来控制默认或自定义 VPC 中的网络访问。

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

有关 Amazon EFS 的更多信息,请参阅 Amazon Elastic File System 用户指南

配置文件

Elastic Beanstalk 提供了您可以用来创建和装载 Amazon EFS 文件系统的配置文件。您可以创建用作环境一部分的 Amazon EFS 卷,或装载独立于 Elastic Beanstalk 创建的 Amazon EFS 卷。

  • storage-efs-createfilesystem.config – 使用 Resources 键在 Amazon EFS 中创建新的文件系统和装载点。您的环境中的所有实例都可以连接同一个文件系统,以实现共享、可扩展的存储。使用 storage-efs-mountfilesystem.config 在每个实例上装载文件系统。

    内部资源

    使用配置文件创建的任何资源都与环境的生命周期相关联,如果您终止环境或删除配置文件,这些资源将丢失。

  • storage-efs-mountfilesystem.config – 将 Amazon EFS 文件系统装载到环境中实例上的本地路径。您可以使用 storage-efs-createfilesystem.config 将卷创建为环境的一部分,或使用 Amazon EFS 控制台、AWS CLI 或 AWS 开发工具包将其创建为环境的外部卷。

要使用配置文件,请先使用 storage-efs-createfilesystem.config 创建 Amazon EFS 文件系统。按照配置文件中的说明将其添加到源代码中的 .ebextensions 目录里,以便在 VPC 中创建此文件系统。

将更新后的源代码部署到 Elastic Beanstalk 环境中,以确认文件系统成功创建。然后,添加 storage-efs-mountfilesystem.config 以将此文件系统装载到环境中的实例上。在两个独立的部署过程中执行此操作可确保即使装载操作失败,文件系统仍保持完整。如果在同一部署中同时执行两个步骤,则任何一个步骤出现问题都将导致文件系统在部署失败时终止。

加密文件系统 (EFS)

Amazon EFS 支持加密文件系统。本主题中讨论的 storage-efs-createfilesystem.config 配置文件定义了两个自定义选项,您可以用来创建 Amazon EFS 加密文件系统。有关详细信息,请按照配置文件中的说明。

示例应用程序

Elastic Beanstalk 还提供了使用 Amazon EFS 作为共享存储的示例应用程序。这两个项目都是配置文件,您可以将其与标准的 WordPress 或 Drupal 安装程序配合使用,以在负载均衡环境中运行博客或其他内容管理系统。当用户上传照片或其他媒体时,其存储在 Amazon EFS 文件系统上,使用户不必再使用插件将上传的文件存储到 Amazon S3 中。

  • Load Balanced WordPress – 用于安全地安装 WordPress 并在负载均衡的 Elastic Beanstalk 环境中运行 WordPress 的配置文件。

  • Load Balanced Drupal – 用于安全地安装 Drupal 并在负载均衡的 Elastic Beanstalk 环境中运行 Drupal 的配置文件和说明。

清除文件系统

如果您已使用配置文件创建 Amazon EFS 文件系统作为 Elastic Beanstalk 环境的一部分,则 Elastic Beanstalk 会在您终止环境时删除文件系统。要最大程度地降低正在运行的应用程序的存储成本,可以定期删除应用程序不需要的文件,或确保应用程序代码将正确维护文件生命周期。

此外,如果您已在 Elastic Beanstalk 环境外部创建一个 Amazon EFS 文件系统并已将该系统装载到环境的实例中,请注意,Elastic Beanstalk 不会在您终止环境时删除文件系统。要确保不会不必要地保留个人信息,请删除应用程序所存储的文件 (如果您不再需要这些文件) 或删除文件系统。