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

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

将 Elastic Beanstalk 和 Amazon S3 结合使用

Amazon Simple Storage Service(Amazon S3)提供具备高持久性的容错型数据存储。

Elastic Beanstalk 为您在其中创建环境的每个区域创建一个名为 elasticbeanstalk-region-account-id 的 Amazon S3 存储桶。Elastic Beanstalk 使用此存储桶存储应用程序正常运行所需的对象,例如,临时配置文件。

Elastic Beanstalk 不会为其创建的 Amazon S3 存储桶启用默认加密。这意味着,在默认情况下,对象以未加密形式存储在存储桶中(并且只有授权用户可以访问)。有些应用程序需要在将所有对象存储在硬盘驱动器、数据库等中时对这些对象进行加密(也称为静态加密)。如果您有此要求,可以将您的账户的存储桶配置为默认加密。有关更多详细信息,请参阅《Amazon Simple Storage Service 用户指南》中的适用于 S3 存储桶的 Amazon S3 默认加密

Elastic Beanstalk Amazon S3 存储桶的内容

下表列出了 Elastic Beanstalk 存储在您 elasticbeanstalk-* Amazon S3 存储桶中的一些对象。此表还显示了必须手动删除的对象。为避免产生不必要的存储成本,以及为确保不会保留个人信息,请务必在不再需要这些对象时手动删除它们。

Object 何时存储? 何时删除?

应用程序版本

创建环境或将应用程序代码部署到现有环境时,Elastic Beanstalk 会将应用程序版本存储在 Amazon S3 中并将此版本与环境关联。

删除应用程序期间,视版本生命周期而定。

源包

使用 Elastic Beanstalk 控制台或 EB CLI 上传新的应用程序版本时,Elastic Beanstalk 会将此版本的副本存储在 Amazon S3 中,并将其设置为环境的源包。

手动。删除应用程序版本时,可以选择从 Amazon S3 中删除版本以同时删除相关源包。有关详细信息,请参阅 管理应用程序版本

自定义平台

创建自定义平台时,Elastic Beanstalk 会临时将相关数据存储在 Amazon S3 中。

自定义平台成功创建完成后。

日志文件

您可以请求 Elastic Beanstalk 检索实例日志文件(结尾或捆绑日志)并将它们存储在 Amazon S3 中。您还可启用日志轮换并将环境配置为在日志轮换后自动将日志发布到 Amazon S3。

结尾日志和捆绑日志:在创建后 15 分钟。

轮换日志:手动。

保存的配置

手动。

手动。

删除 Elastic Beanstalk Amazon S3 存储桶中的对象

在您终止环境或删除应用程序时,Elastic Beanstalk 将从 Amazon S3 中删除最相关的对象。为最大限度降低运行应用程序的存储成本,请定期删除应用程序不需要的对象。此外,请注意必须手动删除的对象,如 Elastic Beanstalk Amazon S3 存储桶的内容中所列出。要确保不会不必要地保留私有信息,请在不再需要这些对象时,将它们删除。

  • 删除不希望再在应用程序中使用的应用程序版本。删除应用程序版本时,可以选择 Delete versions from Amazon S3(从 Amazon S3 中删除版本)以删除相关的源包,即应用程序源代码的副本和 Elastic Beanstalk 于部署应用程序或上传应用程序时上传到 Amazon S3 的配置文件。要了解如何删除应用程序版本,请参阅管理应用程序版本

  • 删除不需要的已轮换日志。或者,下载它们或将它们移动到 Amazon S3 Glacier 进行进一步分析。

  • 删除不会再在任何环境中使用的已保存配置。

删除 Elastic Beanstalk Amazon S3 存储桶

当 Elastic Beanstalk 创建存储桶时,还会创建适用于新存储桶的存储桶策略。该策略有两个用途:

  • 允许环境写入存储桶。

  • 防止意外删除存储桶。

由于 Elastic Beanstalk 创建的策略适用于其为环境创建的存储桶,因此除非您有意先删除存储桶策略,否则您将无法删除这些存储桶。您可以从 Amazon S3 控制台中存储桶属性的权限部分删除存储桶策略。

警告

如果删除 Elastic Beanstalk 已在您的账户中创建的某个存储桶,并且在相应区域仍具有现有应用程序和正在运行的环境,则您的应用程序可能停止正常运行。例如:

  • 当环境横向扩展时,Elastic Beanstalk 应能够在 Amazon S3 存储桶中找到环境的应用程序版本并使用它启动新的 Amazon EC2 实例。

  • 创建自定义平台时,Elastic Beanstalk 将在创建过程中使用临时 Amazon S3 存储。

建议从 Elastic Beanstalk Amazon S3 存储桶中删除不必要的特定对象,而不是删除整个存储桶。

删除 Elastic Beanstalk 存储桶(控制台)

《Amazon S3 用户指南》中的删除 S3 存储桶中还描述了删除 S3 存储桶的一般过程。由于接下来要在以下过程中删除由 Elastic Beanstalk 创建的存储桶,因此我们添加了其他步骤,首先删除存储桶策略。

  1. 打开 Amazon S3 控制台

  2. 通过选择存储桶名称打开 Elastic Beanstalk 存储桶的页面。

  3. 选择 Permissions(权限)选项卡。

  4. 选择 Bucket Policy(存储桶策略)。

  5. 选择 Delete (删除)

  6. 返回 Amazon S3 控制台主页,然后选择 Elastic Beanstalk 存储桶。

  7. 选择 Delete Bucket(删除存储桶)。

  8. 通过在文本字段中输入存储桶名称来确认要删除该存储桶,然后选择删除存储桶