配合使用 Elastic Beanstalk 和 Amazon Elastic File System - Amazon Elastic Beanstalk
Amazon Web Services 文档中描述的 Amazon Web Services 服务或功能可能因区域而异。要查看适用于中国区域的差异,请参阅 中国的 Amazon Web Services 服务入门 (PDF)

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

配合使用 Elastic Beanstalk 和 Amazon Elastic File System

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

在 Elastic Beanstalk 环境中,您可以使用 Amazon EFS 创建共享目录,以存储用户为应用程序上传或修改的文件。您的应用程序可以处理已装载的 Amazon EFS 卷,例如本地存储。这样,您不必更改应用程序代码即可纵向扩展到多个实例。

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

注意

Elastic Beanstalk 创建了 webapp 用户,您能够以应用程序目录所有者的身份在 Amazon EC2 实例上对其进行设置。有关更多信息,请参阅本指南设计考虑因素主题中的持久性存储

配置文件

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 控制台、Amazon CLI 或 Amazon SDK 将其挂载到您的环境。

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

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

加密文件系统

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

示例应用程序

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

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

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

清除文件系统

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

重要

如果您已在 Elastic Beanstalk 环境外部创建 Amazon EFS 文件系统并已将该系统装载到环境的实例中,则 Elastic Beanstalk 不会在您终止环境时删除该文件系统。要确保不会保留个人信息且避免存储成本,请在您不再需要应用程序所存储的文件时删除它们。或者,您也可以删除整个文件系统。