

# 了解和管理 Amazon S3 存储类
<a name="storage-class-intro"></a>

Amazon S3 中的每个对象都有与之关联的存储类。默认情况下，S3 中的对象存储在 S3 Standard 存储类中，但 Amazon S3 为您存储的对象提供了一系列其它存储类。请根据您的使用案例场景和性能访问要求选择一个类。选择专为您的使用案例设计的存储类，可以优化对象的存储成本、性能和可用性。所有这些存储类都提供高持久性存储。

以下各节提供了关于各种存储类以及如何为对象设置存储类的详细信息。

**Topics**
+ [经常访问对象的存储类](#sc-freq-data-access)
+ [用于自动优化访问模式不断变化或未知的数据的存储类](#sc-dynamic-data-access)
+ [不经常访问对象的存储类](#sc-infreq-data-access)
+ [极少访问的对象的存储类](#sc-glacier)
+ [Amazon S3 on Outposts 的存储类](#s3-outposts)
+ [比较 Amazon S3 存储类](#sc-compare)
+ [设置对象的存储类](sc-howtoset.md)
+ [Amazon S3 分析 – 存储类分析](analytics-storage-class.md)
+ [使用 Amazon S3 Intelligent-Tiering 管理存储成本](intelligent-tiering.md)
+ [了解用于长期数据存储的 S3 Glacier 存储类](glacier-storage-classes.md)
+ [使用归档的对象](archived-objects.md)

## 经常访问对象的存储类
<a name="sc-freq-data-access"></a>

对于性能敏感的使用案例（需要毫秒级访问时间的用例）和经常访问的数据，Amazon S3 提供以下存储类：
+ **S3 Standard** (`STANDARD`)：默认存储类。如果在上传对象时未指定存储类，Amazon S3 会分配 S3 Standard 存储类。要协助您优化 S3 Standard 与 S3 Standard-IA 之间的成本，可以使用 [Amazon S3 分析 – 存储类分析](analytics-storage-class.md)。
+ **S3 Express One Zone** (`EXPRESS_ONEZONE`)：Amazon S3 Express One Zone 存储类是高性能的单区 Amazon S3 存储类，专门用于为延迟要求极高的应用程序提供稳定的个位数毫秒级数据访问。S3 Express One Zone 是目前具有极低延迟的云对象存储类，相比 S3 Standard，其数据访问速度要快 10 倍，且请求成本低 50%。使用 S3 Express One Zone，您的数据将冗余地存储在单个可用区中的多个设备上。有关更多信息，请参阅 [S3 Express One Zone](directory-bucket-high-performance.md#s3-express-one-zone)。
+ **低冗余存储** (`REDUCED_REDUNDANCY`)：低冗余存储（RRS）类设计用于可使用低于 S3 Standard 存储类的冗余级别存储的非关键性、可复现数据。
**重要**  
我们建议不要使用此存储类。S3 Standard 存储类更经济高效。

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

## 用于自动优化访问模式不断变化或未知的数据的存储类
<a name="sc-dynamic-data-access"></a>

**S3 Intelligent-Tiering** (`INTELLIGENT_TIERING`) 是一种 Amazon S3 存储类，旨在通过自动将数据移动到最具成本效益的访问层来优化存储成本，而不会影响性能或产生运营开销。S3 Intelligent-Tiering 是可实现以下目标的唯一一种云存储类：它通过在访问模式更改时在访问层之间的细粒度对象级别上移动数据，实现自动成本节约。如果您希望针对具有未知或不断变化的访问模式的数据优化存储成本，S3 Intelligent-Tiering 存储类非常适合。S3 Intelligent-Tiering 没有检索费用。

每月只需支付少量的对象监控和自动化费用，S3 Intelligent-Tiering 即可监控访问模式并自动将尚未访问的对象移动到成本较低的访问层。S3 Intelligent-Tiering 可利用三个低延迟和高吞吐量访问层自动节省存储成本。对于可以异步访问的数据，您可以选择激活 S3 Intelligent-Tiering 存储类中的自动存档功能。S3 Intelligent-Tiering 专为 99.9% 的可用性和 99.999999999% 的耐用性而设计。

S3 Intelligent-Tiering 会自动将对象存储在三个访问层：
+ **频繁访问** – 上传或转换到 S3 Intelligent-Tiering 的对象将自动存储在频繁访问层中。
+ **不频繁访问** – S3 Intelligent-Tiering 将连续 30 天未访问的对象移动到不频繁访问层。
+ **归档即时访问** – 使用 S3 Intelligent-Tiering，连续 90 天未访问的任何现有对象都会自动移动到归档即时访问层。

除了这三个层之外，S3 Intelligent-Tiering 还提供两个可选的归档访问层：
+ **归档访问** – S3 Intelligent-Tiering 为您提供了一个选项，可让您对可以异步访问的数据激活归档访问层。激活后，归档访问层会自动存档至少连续 90 天未访问的对象。
+ **深度归档访问** – S3 Intelligent-Tiering 为您提供了一个选项，可让您对可以异步访问的数据激活深度归档访问层。激活后，深度归档访问层会自动存档至少连续 180 天未访问的对象。

**注意**  
如果您想绕过归档即时访问层，则只激活 90 天的归档访问层。归档访问层提供了略低的存储成本，只需几分钟到一小时的检索时间。归档即时访问层提供毫秒级的访问和高吞吐量性能。
仅当您的应用程序可以异步访问对象时，才激活归档访问和深层归档访问层。如果您正在检索的对象存储在归档访问层或深度归档访问层中，请首先使用 `RestoreObject` 还原对象。

您可以[将新创建的数据移动到 S3 Intelligent-Tiering](https://docs.amazonaws.cn/AmazonS3/latest/userguide/using-intelligent-tiering.html#moving-data-to-int-tiering)，并将其设置为默认存储类。您还可以使用 [https://docs.amazonaws.cn/AmazonS3/latest/API/API_PutBucketIntelligentTieringConfiguration.html](https://docs.amazonaws.cn/AmazonS3/latest/API/API_PutBucketIntelligentTieringConfiguration.html) API 操作、Amazon CLI 或 Amazon S3 控制台，选择激活其中一个或这两个归档访问层。有关使用 S3 Intelligent-Tiering 和激活归档访问层的更多信息，请参阅[使用 S3 Intelligent-Tiering](using-intelligent-tiering.md)。

要访问归档访问层或深度归档访问层中的对象，您首先需要将其还原。有关更多信息，请参阅 [从 S3 Intelligent-Tiering 归档访问和深度归档访问层恢复对象](intelligent-tiering-managing.md#restore-data-from-int-tier-archive)。

**注意**  
如果对象大小小于 128 KB，未被监控，不符合自动分层条件。较小的对象始终存储在频繁访问层中。有关 S3 Intelligent-Tiering 的更多信息，请参阅[S3 Intelligent-Tiering 访问层。](intelligent-tiering-overview.md#intel-tiering-tier-definition)。

## 不经常访问对象的存储类
<a name="sc-infreq-data-access"></a>

**S3 Standard-IA** 和 **S3 One Zone-IA** 存储类用于长时间运行且不经常访问的数据。（IA 表示*不经常访问*。） S3 Standard-IA 和 S3 One Zone-IA 对象可用于毫秒级访问（类似于 S3 Standard存储类）。Amazon S3 会收取这些对象的检索费，因此，它们最适合不经常访问的数据。有关定价信息，请参阅 [Amazon S3 定价](https://www.amazonaws.cn/s3/pricing/)。

例如，您可以选择 S3 Standard-IA 和 S3 One Zone-IA 存储类执行以下操作：
+ 用于存储备份。
+ 用于不经常访问但仍需要毫秒级访问的旧数据。例如，上传数据时，您可能会选择 S3 Standard存储类，然后使用生命周期配置指示 Amazon S3 将对象转换为 S3 Standard-IA 或 S3 One Zone-IA 类。

  有关生命周期管理的更多信息，请参阅 [管理对象的生命周期](object-lifecycle-mgmt.md)。

**注意**  
S3 Standard-IA 和 S3 One Zone-IA 存储类适用于您计划存储至少 30 天并且大小超过 128 KB 的对象。如果对象小于 128 KB，Amazon S3 会收取 128 KB 的费用。如果您在 30 天的最短存储期结束前删除对象，则需支付 30 天的费用。在 30 天之前删除、覆盖或转换为其他存储类的对象将产生正常存储使用费，外加最低 30 天剩余时间的按比例收费。有关定价信息，请参阅 [Amazon S3 定价](https://www.amazonaws.cn/s3/pricing/)。

这些存储类在以下方面有所不同：
+ **S3 Standard-IA** (`STANDARD_IA`)：Amazon S3 跨多个地理位置独立的可用区以冗余方式存储对象数据（类似于 S3 Standard 存储类）。S3 Standard-IA 对象可在出现可用区丢失时复原。此存储类可提供比 S3 One Zone-IA 类更好的可用性和弹性。要协助您优化 S3 Standard 与 S3 Standard-IA 之间的成本，可以使用 [Amazon S3 分析 – 存储类分析](analytics-storage-class.md)
+ **S3 One Zone-IA** (`ONEZONE_IA`)：Amazon S3 只在一个可用区存储对象数据，因此比 S3 Standard-IA 更便宜。但是，数据无法灵活地应对由于地震和洪水灾害而造成可用区物理丢失的情况。S3 One Zone-IA 存储类和 S3 Standard-IA 一样具有持久性，但是可用性和弹性较差。有关存储类的持久性和可用性比较，请参阅此部分结尾的 [比较 Amazon S3 存储类](#sc-compare)。有关定价信息，请参阅 [Amazon S3 定价](https://www.amazonaws.cn/s3/pricing/)。对于数据驻留和隔离应用场景，您可以在 Amazon Local Zones 中创建目录存储桶，并使用 S3 Express One Zone (`EXPRESS_ONEZONE`) 和 S3 One Zone-IA (`ONEZONE_IA`) 存储类。有关 Local Zones 中的目录存储桶的更多信息，请参阅[数据驻留工作负载](directory-bucket-data-residency.md)。

我们建议执行下列操作：
+ **S3 Standard-IA** (`STANDARD_IA`)：用于无法重新创建的主数据或唯一数据副本。
+ **S3 One Zone-IA** (`ONEZONE_IA`)：如果在可用区出现故障时可重新创建数据，可在配置 S3 跨区域复制（CRR）时用于对象副本。此外，对于数据驻留和隔离，您可以在 Amazon Local Zones 中创建目录存储桶，并使用 S3 One Zone-IA 存储类。

## 极少访问的对象的存储类
<a name="sc-glacier"></a>

**S3 Glacier Instant Retrieval** (`GLACIER_IR`)、**S3 Glacier Flexible Retrieval** (`GLACIER`) 和 **S3 Glacier Deep Archive** (`DEEP_ARCHIVE`) 存储类专为低成本、长期数据存储和数据归档而设计。这些存储类要求最低存储持续时间和检索费用，因此它们对极少访问的数据最有效。有关 S3 Glacier 存储类的更多信息，请参阅[了解用于长期数据存储的 S3 Glacier 存储类](glacier-storage-classes.md)。

Amazon S3 提供以下 S3 Glacier 存储类：
+ **S3 Glacier Instant Retrieval** (`GLACIER_IR`)：用于极少访问且需要毫秒级检索的长期数据。此存储类中的数据可用于实时访问。
+ **S3 Glacier Flexible Retrieval** (`GLACIER`)：用于可能需要在几分钟内检索其部分数据的归档。此存储类中的数据已归档，不可用于实时访问。
+ **S3 Glacier Deep Archive** (`DEEP_ARCHIVE`)：用于归档极少需要访问的数据。此存储类中的数据已归档，不可用于实时访问。

### 检索存档的对象
<a name="sc-glacier-restore"></a>

您可以按照与其它存储类相同的方式（如[设置对象的存储类](sc-howtoset.md)一节所述），将对象的存储类设置为 S3 Glacier Flexible Retrieval (`GLACIER`) 或 S3 Glacier Deep Archive (`DEEP_ARCHIVE`)。但是，S3 Glacier Flexible Retrieval 和 S3 Glacier Deep Archive 对象已归档，不可用于实时访问。有关更多信息，请参阅 [了解 S3 Glacier Flexible Retrieval 和 S3 Glacier Deep Archive 中的归档存储](archival-storage.md)。

**注意**  
如果使用 S3 Glacier 存储类，您的对象将保留在 Amazon S3 中。您无法直接通过单独的 Amazon Glacier 服务访问它们。有关 Amazon Glacier 服务的信息，请参阅 [Amazon Glacier Developer Guide](https://docs.amazonaws.cn/amazonglacier/latest/dev/)。

## Amazon S3 on Outposts 的存储类
<a name="s3-outposts"></a>

通过使用 Amazon S3 on Outposts，您可以在 Amazon Outposts 资源上创建 S3 存储桶，并在本地为需要本地数据访问、本地数据处理和数据驻留的应用程序存储和检索对象。您可以像在 Amazon S3 中一样在 Amazon Outposts 上使用相同的 API 操作和特征，包括访问策略、加密和标记。您可以通过 Amazon Web Services 管理控制台、Amazon CLI、Amazon SDK 或 REST API 使用 S3 on Outposts。

S3 on Outposts 提供了一个新的存储类 S3 Outposts (`OUTPOSTS`)。S3 Outposts 存储类仅可用于存储在 Outposts 上的存储桶中的对象。如果您尝试将此存储类与 Amazon Web Services 区域中的 S3 存储桶一起使用，则会出现 `InvalidStorageClass` 错误。此外，如果您尝试将其他 S3 存储类与存储在 S3 on Outposts 存储桶中的对象一起使用，则会出现相同的错误。

存储在 S3 Outposts (`OUTPOSTS`) 存储类中的对象始终使用具有 Amazon S3 托管式加密密钥的服务器端加密 (SSE-S3) 进行加密。有关更多信息，请参阅 [使用具有 Amazon S3 托管式密钥的服务器端加密（SSE-S3）](UsingServerSideEncryption.md)。

您还可以明确选择使用具有客户提供的加密密钥的服务器端加密 (SSE-C) 来加密存储在 S3 Outposts 存储类中的对象。有关更多信息，请参阅 [使用具有客户提供的密钥的服务器端加密（SSE-C）](ServerSideEncryptionCustomerKeys.md)。

**注意**  
S3 on Outposts 不支持带 Amazon Key Management Service (Amazon KMS) 密钥的服务器端加密 (SSE-KMS)。

有关 S3 on Outposts 的更多信息，请参阅《Amazon S3 on Outposts 用户指南》**中的 [What is S3 on Outposts](https://docs.amazonaws.cn/AmazonS3/latest/s3-outposts/S3onOutposts.html)。

## 比较 Amazon S3 存储类
<a name="sc-compare"></a>

下表比较了存储类，包括其可用性、持久性、最短存储持续时间和其他注意事项。


****  

| 存储类 | 设计专门针对 | 持久性 (设计目标) | 可用性 (设计目标) | 可用区 | 最小存储持续时间 | 最小可计费对象大小 | 其他考虑因素  | 
| --- | --- | --- | --- | --- | --- | --- | --- | 
|  S3 Standard (`STANDARD`)  |  频繁访问的数据（每月超过一次），访问时间为毫秒级  |  99.999999999%   |  99.99%  |  >=3  |  无  |  无  |  无  | 
|  S3 Standard-IA (`STANDARD_IA`)  |  毫秒级访问的历时长久、访问频率不高的数据（每月一次）  |  99.999999999%   |  99.9%  |  >=3  |  30 天  |  128 KB  |  按每 GB 收取检索费用。  | 
|  S3 Intelligent-Tiering (`INTELLIGENT_TIERING`)  |  访问模式未知、不断变化或不可预测的数据  |  99.999999999%  |  99.9%  |  >=3  |  无  |  无  |  按对象收取监控和自动化费用。无检索费用。小于 128 KB 的对象不受监控，始终存储在 Frequent Access 层中。有关更多信息，请参阅 [S3 Intelligent-Tiering 工作原理](intelligent-tiering-overview.md)。  | 
|  S3 One Zone-IA (`ONEZONE_IA`)  |  毫秒级访问的可重建、访问频率不高的数据（每月一次）  |  99.999999999%   |  99.5%  |  1  |  30 天  |  128 KB  |  按每 GB 收取检索费用。无法灵活地应对可用区丢失的情况。  | 
|  S3 Express One Zone（`EXPRESS_ONEZONE`）  |  在单个 Amazon 可用区内，向延迟敏感型应用程序提供毫秒级的数据访问  |  99.999999999%   |  99.95%  |  1  |  无  |  无  |  S3 Express One Zone (`EXPRESS_ONEZONE`) 对象存储在您选择的单个 Amazon 可用区内。  | 
|  S3 Glacier Instant Retrieval (`GLACIER_IR`)  | 历时长久的归档数据每季度访问一次，毫秒级访问 | 99.999999999%  |  99.9%  |  >=3  |  90 天  |  128 KB  | 按每 GB 收取检索费用。 | 
|  S3 Glacier Flexible Retrieval (`GLACIER`)  | 每年访问一次长期归档数据，检索时间为几分钟到几小时 | 99.999999999%  |  99.99% (在您还原对象之后)  |  >=3  |  90 天  |  不适用\$1  | 按每 GB 收取检索费用。您必须先还原存档对象，然后才可以访问它们。有关信息，请参阅 [恢复已归档的对象](restoring-objects.md)。 | 
|  S3 Glacier Deep Archive (`DEEP_ARCHIVE`)  | 长期存在的归档数据每年访问不到一次，检索时间为数小时 | 99.999999999%  |  99.99% (在您还原对象之后)  |  >=3  |  180 天  |  不适用\$1\$1  | 按每 GB 收取检索费用。您必须先还原存档对象，然后才可以访问它们。有关信息，请参阅 [恢复已归档的对象](restoring-objects.md)。 | 
|  不建议使用低冗余存储 (`REDUCED_REDUNDANCY`)  |  具有毫秒级访问的非关键、频繁访问的数据  |  99.99%   |  99.99%  |  >=3  |  无  |  无  |  无  | 

\$1 S3 Glacier Flexible Retrieval 要求为每个归档对象提供 40KB 的额外元数据。这包括以 S3 Glacier Flexible Retrieval 费率计费的 32KB 元数据（识别和检索您的数据所需），以及按 S3 Standard 费率计费的额外 8KB 数据。需要使用 S3 Standard 速率来维护归档到 S3 Glacier Flexible Retrieval 的对象的用户定义名称和元数据。有关存储类的更多信息，请参阅 [Amazon S3 存储类](https://www.amazonaws.cn/s3/storage-classes/)。

\$1\$1 S3 Glacier Deep Archive 要求为每个归档对象提供 40KB 的额外元数据。这包括以 S3 Glacier Deep Archive 费率计费的 32KB 元数据（识别和检索您的数据所需），以及按 S3 Standard 费率计费的额外 8KB 数据。需要使用 S3 Standard 速率来维护归档到 Amazon S3 Glacier Deep Archive 的对象的用户定义名称和元数据。有关存储类的更多信息，请参阅 [Amazon S3 存储类](https://www.amazonaws.cn/s3/storage-classes/)。

请注意，除了 S3 One Zone-IA (`ONEZONE_IA`) 和 S3 Express One Zone (`EXPRESS_ONEZONE`) 之外，所有的存储类都设计为能够应对由灾难导致的可用区的物理损失。除了应用场景的性能要求之外，还考虑了成本。有关存储类定价，请参阅 [Amazon S3 定价](https://www.amazonaws.cn/s3/pricing/)。