Amazon S3 存储类 - Amazon Simple Storage Service
AWS 文档中描述的 AWS 服务或功能可能因区域而异。要查看适用于中国区域的差异,请参阅中国的 AWS 服务入门

如果我们为英文版本指南提供翻译,那么如果存在任何冲突,将以英文版本指南为准。在提供翻译时使用机器翻译。

Amazon S3 存储类

中的每个对象 Amazon S3 有与其相关的存储类别。例如,如果您列出 S3 存储桶中的对象,则控制台会在列表中显示所有对象的存储类。


        显示存储类的示例 Amazon S3 控制台。

Amazon S3 将为您存储的对象提供一系列存储类。根据您的使用案例场景和性能访问要求选择一个类。所有这些存储类都提供高持久性存储。

经常访问对象的存储类

对于性能敏感的使用案例 (需要毫秒级访问时间的用例) 和经常访问的数据,Amazon S3提供以下存储类:

  • S3 标准— 默认存储类。如果上传对象时未指定存储类,Amazon S3 会分配 S3 标准存储类。

  • 减少冗余—减少冗余存储(RRS)存储类针对可以存储的非关键性、可重复性数据而设计,而且冗余的冗余性较低 S3 标准 存储类。

    重要

    我们建议您不要使用此存储类。TheThethe S3 标准 存储类更具成本效益。

    为了实现持久性,RRS 对象的预期平均每年对象损失率为 0.01%。如果 RRS 对象丢失,则在对该对象发出请求时,Amazon S3 会返回 405 错误。

可自动优化经常访问和不经常访问的对象的存储类

TheThethe S3智能分层 存储类别旨在通过自动将数据移动到最具成本效益的存储访问级别,而无需性能影响或运行开销,来优化存储成本。当访问模式不断变化时,S3 智能分层会在粒度对象级别在两个访问层(经常访问层与较低成本的不经常访问层)之间移动数据,从而自动实现成本节省。当访问模式未知或不可预测时,如果您要自动为长期存在的数据优化存储成本,智能分层是理想的存储类。

S3 智能分层存储类将对象存储在两个访问层中:一个是针对频繁访问进行了优化的层,另一个是针对不频繁访问的数据进行了优化的更低成本的层。对于每个对象的小额月度监控和自动化费用,Amazon S3 监控 S3 智能分层存储类中对象的访问模式,然后将连续 30 天未访问的对象移至不频繁访问层。

使用S3 智能分层存储类时没有检索费用。如果不频繁访问层中的对象被访问,则对象将自动移回频繁访问层。在 S3 智能分层存储类中的访问层之间移动对象时,不会产生额外的分层费用。

注意

S3 智能分层存储类适用于您计划存储至少 30 天并且大小超过 128 KB 的对象。如果对象大小小于 128 KB,则不符合自动分层条件。可以存储更小的对象,但始终按 S3 智能分层存储类中的频繁访问层费率计费。

如果您在 30 天的最短存储期结束前删除对象,则需支付 30 天的费用。有关定价信息,请参阅 Amazon S3 定价.

不经常访问对象的存储类

TheThethe S3 标准-iaS3一区IA 存储类别专为长期和频繁访问的数据而设计。(IA表示 不频繁访问.) S3 标准-ia和s3OneZone-IA对象可用于毫秒访问(与 S3 标准 存储类)。 Amazon S3 为这些对象收取检索费用,因此它们最适合不频繁访问的数据。有关定价信息,请参阅 Amazon S3 定价.

例如,您可以选择 S3 标准-ia和 S3 单区-IA 存储类别:

  • 用于存储备份。

  • 用于不经常访问但仍需要毫秒级访问的旧数据。例如,当您上传数据时,您可以选择 S3 标准 存储类别,并使用生命周期配置来讲述 Amazon S3 将对象转换为S3标准-IA或 S3 单区-IA 类。

    有关生命周期管理的更多信息,请参阅对象生命周期管理.

注意

TheThethe S3 标准-ia和 S3 单区-IA 存储类适用于您计划存储至少30天的128KB的对象。如果对象小于 128 KB,Amazon S3 会收取 128 KB 的费用。如果您在 30 天的最短存储期结束前删除对象,则需支付 30 天的费用。有关定价信息,请参阅 Amazon S3 定价.

这些存储类在以下方面有所不同:

  • S3 标准-ia—Amazon S3 在多个地理位置分隔的可用性区域中存储对象数据(类似于 S3 标准 存储类)。S3 标准-ia对象可以恢复可用性区域的丢失。此存储类可提供比 S3 单区-IA 类更好的可用性和弹性。

  • S3 单区-IA—Amazon S3 只在一个可用区存储对象数据,因此比 S3 标准-IA 更便宜。但是,数据无法灵活地应对由于地震和洪水灾害而造成可用区物理丢失的情况。TheThethe S3 单区-IA 存储类与标准-IA一样耐用,但它的可用性和弹性不足。有关存储类的持久性和可用性比较,请参阅此部分结尾的持久性和可用性表。有关定价,请参阅 Amazon S3 定价.

我们建议执行下列操作:

  • S3 标准-IA — 用于主数据或无法重新创建的数据副本。

  • S3 单区-IA—如果可用性区域失败,以及设置S3跨区复制(CRR)时对象复制副本如果可以重新创建数据,请使用。

用于存档对象的存储类

TheThethe S3 GlacierS3 Glacier Deep Archive 存储类别专为低成本数据归档而设计。这些存储类提供与 S3 标准 存储类相同的持久性和弹性。有关存储类的持久性和可用性比较,请参阅此部分结尾的表。

这些存储类在以下方面有所不同:

  • S3 Glacier— 用于可能需要在几分钟内检索其部分数据的存档。存储在 S3 Glacier 存储类别中的数据的最短存储持续时间为 90 天,使用加速检索只需 1 至 5 分钟即可访问。如果您在 90 天的最短使用期限之前已删除、覆盖数据或将其转换到不同的存储类,则您需支付 90 天的费用。有关定价信息,请参阅 Amazon S3 定价.

  • S3 Glacier Deep Archive— 用于存档很少需要访问的数据。存储在 S3 Glacier Deep Archive 存储类别中的数据的最短存储持续时间为 180 天,默认检索时间为 12 小时。如果您在 180 天的最短使用期限之前已删除、覆盖数据或将其转换到不同的存储类,则您需支付 180 天的费用。有关定价信息,请参阅 Amazon S3 定价.

    S3 Glacier Deep Archive 是 中成本最低的存储选项。AWS. 存储成本 S3 Glacier Deep Archive 比使用 S3 Glacier 存储类。您可以使用批量检索来减少 S3 Glacier Deep Archive 检索成本,批量检索会在 48 小时内返回数据。

检索存档的对象

您可以将对象的存储类设置为 S3 Glacier 或 S3 Glacier Deep Archive 按照部分中所述的其他存储类别的方式 设置对象的存储类. 但是, S3 Glacier 和 S3 Glacier Deep Archive 对象不可实时访问。您必须先恢复 S3 Glacier 和 S3 Glacier Deep Archive 对象可以访问这些对象。(S3 标准,RRS, S3 标准-ia, S3 单区-IA、和S3智能分层对象可随时访问。)有关检索存档对象的详细信息,请参阅 还原存档对象.

重要

当您选择 S3 Glacier 或 S3 Glacier Deep Archive 存储类别,您的对象保持在 Amazon S3. 您无法直接通过单独的 Amazon S3 Glacier 服务访问它们。

要了解有关 Amazon S3 Glacier 服务的更多信息,请参阅。Amazon S3 Glacier 开发人员指南.

比较 Amazon S3 存储类

下表对存储类进行了比较。

存储类别 设计专门针对 持久性 (设计目标) 可用性 (设计目标) Availability Zones (可用区) 最小存储持续时间 最小可计费对象大小 其他考虑因素

S3 标准

经常访问的数据

99.999999999%

99.99%

>=3

S3 标准-IA

长时间存在的、不经常访问的数据

99.999999999%

99.9%

>=3

30 天

128 KB

按每 GB 收取检索费用。

S3 智能分层

访问模式发生变化或未知的长时间存在的数据

99.999999999%

99.9%

>=3

30 天

按对象收取监控和自动化费用。无检索费用。

S3 单区-IA

长时间存在的、不经常访问的、非关键数据

99.999999999%

99.5%

1

30 天

128 KB

按每 GB 收取检索费用。无法灵活地应对可用区丢失的情况。

S3 Glacier

检索时间从数分钟到数小时不等的长期数据存档 99.999999999%

99.99% (在您还原对象之后)

>=3

90 天.

40 KB

按每 GB 收取检索费用。您必须先还原存档对象,然后才可以访问它们。有关更多信息,请参阅 还原存档对象.

S3 Glacier Deep Archive

存档很少访问的数据,默认检索时间为 12 小时 99.999999999%

99.99% (在您还原对象之后)

>=3

180 天

40 KB

按每 GB 收取检索费用。您必须先还原存档对象,然后才可以访问它们。有关更多信息,请参阅 还原存档对象.

RRS(不推荐)

经常访问的非关键数据

99.99%

99.99%

>=3

除S3 单区-IA 之外的所有存储类均采用灵活的弹性设计,适用于单个可用区同时完全丢失数据以及另一个可用区部分丢失数据的情况。

除了应用程序场景的性能要求之外,还考虑了价格问题。有关存储类定价,请参阅 Amazon S3 定价.

设置对象的存储类

Amazon S3 API 支持按照以下方式设置 (或更新) 对象的存储类:

  • 创建新对象时,可以指定其存储类。例如,当使用 放置对象发布对象,和 启动多部件上传 API,您添加 x-amz-storage-class 请求标题指定存储类。如果您未添加此标头,Amazon S3 将标准存储类作为默认存储类。

  • 您还可以更改已存储在中的对象的存储类 Amazon S3 通过使用 PUT对象-复制 API。但是,您不能使用 PUT对象-复制 复制存储在 S3 Glacier 或 S3 Glacier Deep Archive 存储类。

    您使用相同键名复制相同存储桶中的对象并按照以下方式指定请求标头:

    • x-amz-metadata-directive 标头设置为 COPY。

    • x-amz-storage-class 设置为要使用的存储类。

    在启用版本控制的存储桶中,您无法更改特定版本对象的存储类。当您复制对象时,Amazon S3 将为其指定新的版本 ID。

  • 您可以直接 Amazon S3 要通过添加 S3 生命周期 配置到一个桶。有关更多信息,请参阅 对象生命周期管理.

  • 在设置复制 (CRR) 配置时,您可以将复制对象的存储类设置为任何其他存储类。但是,您不能复制存储在 S3 Glacier 或 S3 Glacier Deep Archive 存储类。有关更多信息,请参阅 复制配置概述.

要创建和更新对象存储类,可以使用 Amazon S3 控制台, AWS SDK,或 AWS Command Line Interface (AWS CLI)。每种使用都使用 Amazon S3 API将请求发送到 Amazon S3.

将访问策略权限限制到特定存储类

当您授予访问策略权限时 Amazon S3 您可以使用 s3:x-amz-storage-class 在存储上传对象时限制要使用哪个存储类的条件键。例如,授予 s3:PUTObject 权限时,您可以将对象上传限制到特定的存储类。有关策略示例,请参阅示例 5 将对象上传到具有特定存储类的对象上. 有关在策略中使用条件的更多信息和 Amazon S3 条件键的完整列表,请参阅以下内容: