

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

# 使用 Amazon S3 备份和恢复
<a name="backup-recovery-amazon-s3"></a>

可以使用 Amazon Simple Storage Service（Amazon S3）随时存储和检索任何数量的数据。您可以将 Amazon S3 用作应用程序数据以及文件级备份和还原过程的持久存储。例如，您可以使用 AWS CLI 或使用备份脚本将数据库备份从数据库实例复制到 Amazon S3 AWS SDKs。

AWS 服务 使用 Amazon S3 获得高度耐用和可靠的存储，如以下示例所示：
+ Amazon EC2 使用 Amazon S3 来存储 EBS 卷和 EC2 实例存储的 Amazon EBS 快照。
+ Storage Gateway 与 Amazon S3 集成，为本地环境提供由 Amazon S3 支持的文件共享、卷和磁带库。
+ Amazon RDS 使用 Amazon S3 来生成数据库快照。

许多第三方备份解决方案也使用 Amazon S3。例如，Arcserve 统一数据保护支持 Amazon S3 对本地和云原生服务器进行持久备份。

您可以使用这些服务的 Amazon S3 集成功能来简化备份和恢复方法。同时，您可以从 Amazon S3 提供的高耐久性和可用性中受益。

Amazon S3 将数据作为对象存储在名为存储桶中的资源。您可将任意数量的对象存储在存储桶。您可以通过精细访问控制来写入、读取和删除存储桶中的对象。单个对象大小最多为 5 TB。

## 使用 Amazon S3 存储类别降低备份数据存储成本
<a name="amazon-s3"></a>

Amazon S3 提供多种存储类别，适用于本地部署、混合部署和云原生架构。所有存储类别均提供可扩展容量，随着备份数据集的增长，无需进行卷或介质管理。 pay-for-what-you-use 模式和低成本 GB/month 使 Amazon S3 存储类适合各种数据保护用例。Amazon S3 存储类别专为不同使用案例而设计，包括以下类别：
+ [经常访问存储类别](https://docs.aws.amazon.com/AmazonS3/latest/userguide/storage-class-intro.html#sc-freq-data-access)，适用于通用存储经常访问的数据（例如配置文件、计划外备份、每日备份）。这包括 S3 标准存储类别，这是所有 Amazon S3 对象的默认设置。
+ [不常访问存储类别](https://docs.aws.amazon.com/AmazonS3/latest/userguide/storage-class-intro.html#sc-infreq-data-access)，适用于存放时间较长但不常访问的数据（例如月度备份）。这包括 S3 Standard-IA 存储类别。IA 表示*不经常访问*。
+ [S3 Glacier 存储类别](https://docs.aws.amazon.com/AmazonS3/latest/userguide/glacier-storage-classes.html)，适用于存放时间极长但极少被访问的数据（例如年度备份）。这包括 S3 Glacier Deep Archive Deep Archive，它提供了成本最低的存储。 AWS

对于访问模式未知或不断变化的备份，可以使用 [S3 Intelligent-Tiering 存储类别](https://docs.aws.amazon.com/AmazonS3/latest/userguide/intelligent-tiering.html)。S3 Intelligent-Tiering 会根据对象上次访问的天数，自动将其迁移至最具成本效益的存储层。

**注意**  
某些存储类别设有最短计费周期。有关详情，请参阅 [Amazon S3](https://aws.amazon.com/s3/pricing/) [定价](https://aws.amazon.com/s3/pricing/)，然后通过网页搜索查找 `duration`。

Amazon S3 提供生命周期策略，您可以配置这些策略以在整个生命周期中对您的数据进行管理。设置策略后，您的数据将自动迁移到相应的存储类别，而无需对应用程序进行任何更改。有关更多信息，请参阅[《Amazon S3 对象生命周期管理》](https://docs.aws.amazon.com/AmazonS3/latest/userguide/object-lifecycle-mgmt.html)文档。

为降低备份成本，可根据您的恢复时间目标 (RTO) 和恢复点目标 (RPO) 使用分层存储类方法，如以下示例所示：
+ 使用 S3 标准进行过去 2 周的每日备份
+ 使用 S3 标准-IA 进行过去 3 个月的每周备份
+ 对 S3 Glacier Flexible Retrieval 进行过去一年的季度备份
+ 对 S3 Glacier Deep Archive 进行过去 5 年的年度备份
+ 5 年后从 S3 Glacier Deep Archive 中删除备份

## 创建用于备份和存档的标准 S3 存储桶
<a name="standard-buckets"></a>

您可以使用 S3 生命周期策略实施公司的备份和保留策略，创建用于备份和存档的标准 S3 存储桶。 AWS 计费的成本分配标记和报告基于在[存储桶级别分配的标签](https://docs.aws.amazon.com/AmazonS3/latest/dev/CostAllocTagging.html)。如果成本分配很重要，请为每个项目或业务单元创建单独的备份和存档 S3 存储桶，以便您可以相应地分配成本。

您的备份脚本和应用程序可以使用您创建的备份和存档 S3 存储桶来存储应用程序和工作负载数据的 point-in-time快照。您可以创建标准 S3 前缀来帮助您整理 point-in-time数据快照。例如，如果您创建每小时备份，请考虑使用备份前缀，例如 `YYYY/MM/DD/HH/<WorkloadName>/<files...>`。通过这样做，您可以手动或以编程方式快速检索 point-in-time备份。

## 使用 Amazon S3 版本控制来自动维护回滚历史记录
<a name="rollback-history"></a>

您可以启用 S3 对象版本控制来维护对象更改的历史记录，包括恢复到先前版本的功能。这对于可能比 point-in-time备份计划更频繁地更改的配置文件和其他对象很有用。对于必须单独还原的文件，它也很有用。

## 使用 Amazon S3 备份和恢复自定义配置文件 AMIs
<a name="custom"></a>

具有对象版本控制功能的 Amazon S3 可以成为您的工作负载配置和选项文件的记录系统。例如，您可以使用由 ISV 维护的标准 AWS Marketplace Amazon EC2 映像。此映像可能包含其配置保存在多个配置文件中的软件。您可以在 Amazon S3 中维护您的自定义配置文件。当您的实例启动时，您可以将这些配置文件作为[实例用户数据](https://docs.aws.amazon.com/AWSEC2/latest/UserGuide/user-data.html)的一部分复制到您的实例。应用此方法时，您无需自定义和重新创建 AMI 即可使用更新的版本。

## 在自定义备份和还原过程中使用 Amazon S3
<a name="amazon-s3-custom"></a>

Amazon S3 提供了一个通用备份存储，您可以将其快速集成到现有的自定义备份流程中。您可以使用 AWS CLI AWS SDKs、和 API 操作来集成使用 Amazon S3 的备份和还原脚本和流程。例如，您可能有一个执行夜间数据库导出的数据库备份脚本。您可以自定义此脚本，将夜间备份复制到 Amazon S3 以进行异地存储。有关如何执行此操作的概述，请参阅[分批将文件上传到云](https://aws.amazon.com/getting-started/hands-on/backup-to-s3-cli/)教程。

您可以采用类似的方法根据不同应用程序的 RPO 为其导出和备份数据。此外，您还可以使用 AWS Systems Manager 在托管实例上运行备份脚本。Systems Manager 为您的各个备份过程提供自动化、访问控制、计划、记录和通知。

## 保护 Amazon S3 中的备份数据
<a name="security"></a>

数据安全是一个普遍关注的问题，并且非常 AWS 重视安全性。安全是每项 AWS 服务的基础。Amazon S3 提供针对静态数据和传输中数据的访问控制及加密功能。所有 Amazon S3 端点都支持 SSL/TLS 来对传输中的数据进行加密。可以通过执行以下操作为静态对象设置加密：
+ 使用[具有 Amazon S3 托管式加密密钥的服务器端加密](https://docs.aws.amazon.com/AmazonS3/latest/userguide/UsingServerSideEncryption.html)（默认值）
+ 使用[服务器端加密， AWS Key Management Service (AWS KMS) 密钥存储在 AWS KMS](https://docs.aws.amazon.com/AmazonS3/latest/userguide/UsingKMSEncryption.html)
+ 使用[客户端加密](https://docs.aws.amazon.com/AmazonS3/latest/userguide/UsingClientSideEncryption.html)

您可以使用 AWS Identity and Access Management (IAM) 来控制对 S3 对象的访问权限。IAM 可让您控制 S3 存储桶中单个对象和特定前缀路径的权限。您可以使用对象[级日志记录来审核对 S3 对象的](https://docs.aws.amazon.com/AmazonS3/latest/user-guide/enable-cloudtrail-events.html)访问权限。 AWS CloudTrail