S3 一般常见问题
问:什么是 Amazon S3?
Amazon S3 是专为从任意位置存储和取回任意数量的数据而构建的对象存储。S3 是一种简单的存储服务,以极低的成本提供行业领先的耐久性、可用性、性能、安全性和几乎无限的可扩展性。
问:Amazon S3 可以用来做什么?
Amazon S3 提供一个简单的 Web 服务界面,使用该界面,您可以随时在任何位置存储和取回任意数量的数据。使用此服务,您可以轻松构建使用原生云存储的应用程序。由于 Amazon S3 具有高度可扩展性,且您只需为实际用量付费,您可以从较小用量起步,并根据需要扩展应用程序,而不影响性能或可靠性。
Amazon S3 的设计还具有很高的灵活性。存储您需要的任意类型和任意数量的数据;读取相同数据一百万次,或者仅在紧急灾难恢复时读取;构建简单的 FTP 应用程序或复杂的 Web 应用程序,例如 Amazon.com 零售网站。Amazon S3 让您能够腾出时间专注于创新,而不是花时间考虑如何存储数据。
问:如何开始使用 Amazon S3?
要注册 Amazon S3,请访问 S3 控制台。要访问此服务,您必须拥有 Amazon Web Services 账户。如果还没有账户,在您开始 Amazon S3 注册过程时,系统将会提示您创建账户。注册后,参考 Amazon S3 文档,查看 S3 入门资料,并在资源中心查看其他资源以开始使用 Amazon S3。
问:我可以使用 Amazon S3 解决哪些本地解决方案无法解决的问题?
Amazon S3 让您可以充分利用 Amazon 自身的规模优势,而无需前期投资,也不会影响性能。通过使用 Amazon S3,可以经济、简单地确保您的数据可快速访问、始终可用且安全。
问:在 Amazon S3 中可以存储什么类型的数据?
您几乎可以存储任何格式、任何类型的数据。请参阅 Amazon Web Services 许可协议,了解详细信息。
问:在 Amazon S3 中可以存储多少数据?
您可以在 Amazon S3 中存储的总数据容量和对象个数不受限制。各个 Amazon S3 对象的大小范围可以从最小 0 字节到最大 5TB。可在单个 PUT 中上传的最大数据对象为 5GB。对于大于 100MB 的对象,客户应该考虑使用分段上传功能。
问:什么是 S3 通用存储桶?
存储桶是存储在 Amazon S3 中的对象的容器,您可以在存储桶中存储任意数量的对象。通用存储桶是原始 S3 存储桶类型,单一通用存储桶可以包含跨所有存储类(S3 Express One Zone 除外)的对象。对于大多数应用场景和访问模式,建议使用该存储桶。
问:什么是 S3 目录存储桶?
存储桶是存储在 Amazon S3 中的对象的容器,您可以在存储桶中存储任意数量的对象。S3 目录存储桶仅允许存储在 S3 Express One Zone 存储类中的对象,该存储类可在单个可用区内实现更快的数据处理。对于低延迟应用场景,建议使用该存储桶。每个 S3 目录存储桶每秒可以支持数十万个事务(TPS),这与存储桶内的目录数量无关。
问:通用存储桶和目录存储桶有什么区别?
存储桶是存储在 Amazon S3 中的对象的容器,您可以在存储桶中存储任意数量的对象。通用存储桶是原始 S3 存储桶类型,单一通用存储桶可以包含跨所有存储类(S3 Express One Zone 除外)的对象。对于大多数应用场景和访问模式,建议使用该存储桶。S3 目录存储桶仅允许存储在 S3 Express One Zone 存储类中的对象,该存储类可在单个可用区内实现更快的数据处理。对于低延迟应用场景,建议使用该存储桶。 每个 S3 目录存储桶每秒可以支持数十万个事务(TPS),这与存储桶内的目录数量无关。
问:Amazon 如何处理我在 Amazon S3 中的数据?
Amazon 将存储您的数据,并跟踪其相关使用情况,用于账单用途。除非法律要求,Amazon 不会出于 Amazon S3 服务之外的任何目的访问您的数据。请参阅 Amazon Web Services 许可协议,了解详细信息。
问:Amazon 是否会将自己的数据存储在 Amazon S3 中?
是。Amazon 内部的公司也将 Amazon S3 用于众多项目。其中很多项目都使用 Amazon S3 作为授权数据存储,并依赖它执行关键业务型操作。
问:Amazon S3 数据是如何组织的?
Amazon S3 是基于密钥的简单数据对象存储。存储数据时,您应分配唯一数据对象密钥,此后可使用该密钥来提取数据。密钥可以是任何字符串,并且可以被构建为模拟分层属性。或者,您也可以使用 S3 对象标记来组织所有 S3 存储桶中的数据和/或前缀。
问:如何与 Amazon S3 连接?
Amazon S3 提供基于标准的简单 REST Web 服务接口,该接口可用于任何互联网开发工具箱。我们特意对这些操作进行了简化,以便轻松添加新的分发协议和功能层。
问:Amazon S3 的可靠性如何?
Amazon S3 为您提供了一个快速、低成本、高度可扩展且高度可用的数据存储基础设施,Amazon 自己也使用该基础设施来运行其全球网站网络。S3 Standard 存储类的设计可实现 99.99% 的可用性,S3 Standard-IA 存储类、S3 Intelligent-Tiering 存储类和 S3 Glacier Instant Retrieval 存储类的设计可实现 99.9% 的可用性,S3 One Zone-IA 存储类的设计可实现 99.5% 的可用性,而 S3 Glacier Flexible Retrieval 和 S3 Glacier Deep Archive 类的设计可实现 99.99% 的可用性和 99.9% 的 SLA。所有这些存储类均受 Amazon S3 服务等级协议支持。
问:如果来自应用程序的流量突然激增,Amazon S3 将如何执行?
Amazon S3 从一开始就专为处理来自任何互联网应用程序的高流量而设计。即用即付定价模式以及无限制的容量,可以确保您的递增费用不会变化,而且您的服务也不会中断。Amazon S3 的庞大规模使得我们能够均衡地分布负载,任何应用程序都不会受到流量峰值的影响。
问:Amazon S3 是否提供服务等级协议 (SLA)?
是。如果客户的月度正常运行时间百分比在任何账单周期内低于我们的服务承诺,Amazon S3 SLA 将提供服务积分。
问:什么是适用于 Amazon S3 的一致性模型?
Amazon S3 自动提供强大的写入后读取一致性,无需更改性能或可用性,无需牺牲应用程序的区域隔离性,并且无需任何额外费用。
成功写入新对象或覆盖现有对象后,任何后续读取请求都会立即收到该对象的最新版本。S3 还为列表操作提供强大的一致性,因此在写入之后,可以立即在存储桶中执行对象列表,并反映所有更改。
问:为什么强大的写入后读取一致性可以帮助到我?
当您需要在写入后立即读取对象时,强大的写入后读取一致性可以提供帮助 – 例如,当您经常在写入对象后立即读取和列出这些对象时。高性能计算工作负载也会受益,因为对象被覆盖然后同时多次读取时,强大的写入后读取一致性可保证最新写入是跨全部读取的读取。这些应用程序自动且立即受益于强大的写入后读取一致性。S3 的强一致性还会降低成本,因为不再需要提供强一致性的额外基础设施。
AWS 区域
问:我的数据存储在哪里?
创建 Amazon S3 存储桶时,您可以指定一个 AWS 区域。对于 S3 Standard、S3 Standard-IA、S3 Intelligent-Tiering、S3 Glacier Instant Retrieval、S3 Glacier Flexible Retrieval 和 S3 Glacier Deep Archive 存储类,您的对象会自动存储在至少三个可用区(AZ)中的多个设备上。 可用区与任何其他可用区都间隔一定距离,不过彼此都在 100 公里(60 英里)以内。存储在 S3 One Zone-IA 存储类中的对象将以冗余方式存储在您选择的 AWS 区域的单个可用区中。对于 S3 on Outposts,您的数据将存储在 Outpost 本地环境中,除非您手动选择将该数据传输到 AWS 区域。请参阅 AWS 区域性服务列表,了解 Amazon S3 服务在不同 AWS 区域的具体提供情况。
问:什么是 AWS 区域?
AWS 区域是世界各地的 AWS 集群数据中心的物理位置。 区域内的每组逻辑数据中心称为可用区(AZ)。每个 AWS 区域由一个地理区域内的至少三个隔离的且在物理上分隔的可用区组成。 与其他通常将区域定义为一个数据中心的云提供商不同的是,为每个 AWS 区域设计多个可用区可为客户提供优势。每个可用区都有独立的电力、冷却和物理安全性,并通过冗余的超低延迟网络连接。
问:什么是 AWS 可用区(AZ)?
可用区(AZ)是指 AWS 区域中一个或多个具有冗余电源、联网和连接的离散数据中心。可用区让客户能够运行在可用性、容错能力和可扩展性方面比单个数据中心更强的生产应用程序和数据库。一个 AWS 区域中的所有可用区都通过高带宽、低延迟网络与完全冗余的专用城域光纤互连,为可用区之间提供高吞吐量和低延迟的联网。
Amazon S3 Standard、S3 Standard-Infrequent Access、S3 Intelligent-Tiering、S3 Glacier Instant Retrieval、S3 Glacier Flexible Retrieval 和 S3 Glacier Deep Archive 存储类在至少三个可用区中复制数据,以免整个可用区丢失。在公开提供的可用区不足 3 个的区域中,这种情况仍然存在。存储在这些存储类中的对象可从单个 AWS 区域的所有可用区进行访问。
Amazon S3 单区 – IA 存储类在单个可用区内复制数据。存储在 S3 One Zone-IA 中的数据对由于地震、火灾和洪水等灾难导致的可用区的物理损失不具有弹性。
问:如何确定将数据存储在哪个 AWS 区域中?
需要基于您的特定应用程序考虑多个因素。例如,您可能希望将数据存储在靠近客户、数据中心或其他 AWS 资源的区域中,以减少数据访问延迟。您也可能希望将数据存储在远离其他运营的区域中,以实现地理位置冗余和灾难恢复目的。您还应该考虑可让您满足特定法律和法规要求和/或降低存储成本的区域 – 您可以选择价格较低的区域以节省开支。有关 S3 定价的信息,请访问 Amazon S3 定价页面。
问:Amazon S3 在全球哪些地区提供?
Amazon S3 在全球所有 AWS 区域中提供,无论您身处何地,都可以使用 Amazon S3。您只需决定要将 Amazon S3 数据存储在哪个 AWS 区域中即可。请参阅 AWS 区域服务列表,获取当前提供 S3 的 AWS 区域的列表。
计费
问:Amazon S3 的费用是多少?
使用 Amazon S3,您只需可以按实际用量付费。没有最低收费。您可以使用 AWS 定价计算器估算您的每月费用。
对于成本较低的区域,AWS 的收费也比较低。有些价格因 Amazon S3 区域而异,具体账单价格取决于您的 S3 存储桶所在的位置。对于通过 COPY 请求在 Amazon S3 区域内部传输的数据,我们不收取数据传输费用。通过 COPY 请求在 AWS 区域间传输的数据按 Amazon S3 定价页面上指定的费率收费。对于在同一区域内的 Amazon EC2(或任何 AWS 服务)和 Amazon S3 之间传输的数据,或例如在美国东部(弗吉尼亚州北部)区域传输的数据,我们不收取数据传输费用。但是,在所有其他区域的 Amazon EC2(或任何 AWS 服务)和 Amazon S3 之间传输的数据按 Amazon S3 定价页面上指定的费率付费,(例如,美国东部(弗吉尼亚州北部)的 Amazon EC2 和美国西部(北加利福尼亚)的 Amazon S3 之间传输的数据)。 数据传输费用向源存储桶所有者计费。
对于 S3 on Outposts 定价,请访问 Outposts 定价页面。
问:使用 Amazon S3 是如何收费和计费的?
开始使用 Amazon S3 时,没有安装费,也无需订立合约。每个月底将自动向您收取当月使用费。您可以随时查看当前账单周期的费用,只需登录您的 Amazon Web Services 账户,然后选择与您的控制台配置文件关联的“账单控制面板”。
使用 AWS 免费使用套餐*,您可在除 AWS GovCloud 区域之外的所有区域免费开始使用 Amazon S3。注册后,新 AWS 客户将会获得 5GB 的 Amazon S3 Standard 存储、20000 个 Get 请求、2000 个 Put 请求以及一年内每月 100GB 的数据传出量(至 Internet、其他 AWS 区域或 Amazon CloudFront)。未使用的月度使用量不会结转至下月。
Amazon S3 对以下类型的使用收费。请注意:以下计算假定没有使用 AWS 免费套餐。
使用的存储:
Amazon S3 定价页面上说明了 Amazon S3 存储的定价详情。
每月计费的存储容量基于全月内使用的平均存储量。其中包括您在 AWS 账户下创建的存储桶中存储的所有数据对象数据和元数据。我们按“TimedStorage-ByteHrs”衡量您的存储使用量,每月底合计该值,得出您的月度费用。
存储示例:
假设您在 3 月份的前 15 天在存储桶中存储 100GB(107374182400 字节)的 Amazon S3 Standard 存储数据,在 3 月份的后 16 天存储 100TB(109951162777600 字节)的 Amazon S3 Standard 存储数据。
3 月底,您的字节小时使用量如下:总字节小时使用量 = [107374182400 字节 x 15 天 x(24 小时/天)] + [109951162777600 字节 x 16 天 x(24 小时/天)] = 42259901212262400 字节小时。请根据一个月的实际天数计算小时数。例如,在我们的示例中,我们使用的是三月,该月份包含 31 天或 744 小时。
将其转换为 GB 月使用量:42259901212262400 字节小时/每 GB 1073741824 字节/每月 744 小时 = 52900GB 月
这一使用容量跨越两个不同容量层级。每月存储价格是在假定数据存储在美国东部(弗吉尼亚北部)区域的情况下计算得出:50TB 层级:51200GB x 0.023 USD = 1,177.60 USD 50TB 到 450TB 层级:1,700GB x 0.022 USD = 37.40 USD
总存储成本 = 1177.60 USD + 37.40 USD = 1215.00 USD
网络数据传入:
Amazon S3 定价页面上说明了 Amazon S3 数据传入的定价详情。它代表发送到您的 Amazon S3 存储桶的数据量。
网络数据传出:
Amazon S3 定价页面上说明了 Amazon S3 数据传出的定价详情。对于 Amazon S3,只要是从指定 Amazon S3 区域以外的位置读取您存储桶中的数据,此费用即适用。
数据传出定价费率层级考虑到了您在特定区域通过 Amazon EC2、Amazon S3、Amazon RDS、Amazon SimpleDB、Amazon SQS、Amazon SNS 和 Amazon VPC 传到 Internet 的数据总量。这些套餐不适用于从一个 AWS 区域到另一个 AWS 区域的 Amazon S3 数据传出量。
数据传出示例:
假定在某个 31 天月份,您每天将 1TB 的 Amazon S3 数据从美国东部(弗吉尼亚州北部)区域传到 Internet。假定在同一个 31 天月份,您每天还将 1TB 的 Amazon EC2 实例数据从同一区域传到 Internet。
您的总数据传输量将为 62TB(31TB 来自 Amazon S3,31TB 来自 Amazon EC2)。这个数据量等于 63488GB (62TB * 1024GB/TB)。
此使用容量跨越三个不同容量层级。以下计算的月度数据传出费用假定数据传输发生在美国东部(弗吉尼亚北部)区域:
10TB 级:10239GB(10×1024GB/TB – 1 [免费])x 0.09 USD = 921.51 USD
10TB 至 50TB 级:40960GB (40×1024) x 0.085 USD = 3481.60 USD
50TB 至 150TB 级:12288GB(剩余)x 0.070 USD = 860.16 USD
总数据传出费用 = 921.51 USD + 3481.60 USD + 860.16 USD = 5263.27 USD
数据请求:
Amazon S3 定价页面上说明了 Amazon S3 请求定价的详情。
请求示例:
假定您在 3 月每天将 10000 个文件传入 Amazon S3,将 20000 个文件传出 Amazon S3。然后,您在 3 月 31 日删除了 5000 个文件。
总计 PUT 请求数 = 10000 个请求 x 31 天 = 310000 个请求
总计 GET 请求数 = 20000 个请求 x 31 天 = 620000 个请求
总计 DELETE 请求数 = 5000 × 1 天 = 5000 个请求
假定您的存储桶位于美国东部(弗吉尼亚北部)区域,则请求费用按以下方式计算:
310,000 个 PUT 请求:310,000 个请求 x 0.005 USD/1,000 = 1.55 USD
620000 个 GET 请求:620000 个请求 x 0.004 USD/10000 = 0.25 USD
5000 个 DELETE 请求 = 5000 个请求 x 0.00 USD(无费用) = 0.00 USD
数据恢复:
Amazon S3 数据取回定价适用于所有存储类(S3 Standard 和 S3 Intelligent-Tiering 除外),并在 S3 定价页面上进行了汇总。
数据取回示例:
假设您在一个月内取回了 300GB 的 S3 Standard-IA,其中的 100GB 转出至 Internet,100GB 转至同一 AWS 区域的 EC2,还有 100GB 转至同一 AWS 区域的 Amazon CloudFront。
您的数据取回费将按以下方式计算:300GB x 0.01 USD/GB = 3.00 USD。注意,您还需要支付传出至 Internet 部分的网络数据传输费。
* * 除 AWS GovCloud 区域之外,您在其他所有区域的免费套餐使用量均按月计算,自动计入账单 – 未用完的月使用量不会转入下月。存在限制条件。有关更多详细信息,请参阅优惠条款。
问:为什么价格因选择的 Amazon S3 区域而异?
对于成本较低的区域,AWS 的收费也比较低。例如,我们在美国东部(弗吉尼亚州北部)区域的成本低于美国西部(北加利福尼亚)区域的成本。
问:使用版本控制是如何收费的?
正常 Amazon S3 费率适用于存储或请求的数据对象的每个版本。例如,我们以下列场景为例,说明使用版本控制时的存储费用(假定当月有 31 天):
1) 当月第 1 天:您对存储桶中的 4 GB(4294967296 字节)数据执行了 PUT 操作。
2) 当月第 16 天:您对同一存储桶中的 5GB(5368709120 字节)数据执行了 PUT 操作,使用与第 1 天的原始 PUT 操作相同的密钥。
分析上述操作的存储费用时,请注意,在第 15 天写入 5GB 数据对象时,第 1 天的 4GB 数据对象并未从存储桶删除。相反,这 4GB 数据对象作为旧版本保留,5GB 数据对象成为存储桶中的最近写入的数据对象版本。当月底:
总字节小时使用量
[4294967296 字节 x 31 天 x(24 小时/天)] + [5368709120 字节 x 16 天 x(24 小时/天)] = 5257039970304 字节小时。
转换为 GB 月:
5257039970304 字节-小时 x(1GB/1073741824 字节)x(1 月/744 小时) = 6.581GB 月
成本根据 Amazon S3 定价页面上列出的您所在区域的当前费率计算得出。
问:通过 AWS 管理控制台访问 Amazon S3 是如何收费的?
通过 AWS 管理控制台访问 Amazon S3 时,该服务的正常定价适用。为提供优化的体验,AWS 管理控制台可以主动执行请求。此外,某些交互操作可能导致对服务的多个请求。
问:如果我使用其他 AWS 账户访问 Amazon S3 存储桶,应该如何付费?
当您使用其他 AWS 账户访问存储时,我们将按正常 Amazon S3 定价收费。或者,您也可以选择将存储桶配置为申请方付款存储桶,在这种情况下,将由申请方支付 Amazon S3 数据的相关申请和下载费用。
有关申请方付款存储桶配置的更多信息,请参阅 Amazon S3 文档。
问:当我将数据移出 AWS 时,是否需要支付数据传输至互联网的费用?
当符合条件的客户按照以下流程将所有数据移出 AWS 时,AWS 会为他们免费提供将数据传输到互联网的服务。
问:我想将我的数据移出 AWS。如何申请免费将数据传出至互联网?
完成以下步骤:
1) 如果您有专门的 AWS 客户团队,请先联系他们并告知他们您的计划。在某些情况下,如果您与 AWS 达成了协商承诺,则需要与 AWS 客户团队讨论您的选择。
2) 查看本页描述的标准和流程。
3) 联系 AWS 客户支持并表明您的请求是“通过免费数据传输将数据移出 AWS”。 AWS 客户支持将要求您提供信息,以便他们审核您的迁移计划、评估您是否有资格获得免费数据传输,并计算适当的抵扣金额。
4) 如果 AWS 客户支持批准您的迁移,您将根据 AWS 计算时您在 AWS 服务中存储的所有数据量获得数据传出费用的临时抵扣。AWS 客户支持将在您获得批准后通知您,然后您将有 60 天的时间完成从 AWS 的数据迁出。抵扣金仅适用于数据转出使用量,不适用于其他服务使用量。停止使用 AWS 服务后,您必须在 60 天内删除 AWS 账户中的所有剩余数据和工作负载,或者可以关闭您的 AWS 账户。
移动 IT 提供商的免费数据传输还需遵守以下标准:
a) 只有拥有活跃 AWS 账户且信誉良好的客户才有资格享受免费数据传出。
b) 如果您的 AWS 账户中存储的数据少于 100GB,您可以根据 AWS 现有的每月 100GB 数据传出免费套餐免费将此数据移出 AWS。AWS 账户中存储的数据少于 100GB 的客户没有资格获得额外抵扣金。
c) 若您要将所有数据移出 AWS,AWS 将免费为您提供将数据传出到互联网的服务。如果您只想调整单项服务的总使用量,而不是所有服务的使用量,请联系 AWS 客户支持。
d) 如果您的计划发生变化,或者您无法在 60 天内完成从 AWS 的数据迁出,则必须通知 AWS 客户支持。
e) 不包括使用 AWS 服务的标准服务费。只有支持您从 AWS 迁出数据的数据传出费用才有资格获得抵扣。但是,不包括从专门的数据传输服务(例如 Amazon CloudFront、AWS Direct Connect、AWS Snow Family 和 AWS Global Accelerator)传出的数据。
f) AWS 可能会审查您的服务使用情况以验证是否符合这些要求。如果我们确定您使用数据传出的目的不是从 AWS 中迁出数据,我们可能会向您收取已抵扣的数据传输费用。
g) AWS 可以随时更改向互联网的免费数据传出服务。
问:为什么在将数据移出 AWS 之前,我必须请求 AWS 预先批准将数据免费传出到互联网?
AWS 客户每天进行数亿次数据传输,而我们通常不知道任何给定数据传输的原因。例如,客户可能会将数据传输给其应用程序的最终用户、其网站的访问者或出于备份目的传输到另一个云或本地环境。因此,只有您事先告知,我们才能知道您的数据传输是为了支持您从 AWS 迁出数据。
Amazon S3 和 IPv6
问:什么是 IPv6?
连接到 Internet 的每个服务器和设备都必须具有一个唯一地址。Internet 协议版本 4 (IPv4) 是原始的 32 位寻址方案。但是,Internet 的持续发展意味着所有可用的 IPv4 地址都将随着时间而被用尽。Internet 协议版本 6 (IPv6) 是寻址机制,设计用以克服 IPv4 的全球地址限制。
问:IPv6 可以用来做什么?
使用适用于 Amazon S3 的 IPv6 支持,应用程序无需任何 IPv6 到 IPv4 转换软件或系统即可连接到 Amazon S3。您可以满足合规性要求,更轻松地与基于 IPv6 的现有本地应用程序集成,并且无需购买昂贵的联网设备来处理地址转换。您还可以借助 IPv6 地址利用 IAM 策略和存储桶策略中现有的源地址筛选功能,扩大您的选择范围以确保应用程序与 Amazon S3 安全交互。
问:如何在 Amazon S3 上开始使用 IPv6?
首先,您可以将应用程序指向 Amazon S3 的“双堆栈”端点,该端点同时支持通过 IPv4 和 IPv6 访问。在大多数情况下,无需进一步配置即可通过 IPv6 进行访问,因为大多数网络客户端倾向于默认使用 IPv6 地址。 因使用 IPv6 受到影响的应用程序可以随时切换回仅支持 IPv4 的标准端点。支持在所有商业 AWS 区域将 IPv6 用于 Amazon S3,包括 AWS GovCloud(美国)区域、由光环新网运行的 Amazon Web Services 中国(北京)区域、由宁夏西云数据运行的 Amazon Web Services 中国(宁夏)区域。
问:使用 IPv6 时,Amazon S3 的性能是否会出现变化?
不会,不论是使用 IPv4 还是 IPv6,Amazon S3 的性能都相同。
S3 事件通知
问:什么是 Amazon S3 事件通知?
您可以使用 Amazon S3 事件通知功能在 S3 存储桶中发生某些事件时接收通知,例如 PUT、POST、COPY 和 DELETE 事件。您可以将通知发布到 Amazon EventBridge、Amazon SNS、Amazon SQS,或直接发布到 AWS Lambda。
问:我可以用 Amazon S3 事件通知做什么?
Amazon S3 事件通知可让您运行工作流、发送提醒或执行其他操作来响应 S3 中存储对象的更改。您可以使用 S3 事件通知来设置触发器以执行各种操作,包括在上传媒体文件时对其执行转码、在数据文件可用时对其进行处理以及将 S3 对象与其他数据存储同步。您还可以根据对象名前缀和后缀来设置事件通知。例如,您可以选择接收以 “images/” 开头的对象名称的通知。
问:Amazon S3 事件通知中包含什么?
有关 Amazon S3 事件通知消息中包含的信息的详细说明,请参阅配置 Amazon S3 事件通知文档。
问:如何设置 Amazon S3 事件通知?
关于如何配置事件通知的详细描述,请参阅配置 Amazon S3 事件通知文档。您可以在 Amazon SNS 文档和 Amazon SQS 文档中了解有关 AWS 消息收发服务的更多信息。
问:使用 Amazon S3 事件通知的费用是多少?
使用 Amazon S3 事件通知,无需支付额外费用。发送事件通知时,您只需为 Amazon SNS 或 Amazon SQS 的使用付费,或只需承担运行 AWS Lambda 函数的费用。要查看这些服务的定价详细信息,请访问 Amazon SNS、Amazon SQS 或 AWS Lambda 定价页面。
Amazon S3 Transfer Acceleration
问:什么是 S3 Transfer Acceleration?
Amazon S3 Transfer Acceleration 可在客户与您的 Amazon S3 存储桶之间创建快速、轻松、安全的远距离文件传输。S3 Transfer Acceleration 利用了 Amazon CloudFront 遍布全球的 AWS 边缘站点。数据到达某个 AWS 边缘站点时,即被通过优化的网络路径路由至您的 Amazon S3 存储桶。
问:如何开始使用 S3 Transfer Acceleration?
要开始使用 S3 Transfer Acceleration,请使用 Amazon S3 控制台、Amazon S3 API 或 AWS CLI 在 S3 存储桶上启用 S3 Transfer Acceleration。启用 S3 Transfer Acceleration 后,您可以将 Amazon S3 PUT 和 GET 请求指向 s3-accelerate 端点的域名。您的数据传输应用程序必须使用以下两种终端节点类型中的一种,以访问用于更快的数据传输的存储桶:“双堆栈”终端节点的 .s3-accelerate.amazonaws.com 或 .s3-accelerate.dualstack.amazonaws.com。如果您想要使用标准数据传输,可以继续使用常规终端节点。
对于支持 S3 Transfer Acceleration 的存储桶有一定限制。有关详细信息,请参阅 Amazon S3 文档。
问:S3 Transfer Acceleration 有多快?
S3 Transfer Acceleration 可帮助您充分利用带宽,最大限度地降低距离对吞吐量的影响。无论客户位于何方,S3 Transfer Acceleration 都能确保数据快速、稳定地传输到 Amazon S3。加速的幅度主要取决于您的可用带宽、源和目标之间的距离以及网络路径上的数据包丢失率。通常,源和目标之间的距离越远、可用带宽越多和/或对象大小越大,加速的幅度越大。
一位客户的测量结果是:从分布在美国、欧洲和部分亚洲地区的全球用户群向亚太地区(悉尼)的存储桶摄入 300MB 的文件,平均传输时间可以缩短 50%。而另一位客户观察到,从东南亚和澳大利亚的用户向美国东部(弗吉尼亚州北部)的 S3 存储桶上传 250MB 文件(分成 50MB 大小的几个部分)时,性能提升超过 500%。
访问 S3 Transfer Acceleration 速度比较工具,预览您所在位置能获得的性能提升!
问:谁应该使用 S3 Transfer Acceleration?
S3 Transfer Acceleration 旨在优化从世界各地向 S3 存储桶传输数据的速度。如果您从多个分散的地点向一个集中的存储桶上传数据,或者如果您经常需要跨各大洲传输 GB 或 TB 级的数据,使用 S3 Transfer Acceleration 节约的数据传输时间可以达到数小时或者数天。
问:S3 Transfer Acceleration 的安全性如何?
S3 Transfer Acceleration 的安全性与 Amazon S3 的常规传输相同。同样支持所有 Amazon S3 安全功能,例如基于客户端的 IP 地址来限制访问。S3 Transfer Acceleration 与客户端通过标准 TCP 通信,无需更改防火墙。AWS 边缘站点不会存储任何数据。
问:如果 S3 Transfer Acceleration 的传输速度不及常规 Amazon S3,怎么办?
每当您使用 S3 Transfer Acceleration 上传对象时,我们都会检查 S3 Transfer Acceleration 的传输速度是否有可能比常规 Amazon S3 传输更快。在将同一对象传输到同一目标 AWS 区域时,如果我们确定 S3 Transfer Acceleration 的传输速度不会快于常规 Amazon S3,那么对于此次使用 S3 Transfer Acceleration 进行的传输,我们将不会收取任何费用,并且可能会绕过该次上传的 S3 Transfer Acceleration 系统。
问:我可以对分段上传使用 S3 Transfer Acceleration 吗?
可以,S3 Transfer Acceleration 支持所有存储桶级别的功能,包括分段上传。
问:在 S3 Transfer Acceleration 和 Amazon CloudFront 的 PUT/POST 之间,我应该如何选择?
S3 Transfer Acceleration 优化了 TCP 协议,并在客户端与 S3 存储桶之间添加了更多智能,因此如果需要更高的吞吐量,S3 Transfer Acceleration 就是更好的选择。如果您的对象小于 1GB,或者如果数据集小于 1GB,则应该考虑使用 Amazon CloudFront 的 PUT/POST 命令来优化性能。
问:在 S3 Transfer Acceleration 和 AWS Snowball 系列之间,我应该如何选择?
要一次性移动大批量数据,AWS Snow 系列就是客户的理想选择。AWS Snowball 的周转时间通常为 5-7 天。一般来说,通过一条充分利用的 1Gbps 线路,S3 Transfer Acceleration 在同样的时间期限内最多可以传输 75TB 数据。总之,如果通过 Internet 传输所需的时间超过一个星期,或者如果需要反复传输任务且可用带宽超过 25Mbps,S3 Transfer Acceleration 就是不错的选择。另一个选择是同时使用两者:利用一个 AWS Snowball(或一系列 AWS Snowball)执行最初繁重的传输任务,然后利用 S3 Transfer Acceleration 传输递增的日常变更。
问:可以使用 S3 Transfer Acceleration 作为 AWS Direct Connect 的补充吗?
如果客户拥有专用联网要求或者能访问 AWS Direct Connect 交换点,AWS Direct Connect 就是不错的选择。S3 Transfer Acceleration 最适合从分散的客户位置通过公共 Internet 提交数据,或者是由于网络条件不断变化而造成吞吐量较低的情况。有些 AWS Direct Connect 客户使用 S3 Transfer Acceleration 帮助远程办公室传输数据,因为远程办公室的 Internet 性能可能会比较差。
问:可以使用 S3 Transfer Acceleration 作为 AWS Storage Gateway 或第三方网关的补充吗?
您可以受益于在第三方网关中配置存储桶目标以使用 S3 Transfer Acceleration 端点域。
请访问 Storage Gateway 常见问题的“文件”部分,详细了解 AWS 实施。
问:可以使用 S3 Transfer Acceleration 作为第三方集成软件的补充吗?
是。直接连接到 Amazon S3 的软件包在将任务发送到 Amazon S3 时可以利用 S3 Transfer Acceleration。
问:S3 Transfer Acceleration 是否符合 HIPAA 要求?
符合,AWS 已对其 HIPAA 合规性计划进行扩展,其中已将 S3 Transfer Acceleration 作为一项符合 HIPAA 要求的服务包括进来。如果您已与 AWS 签订商业合伙协议(BAA),则可以使用 S3 Transfer Acceleration 在您的客户端和 Amazon S3 存储桶之间快速、轻松且安全地远距离传输文件,包括受保护健康信息(PHI)。
安全性
问:数据在 Amazon S3 中的安全性如何?
Amazon S3 本身是非常安全的。 在创建时,只有您可以访问自己所创建的 Amazon S3 存储桶,而且您可以完全控制哪些人员拥有您的数据的访问权限。Amazon S3 支持用户身份验证,以控制对数据的访问。您可以使用各种访问控制机制,例如存储桶策略,选择性地向用户和用户组授予权限。Amazon S3 控制台会突出显示您可公开访问的存储桶,注明公开可访问性的来源,并且还会在您的存储桶策略或存储桶 ACL 发生的更改从而将使您的存储桶可公开访问时,向您发出警告。 您应该为不希望公开访问的所有账户和存储桶启用 Amazon S3 屏蔽公共访问权限。 默认情况下,所有新存储桶都开启了“屏蔽公共访问权限”。
您可以使用 HTTPS 协议,通过 SSL 端点安全地向 Amazon S3 上传或从中下载数据。Amazon S3 会自动加密上传到您的存储桶的所有对象(截至 2023 年 1 月 5 日)。或者,您可以使用自己的加密库,在将数据存储到 Amazon S3 之前对数据进行加密。
有关 AWS 上的安全性的更多信息,请参阅 AWS 安全性页面,要了解 S3 安全性信息,请访问 S3 安全性页面和 S3 安全性最佳实践指南。
问:如何控制对存储在 Amazon S3 中的数据的访问?
客户可以使用一系列机制来控制对 Amazon S3 资源的访问,包括 AWS Identity and Access Management (IAM) 策略、存储桶策略、访问点策略、访问控制列表(ACL)、查询字符串身份验证、Amazon Virtual Private Cloud (Amazon VPC) 端点策略、AWS Organizations 中的服务控制策略(SCP)和 Amazon S3 阻止公有访问。
IAM
IAM 让拥有多名员工的企业能够使用一个 AWS 账户创建和管理多个用户。使用 IAM 策略,公司可向 IAM 用户授予对 Amazon S3 存储桶或对象的精细控制权,同时保留对用户执行的所有操作的完全控制。
存储桶和访问点策略
使用存储桶策略和访问点策略,客户可以定义广泛适用于其 Amazon S3 资源的所有请求的规则,例如为 Amazon S3 资源的子集授予写入权限。客户还可以基于请求的某种特征(例如 HTTP 引用站点和 IP 地址)来限制访问。
ACL
Amazon S3 支持 S3 的原始访问控制方法,也就是访问控制列表(ACL)。通过 ACL,客户可为特定用户授予对单个存储桶或数据对象的特定权限(例如读取、写入、完全控制)。针对倾向于完全使用访问控制策略的客户,Amazon S3 提供 S3 对象所有权功能以禁用 ACL。 在迁移到基于 IAM 的存储桶策略时,您可以在启用 S3 对象所有权之前使用 S3 清单来查看存储桶中的 ACL 使用情况。
查询字符串身份验证
借助查询字符串身份验证,客户可以为 Amazon S3 对象创建一个仅在有限时间内有效的 URL。有关 Amazon S3 中可用的各种访问控制策略的更多信息,请参阅 访问控制文档。
Amazon VPC
当客户创建 Amazon VPC 终端节点时,他们可以为其附加终端节点策略,以控制对与其连接的 Amazon S3 资源的访问权限。客户还可以使用 Amazon S3 存储桶策略来控制从哪些特定的端点或特定的 VPC 访问存储桶。
服务控制策略
服务控制策略 (SCP) 是 AWS Organizations 策略的一种类型,客户可以在其企业中用它来管理权限。SCP 提供对企业中所有账户最大可用权限的集中控制。借助 SCP,客户可以确保其账户始终符合企业的访问控制指导原则。
S3 阻止公有访问
Amazon S3 屏蔽公共访问权限提供访问点、存储桶和账户设置,以帮助客户管理对 Amazon S3 资源的公有访问。使用 S3 屏蔽公共访问权限,账户管理员和存储桶拥有者可以轻松设置集中式控制,以限制对其 Amazon S3 资源的公共访问,无论这些资源采用何种创建方式。 作为安全最佳实践,所有新的存储桶均默认启用“屏蔽公共访问权限”。
参阅 AWS IAM 文档以了解关于策略和权限的更多信息。
问:Amazon S3 是否支持数据访问审计?
支持。客户可以选择配置 Amazon S3 存储桶,为所有针对该存储桶的请求创建访问日志记录。或者,需要在日志中捕获 IAM/用户身份信息的客户也可以配置 AWS CloudTrail 数据事件。
这些访问日志记录可用于审计用途,其中包含有关请求的详细信息,例如请求类型、请求中指定的资源、处理请求的时间和日期。
问:对存储在 Amazon S3 中的数据进行加密时,可以使用哪些选项?
Amazon S3 会加密上传到任何存储桶的所有新数据。Amazon S3 将 S3 托管的服务器端加密(SSE-S3)应用为所有对象上传的基本加密级别(截至 2023 年 1 月 5 日)。SSE-S3 提供了一种完全托管的解决方案,Amazon 通过其使用多个安全层处理密钥管理和密钥保护问题。如果您希望 Amazon 管理您的密钥,则应继续使用 SSE-S3。此外,您也可以选择使用 SSE-C、SSE-KMS、DSSE-KMS 或客户端库(例如 Amazon S3 加密客户端)对数据进行加密。 每个选项都可以将敏感的数据以静态方式存储在 Amazon S3 中。
SSE-C 允许 Amazon S3 执行对象的加密和解密,同时让您保留对加密密钥的控制。借助 SSE-C,您无需实施或使用客户端库来对 Amazon S3 中储存的对象执行加密和解密,但是需要对您发送到 Amazon S3 中执行对象加密和解密操作的密钥进行管理。如果您希望保留自己的加密密钥而不想实施或使用客户端加密库时,请使用 SSE-C。
SSE-KMS 允许 AWS Key Management Service (AWS KMS) 管理您的加密密钥。使用 AWS KMS 管理您的密钥有几项额外的益处。利用 AWS KMS,会设置几个单独的 KMS 密钥使用权限,从而提供额外的控制层并防止 Amazon S3 中存储的对象遭到未授权访问。AWS KMS 提供审计跟踪记录,因此您能看到谁使用了您的密钥在何时访问了哪些对象,还能查看用户在没有解密数据的权限下所作的访问数据失败尝试次数。同时,AWS KMS 还提供额外的安全控制,从而支持客户努力符合 PCI-DSS、HIPAA/HITECH 和 FedRAMP 行业要求。
DSSE-KMS 简化了对数据应用两层加密的过程,无需投资客户端加密所需的基础设施。每层加密都采用 256 位高级加密标准的不同实施结合 Galois Counter Mode(AES-GCM)算法,并且经过审查,可用于绝密工作负载。DSSE-KMS 使用 AWS KMS 生成数据密钥,并通过 AWS KMS 管理您的加密密钥。利用 AWS KMS,会设置几个单独的 KMS 密钥使用权限,从而提供额外的控制层并防止 Amazon S3 中存储的对象遭到未授权访问。AWS KMS 提供审计跟踪记录,因此您能看到谁使用了您的密钥在何时访问了哪些对象,还能查看用户在没有解密数据的权限下所作的访问数据失败尝试次数。同时,AWS KMS 还提供额外的安全控制,从而支持客户努力符合 PCI-DSS、HIPAA/HITECH 和 FedRAMP 行业要求。
使用加密客户端库时,您保有对密钥的控制权并使用您选择的加密库对对象客户端进行加密和解密。一些客户倾向于对加密和解密对象拥有端到端的控制权;这样一来,只有经过加密的对象才会通过互联网传输到 Amazon S3。如果您想掌握对加密密钥的控制权,应该使用客户端库,这样便可实施或使用客户端加密库,同时在将对象传输到 Amazon S3 进行储存之前需要对其进行加密。
有关使用 Amazon S3 SSE-S3、SSE-C 或 SSE-KMS 的更多信息,请参阅使用加密文档保护数据。
问:使用 Amazon S3 时,能否遵守欧盟数据隐私法规?
客户可以选择使用欧洲地区(法兰克福)、欧洲地区(爱尔兰)、欧洲地区(巴黎)、欧洲地区(斯德哥尔摩)、欧洲地区(米兰)、欧洲(西班牙)、欧洲地区(伦敦)或欧洲(苏黎世)地区将所有数据存储在欧洲。您还可以使用 Amazon S3 on Outposts 将所有数据本地保留在 AWS Outpost,并且可以选择在 AWS Outposts 之间传输数据或将数据传输到 AWS 区域。您有责任确保自己遵守欧盟隐私法律。查看 AWS 通用数据保护条例(GDPR)中心和 AWS 数据隐私中心,了解更多信息。 如果有更具体的位置要求或者其他数据隐私法规要求您将数据保存在没有 AWS 区域的位置,您可以使用 S3 on Outposts。
问:什么是 Amazon S3 的 Amazon VPC 端点?
Amazon S3 的 Amazon VPC 端点是 VPC 内的逻辑实体,允许通过 AWS 全局网络连接到 S3。S3 有两种类型的 VPC 端点 – 网关 VPC 端点和接口 VPC 端点。网关端点是您在路由表中指定的网关,用于通过 AWS 网络从 VPC 访问 S3。接口端点通过私有 IP 将请求从您的 VPC 内部、本地或其他 AWS 区域路由到 S3,从而扩展网关端点的功能。有关更多信息,请访问适用于 Amazon S3 的 AWS PrivateLink 文档。
问:能否允许从特定 Amazon VPC 端点访问我的 Amazon S3 存储桶?
您可以使用 Amazon S3 存储桶策略,限制从特定 Amazon VPC 终端节点或一系列终端节点访问您的存储桶。S3 存储桶策略现在支持 aws:sourceVpce 条件,您可以利用此条件来限制访问。有关更多详细信息和示例策略,请参阅 S3 文档的网关端点。
问:什么是适用于 Amazon S3 的 AWS PrivateLink?
适用于 S3 的 AWS PrivateLink 在 Amazon S3 与本地之间提供私有连接。您可以在 VPC 中为 S3 预置接口 VPC 端点,以通过 AWS Direct Connect 或 AWS VPN 将本地应用程序直接连接到 S3。您不再需要使用公有 IP、更改防火墙规则,或配置互联网网关以从本地访问 S3。访问适用于 S3 的 AWS PrivateLink 文档,了解更多信息。
问:如何开始使用适用于 S3 的接口 VPC 端点?
您可以使用 AWS VPC 管理控制台、AWS 命令行界面(AWS CLI)、AWS SDK 或 API 创建接口 VPC 端点。要了解更多信息,请访问文档。
问:我应何时选择网关 VPC 端点,而不是基于 AWS PrivateLink 的接口 VPC 端点?
AWS 建议您使用接口 VPC 端点从本地或另一个 AWS 区域中的 VPC 访问 S3。对于要从与 S3 相同的 AWS 区域中的 VPC 访问 S3 的资源,我们建议使用网关 VPC 端点,因为这不会收取费用。要了解更多信息,请访问文档。
问:我可以在同一个 VPC 中同时使用适用于 S3 的接口终端节点和网关终端节点吗?
可以。如果您已经有网关 VPC 端点,请在 VPC 中创建接口 VPC 端点,并以 VPC 端点特定的端点名称更新客户端应用程序。例如,如果您接口端点的 VPC 端点 ID 在 us-east-1 区域中为 vpce-0fe5b17a0707d6abc-29p5708s,则特定于端点的 DNS 名称将为 vpce-0fe5b17a0707d6abc-29p5708s.s3.us-east-1.vpce.amazonaws.com。在这种情况下,仅针对 VPC 端点特定名称的请求将通过接口 VPC 端点路由到 S3,而所有其他请求将继续通过网关 VPC 端点路由。要了解更多信息,请访问文档。
问:什么是 Amazon Macie,我如何使用它保护数据的安全?
Amazon Macie 是一种支持 AI 技术的安全服务,可以帮助您通过自动发现、分类和保护存储在 Amazon S3 中的敏感数据来防止数据丢失。Amazon Macie 使用机器学习来识别敏感数据(例如,个人身份信息(PII)或知识产权),分配业务价值,提供此数据的存储位置信息及其在组织中的使用方式信息。Amazon Macie 可持续监控数据访问活动异常,并在检测到未经授权的访问或意外数据泄漏风险时发出警报。
您可以使用 Amazon Macie 通过持续监控数据和账户凭证来防范安全威胁。Amazon Macie 为您提供一种自动化和低接触的方式来发现和分类业务数据。它通过模板化的 Lambda 函数进行控制,可在发现可疑行为或对实体或第三方应用程序进行未经授权的数据访问时撤销访问或触发密码重置策略。发出警报时,您可以使用 Amazon Macie 进行事件响应,并使用 Amazon CloudWatch Events 迅速采取行动,保护您的数据。有关更多信息,请访问 Amazon Macie 文档。
问:什么是 IAM Access Analyzer for Amazon S3,它的工作原理是什么?
Access Analyzer for S3 功能可帮助您在为 S3 存储桶和访问点设置、验证和优化策略时简化权限管理。 Access Analyzer for S3 可监控您的现有访问策略,以验证它们是否仅提供对 S3 资源的必要访问权限。Access Analyzer for S3 会评估您的存储桶访问策略,并帮助您发现并快速更改不需要访问的存储桶。
当您有一个存储桶配置为允许访问互联网上的任何人访问或与其他 AWS 账户共享时,Access Analyzer for S3 会向您发出警报。您可以获得有关公有或共享访问的来源和级别的结果。例如,如果通过访问控制列表或存储桶策略提供不必要的读取或写入访问权限,则 Access Analyzer for S3 会主动通知您。通过这些结果,您可以立即设置或还原所需的访问策略。
在查看显示对存储桶的潜在共享访问权限的结果时,只需单击 S3 控制台,即可阻止对存储桶的公共访问。您还可以向下钻取到存储桶级别权限设置,以配置精细访问。 出于审核目的,您可将 Access Analyzer for S3 的结果下载为 CSV 报告。
此外,S3 控制台可以在您编写 S3 策略时报告 IAM Access Analyzer 中的安全警告、错误和建议。该控制台将会自动运行 100 多项策略检查,以验证您的策略。这些检查可以为您节约时间,指导您解决错误,并帮助您应用安全最佳实践。
有关更多信息,请访问 IAM Access Analyzer 文档。
S3 访问授权
问:什么是 Amazon S3 访问授权?
Amazon S3 访问授权可以将 Active Directory 等目录中的身份或 AWS Identity and Access Management(IAM)主体映射到 S3 中的数据集。这可以帮助您根据最终用户的企业身份自动向其授予 S3 访问权限,从而大规模管理数据权限。此外,S3 Access Grants 会在 AWS CloudTrail 中记录最终用户身份和用于访问 S3 数据的应用程序。这有助于针对 S3 存储桶中的所有数据访问提供详细的审计历史记录,信息可以具体到最终用户身份。
问:为什么应使用 S3 访问授权?
如果您的 S3 数据由许多用户和应用程序共享和访问,而且他们的某些身份(例如 Okta 或 Entra ID)位于您的公司目录中,并且您需要一种可扩展、简单且可审核的方式来授予权限,则您应该使用 S3 访问授权来大规模访问这些 S3 数据集。
问:如何开始使用 S3 接入点?
您可以通过四步开始使用 S3 访问授权。首先,配置 S3 访问授权实例。在此步骤中,如果您想对公司目录中的用户和群组使用 S3 访问授权,请启用 AWS Identity Center 并将 S3 访问授权连接到您的 Identity Center 实例。其次,使用 S3 访问授权注册一个位置。在此过程中,您将为 S3 访问授权提供一个 IAM 角色,该角色用于创建可供用户和应用程序访问 S3 的临时 S3 凭证。第三,定义权限授予,指定谁可以访问哪些内容。最后,在访问时,让您的应用程序向 S3 访问授权请求临时凭证,并使用访问授权提供的凭证来访问 S3。
问:S3 访问权限授予支持哪些类型的身份?
S3 访问授权支持两种身份:来自 AWS Identity Center 的企业用户或群组身份,以及包括 IAM 用户和角色在内的 AWS IAM 主体。当您将 S3 访问授权与 AWS Identity Center 配合使用时,可以根据目录组成员身份定义数据权限。AWS Identity Center 是一项 AWS 服务,可连接到常用的身份提供程序,包括 Entra ID、Okta、Ping 等。除了通过 AWS Identity Center 支持目录身份之外,S3 访问授权还支持 AWS IAM 主体的权限规则,包括 IAM 用户和角色。这适用于以下使用案例:您不是通过 AWS Identity Center 而是通过 IAM 和 SAML 断言(示例实施)来管理自定义身份联合验证,或者基于 IAM 主体管理应用程序身份,但由于其可扩展性和可审计性而仍然希望使用 S3 访问授权。
问:S3 访问授予提供哪些不同的访问级别?
S3 访问授权提供三种访问级别:READ、WRITE 和 READWRITE。READ 允许您查看和取回 S3 中的对象。WRITE 允许您对 S3 进行写入和删除。READWRITE 允许您执行读取和写入操作。
问:我可以自定义我的访问级别吗?
不可以。您只能使用 S3 访问授予提供的三个预定义访问级别(READ/WRITE/READWRITE)。
问:S3 访问授权是否有任何限制?
可以。每个 S3 访问授权实例最多可以创建 10 万个授权,每个 S3 访问授权实例最多可以创建 1000 个位置。
问:使用 S3 访问授权会对数据访问性能产生影响吗?
不会。从 S3 访问授权获取临时凭证的延迟与目前从 AWS STS 获取临时凭证的延迟相似。从 S3 访问授权获得凭证后,您可以在后续请求中重复使用未过期的凭证。对于这些后续请求,与其他方法相比,通过 S3 访问授权凭证进行身份验证的请求不会产生额外的延迟。
问:使用 S3 访问授权还需要哪些其他 AWS 服务?
如果您打算对目录身份使用 S3 访问授权,则需要先设置 AWS IAM Identity Center。AWS IAM Identity Center 可帮助您创建或连接员工身份,无论这些身份是在 Identity Center 还是在外部第三方身份提供商中创建和存储。有关设置过程,请参阅 Identity Center 文档。设置 Identity Center 实例后,您可以将该实例连接到 S3 访问授权。此后,S3 访问授予依赖 Identity Center 取回用户属性(例如组成员身份)以评估请求并做出授权决策。
问:S3 访问授权是否需要进行客户端修改?
可以。如今,您使用与应用程序关联的 IAM 凭证(例如,EC2 的 IAM 角色凭证或 IAM Roles Anywhere;或使用长期 IAM 用户凭证)初始化 S3 客户端,而您的应用程序需要在初始化 S3 客户端之前先获取 S3 访问授权凭证。这些 S3 访问授权凭证将特定于您的应用程序中经过身份验证的用户。使用这些 S3 访问授权凭证初始化 S3 客户端后,它就可以照常使用这些凭证请求 S3 数据。
问:既然必须进行客户端修改,那么目前有哪些 AWS 服务和第三方应用程序与 S3 访问授权集成?
S3 访问授权目前已通过 S3A 连接器与 EMR 和开源 Spark 集成。此外,S3 访问授权还与 Immuta 和 Informatica 等第三方软件集成,因此您可以集中进行权限管理。最后,S3 访问授权支持 Terraform 和 CloudFormation,您可以通过编程方式配置 S3 访问授权。
问:S3 访问授权可以取代 AWS IAM 吗?
S3 访问授权不可以取代 IAM,事实上,它可以与您现有的基于 IAM 的数据保护策略(加密、网络、数据边界规则)很好地配合。S3 访问授予基于 IAM 原语构建,使您能够大规模表达更细粒度的 S3 权限。
问:S3 访问授权是否可以与 KMS 配合使用?
可以。要对使用 KMS 加密的对象使用 S3 访问授权,存储桶所有者需要将必要的 KMS 权限包含在 IAM 角色中,并在位置注册过程中将其授予 S3 访问授权。随后,S3 访问授权可以利用该 IAM 角色来访问存储桶中 KMS 加密的对象。
问:如何查看和管理我的 S3 访问授权权限授予?
您可以使用 AWS 管理控制台中的 S3 访问授权控制台体验或开发工具包和 CLI API 来查看和管理您的 S3 访问授权权限。
问:您能否通过 S3 访问授权授予对数据的公开访问权限?
不,您无法使用 S3 访问授权授予对数据的公开访问权限。
问:如何审核通过 S3 访问授权获得授权的请求?
应用程序使用 S3 访问授权发起数据访问会话的请求将记录在 CloudTrail 中。CloudTrail 将区分发出请求的用户身份和代表用户访问数据的应用程序身份。这可以帮助您审核最终用户身份,了解谁在何时访问了哪些数据。
问:S3 访问授权是如何定价的?
S3 访问授权根据 S3 访问授权请求的数量收费。请参阅定价页面了解详细信息。
问:S3 访问授权和 Lake Formation 之间有什么关系?
AWS Lake Formation 适用于需要管理表数据(例如 Glue 表)访问的使用案例,在这些使用案例中,您可能希望强制执行行级和列级访问。S3 访问授权用于管理直接 S3 权限的访问,例如视频、图像、日志等非结构化数据。
问:S3 访问授权是否与 IAM Access Analyzer 集成?
不。S3 访问授权目前未与 IAM Access Analyzer 集成。您还无法使用 IAM Access Analyzer 来分析 S3 访问授权权限授予。客户可以通过转至 S3 控制台中的“S3 访问授权”页面直接审核 S3 访问授权,也可以通过编程方式使用 ListAccessGrants API 来进行审核。
S3 接入点
问:什么是 Amazon S3 接入点?
现在,客户会使用单个存储桶策略管理对其 S3 存储桶的访问,该策略控制着不同权限级别的数百种应用程序。
Amazon S3 访问点简化了大规模管理使用 S3 上共享数据集的应用程序的数据访问的过程。利用 S3 访问点,您现在可以在每个存储桶中轻松创建数百个访问点,这代表着预置共享数据集的一种新方法。访问点提供进入存储桶的自定义路径,具有唯一的主机名和访问策略,可对通过相应访问点发出的请求执行特定的权限和网络控制。S3 接入点可以与同一账户或另一个受信任账户中的存储桶相关联。通过访问 S3 接入点页面和用户指南了解更多信息。
问:为什么应该使用接入点?
S3 访问点简化了对 S3 上共享数据集的数据访问的管理过程。您不再需要使用数以百计的需要编写、读取、跟踪和审计的不同权限规则来管理单个复杂的存储桶策略。借助 S3 访问点,您可以创建访问点或将权限委托给受信任的账户,以在您的存储桶上创建跨账户访问点。这允许使用针对特定应用程序定制的策略访问共享数据集。
使用访问点,您可以针对需要访问共享数据集的每个应用程序,将一个大型存储桶策略分解为多个单独的离散访问点策略。这样可以更轻松地集中精力为应用程序制定正确的访问策略,而不必担心打断共享数据集中任何其他应用程序正在执行的操作。您还可以创建服务控制策略 (SCP),并要求将所有访问点都限制在 Virtual Private Cloud (VPC) 中,从而通过防火墙将数据隔离在专用网络中。
问:S3 访问点的工作原理是什么?
每个 S3 访问点都配置有特定于用例或应用程序的访问策略,一个存储桶可以有数千个访问点。例如,您可以为 S3 存储桶创建一个访问点,为数据湖的用户或应用程序组授予访问权限。访问点可以支持单个用户或应用程序,也可以支持账户内部或跨账户的一组用户或应用程序,因此可以对每个访问点进行单独管理。
此外,您可以将权限委托给受信任的账户,以在您的存储桶上创建跨账户访问点。在您获得存储桶拥有者的许可之前,跨账户访问点不会授予对数据的访问权限。 存储桶拥有者始终保留对数据的最终控制权,并且必须更新存储桶策略以授权来自跨账户访问点的请求。请访问用户指南以获取示例存储桶策略。
每个访问点都与一个存储桶相关联,并包含一个网络源站控件和一个阻止公共访问控件。您可以创建带有网络源站控件的访问点,该控件仅允许从您的 Virtual Private Cloud(AWS 云的逻辑隔离部分)进行存储访问。您还可以创建一个访问点,将访问点策略配置为仅允许访问具有指定前缀的对象或具有特定标签的对象。
您可以使用两种方式之一通过访问点访问共享存储桶中的数据。对于 S3 对象操作,您可以使用访问点 ARN 代替存储桶名称。对于要求存储桶名称使用标准 S3 存储桶名称格式的请求,您可以使用访问点别名。S3 访问点的别名是自动生成的,并且可以在您使用存储桶名称进行数据访问的任何位置与 S3 存储桶名称互换。每次为存储桶创建访问点时,S3 都会自动生成一个新的访问点别名。对于全套可兼容操作和 AWS 服务,请访问 S3 文档。
问:是否有访问点数量创建限额?
默认情况下,您可以在账户和跨账户的存储桶上为每个账户的每个区域创建 10000 个访问点。与 S3 存储桶不同的是,对于每个 AWS 账户的访问点数量没有硬性限制。请访问 AWS 服务限额以申请提高此限额。
问:在使用访问点时,如何对请求进行授权?
S3 访问点有其自己的 IAM 访问点策略。您可以使用访问点 ARN 作为资源,像编写存储桶策略一样编写访问点策略。访问点策略可以授权或限制访问通过访问点请求的 S3 数据。Amazon S3 会评估所有相关策略,包括关于用户、存储桶、访问点和 VPC 终端节点的策略,以及服务控制策略和访问控制列表,以决定是否要授权请求。
问:如何编写访问点策略?
您可以使用策略文档中管理权限和访问点 ARN 的 IAM 规则编写访问点策略,就像编写存储桶策略一样。
问:在访问点上限制使用网络源站控件的特定 VPC 访问权限与限制使用存储桶策略的 VPC 访问权限有什么区别?
您可以继续使用存储桶策略来限制对指定 VPC 的存储桶访问权限。访问点提供更简单可审核的方式,以便通过 API 控件将共享数据集中的全部数据或数据子集锁定到所在组织全部应用程序的仅限 VPC 流量。您可以使用 AWS Organizations 服务控制策略 (SCP) 强制将在您的组织中创建的任何访问点的“网络源站控件”API 参数值设置为 “vpc”。然后,任何创建的新访问点会自动将数据访问限制为仅限 VPC 流量。您无需其他访问策略来确保仅处理来自指定 VPC 的数据请求。
问:我可以在所在组织内为所有访问点实施“无 Internet 数据访问”策略吗?
是。要为组织内的所有访问点实施“无 Internet 数据访问”策略,您要确保所有访问点都仅支持 VPC 访问。要做到这一点,您将需要编写 AWS SCP,而且该 SCP 仅支持 create_access_point() API 中的“网络源站控件”参数的值为“vpc”。如果您在之前创建过任何面向 Internet 的访问点,它们可以被移除。您还需要在每个存储桶中修改存储桶策略,以便进一步限制 Internet 通过存储桶主机名直接访问您的存储桶。由于其他 AWS 服务可能直接访问您的存储桶,因此确保将访问权限设置为允许您想要的 AWS 服务,您可以通过修改策略,允许这些 AWS 服务进行访问。参阅 S3 文档以查看操作示例。
问:我可以完全禁用使用存储桶主机名直接访问存储桶吗?
目前不可以,但您可以附加存储桶策略以拒绝并非通过访问点发出的请求。参阅 S3 文档以了解更多详细信息。
问:我可以替换或移除存储桶上的访问点吗?
是。如果您移除某个访问点,任何通过其他访问点和存储桶主机名对关联存储桶的访问都会被中断。
问:Amazon S3 访问点的成本为多少?
访问点和使用访问点的存储桶不会产生额外成本。一般的 Amazon S3 请求费率同样适用。
问:如何开始使用 S3 访问点?
您可以通过 AWS 管理控制台、AWS 命令行界面(CLI)、应用程序编程接口(API)和 AWS 软件开发工具包(SDK)客户端,在新存储桶以及现有存储桶上创建 S3 访问点。要了解与 S3 访问点相关的更多信息,请访问用户指南。
持久性和数据保护
问:Amazon S3 的持久性如何?
Amazon S3 提供最持久的云端存储。基于其独特的架构,S3 设计为可提供 99.999999999%(11 个 9)的数据持久性。此外,默认情况下,S3 至少跨 3 个可用区(AZ)冗余存储数据,其内置弹性可应对大范围灾难。客户可以将数据存储在单个可用分区中以最大限度地降低存储成本或延迟,也可以将数据存储在多个可用分区中以防止整个数据中心永久丢失,或者将数据存储在多个 AWS 区域中以满足地理弹性要求。
问:Amazon S3 的设计如何达到 99.999999999% 的持久性?
Amazon S3 的持久性设计取决于存储设备故障率,以及 S3 检测故障并在这些设备上重新复制数据的速率。S3 会对每个对象上传进行端到端完整性检查,并验证所有数据均已正确、冗余地存储在多个存储设备上,然后才认为您的上传成功。将数据存储在 S3 中后,S3 会持续监控数据的持久性,并定期检查所有静态数据的完整性。S3 还会主动监控数据的冗余,以帮助验证您的对象是否能够容忍多个存储设备的并发故障。
问:存储在 One Zone 存储类中的数据是否受到保护,不会受到可用区损坏或丢失的影响?
当发生 AWS 可用区全部或部分丢失或损坏的极少数情况下,One Zone 存储类中的数据可能会丢失。例如,火灾和水灾等事件可能导致数据丢失。除了这些类型的事件外,One Zone 存储类使用与区域存储类相似的工程设计来保护对象免受独立磁盘、主机和机架级故障的影响,并且每种类型都被设计为提供 99.999999999% 的数据持久性。
问:Amazon S3 如何超越 99.999999999% 的持久性?
Amazon S3 拥有强大的持久性文化,我们的系统和软件在设计之初就融入了持久性最佳实践。与任何其他云提供商相比,AWS 在操作高持久性存储方面拥有更多的经验,我们利用这些经验来降低持久性风险,并将持久性保障措施纳入我们所做的一切工作中。
问:既然持久性这么高,我还需要备份关键数据吗?
需要。Amazon S3 的持久性系统无法防止意外或恶意删除。S3 依靠客户自行决定要保留哪些数据、要删除哪些数据,以及需要哪些可选控制措施来防止意外或恶意的错误删除。当您告诉 Amazon S3 删除数据时,该数据会立即被删除,且 AWS 无法恢复。以这种方式处理删除请求是该服务的一个重要特征。
问:Amazon S3 提供哪些功能来保护我的数据免遭意外或恶意删除?
除了 S3 自动提供的持久性之外,您还可以使用 S3 对象版本控制、S3 复制和 S3 对象锁定等可选功能来增加额外的数据保护。此外,您还可以使用备份应用程序来备份 S3 存储桶中的全部或部分数据。
问:Amazon S3 在数据完整性检查中支持哪些校验和?
Amazon S3 结合使用 Content-MD5 校验和、安全哈希算法 (SHA) 和循环冗余检验 (CRC) 来验证数据完整性。Amazon S3 在空闲时对数据执行这些校验和检测,并使用冗余数据修复任何不一致。此外,S3 还会在存储或取回数据时对所有网络流量计算校验和,以检测数据包是否改动。您可以从四种受支持的校验和算法中进行选择,以便对您的上传和下载请求进行数据完整性检查。您可以选择 SHA-1、SHA-256、CRC32 或 CRC32C 校验和算法,具体取决于您的应用程序需求。您可以在存储或取回 S3 中的数据时自动计算和验证校验和,并且可以随时使用 GetObjectAttributes S3 API 或 S3 清单报告访问校验和信息。在您将数据流式传输到 S3 时计算校验和可以为您节省时间,因为您可以在一次操作中同时验证和传输数据,而无需执行两个连续的操作。在数据验证中使用校验和是检查数据持久性的最佳实践,这些功能提高了性能并降低了相应操作的成本。
问:什么是版本控制?
通过版本控制,您可以保留、提取和恢复存储在 Amazon S3 存储桶中的每个数据对象的每个版本。一旦您为存储桶启用版本控制,Amazon S3 将在您每次执行 PUT、POST、COPY 或 DELETE 操作时保留现有数据对象。默认情况下,GET 请求将提取最近写入的版本。可通过在请求中指定版本,提取已覆盖数据对象或已删除数据对象的旧版本。
问:为什么应该使用版本控制?
Amazon S3 为客户提供具有高持久性的存储基础设施。版本控制可在客户意外覆盖或删除数据对象的情况下提供一种恢复手段,从而提供另一层保护。这使您能够从无意用户操作或应用程序故障中轻松恢复。您还可将版本控制用于数据保留和存档。
问:如何开始使用版本控制?
您可以通过在 Amazon S3 存储桶上启用相应设置,来开始使用版本控制。有关如何启用版本控制的更多信息,请参阅 Amazon S3 文档。
问:版本控制如何防止对象被意外删除?
当用户对某个对象执行 DELETE 操作时,后续的简单(不受版本控制)请求将不再取回该对象。但是,该数据对象的所有版本将继续保留在您的 Amazon S3 存储桶中,可以提取或恢复。只有 Amazon S3 存储桶的拥有者才能永久删除某个版本。您可以设置生命周期规则来管理生命周期和存储对象的多个版本的成本。
问:是否可以在 Amazon S3 对象上设置垃圾桶、回收站或回滚时段以从删除和覆盖项中恢复?
您可以使用 Amazon S3 生命周期规则和 S3 版本控制来实施 S3 对象的回滚时段。例如,借助启用了版本控制的存储桶,您可以设置一条规则,将以前的所有版本归档到成本较低的 S3 Glacier Flexible Retrieval 存储类,并在 100 天后删除它们,从而给您 100 天的时间来回滚对数据的任何更改,同时降低存储成本。此外,您也可以通过在 5 天后以及至少有 2 个较新版本的对象时删除旧(非当前)版本的对象来节约成本。您可以根据成本优化需要更改天数或更新版本的数量。这使您可以在需要时保留其他版本的对象,但通过在一段时间后转换或删除它们来节约成本。
问:如何确保我保留的版本得到最大保护?
版本控制的多重身份验证(MFA)可使用删除功能来增添一层安全性。默认情况下,对您的 Amazon S3 存储桶的所有请求都需要您的 AWS 账户证书。如果您在 Amazon S3 存储桶上利用 MFA Delete 功能启用了版本控制,则需要以下两种形式的身份验证才能永久删除数据对象的某个版本:您的 AWS 账户凭证、来自您拥有的身份验证设备的有效六位代码和序列号。要了解有关利用 MFA Delete 功能启用版本控制的更多信息,包括如何购买和激活身份验证设备,请参阅 Amazon S3 文档。
问:使用版本控制是如何收费的?
正常 Amazon S3 费率适用于存储或请求的数据对象的每个版本。例如,我们以下列场景为例,说明使用版本控制时的存储费用(假定当月有 31 天):
1) 当月第 1 天:您对存储桶中的 4 GB(4294967296 字节)数据执行了 PUT 操作。
2) 当月第 16 天:您对同一存储桶中的 5GB(5368709120 字节)数据执行了 PUT 操作,使用与第 1 天的原始 PUT 操作相同的密钥。
分析上述操作的存储费用时,请注意,在第 15 天写入 5GB 数据对象时,第 1 天的 4GB 数据对象并未从存储桶删除。相反,这 4GB 数据对象作为旧版本保留,5GB 数据对象成为存储桶中的最近写入的数据对象版本。当月底:
总字节小时使用量
[4294967296 字节 x 31 天 x(24 小时/天)] + [5368709120 字节 x 16 天 x(24 小时/天)] = 5257039970304 字节小时。
转换为 GB 月:
5257039970304 字节-小时 x(1GB/1073741824 字节)x(1 月/744 小时) = 6.581GB 月
成本根据 Amazon S3 定价页面上列出的您所在区域的当前费率计算得出。
S3 对象锁定
问:什么是 Amazon S3 对象锁定?
Amazon S3 对象锁定是 Amazon S3 的一项功能,可以在固定的时间内或无限期地阻止删除或覆盖对象版本,让您能够通过实施保留策略来进一步保护数据或满足监管要求。您可将工作负载从现有的“一次写入,多次读取”(WORM) 系统迁移到 Amazon S3,并在对象级别或存储桶级别配置 S3 对象锁定,防止在预定义的保留到期日期或无限期(依法保留日期)之前删除对象版本。无论对象版本在哪个存储类中,S3 对象锁定保护都将保留,并且会在存储类之间的整个 S3 生命周期转换期间保留。
仅当法规要求规定您的数据必须能够防蠕虫时,或者您希望在 Amazon S3 中为数据额外添加一层保护时,才应使用 S3 对象锁定。S3 对象锁定可以帮助您满足规定数据应以不可变格式存储的法规要求,还可保护 Amazon S3 中的数据,使其免遭意外或恶意删除。
如需了解更多信息,请访问 S3 对象锁定用户指南。
问:Amazon S3 对象锁定的工作原理是什么?
Amazon S3 对象锁定阻止在指定的保留期间内删除对象版本,或者无限期地删除对象版本,直到依法保留被移除。使用 S3 对象锁定,您能够确保对象版本在应用 WORM 保护期间保持不可变。可通过使用 AWS 开发工具包、CLI、REST API 或 S3 管理控制台为对象版本分配保留到期日期或依法保留日期来应用 WORM 保护。可在 PUT 请求内应用保留设置,或在创建对象后对现有对象应用这些设置。
“保留到期日期”定义对象版本将保持不变的时间长度。为对象分配“保留到期日期”后,在保留到期日期之前将无法修改或删除该对象版本。如果用户在“保留到期日期”之前尝试删除对象,操作将被拒绝。
或者,您也可以通过应用依法保留来使对象不可变。依法保留阻止对象版本被无限期地修改或删除,直到它被明确移除。为了施加和删除依法保留,您的 AWS 账户必须拥有 PutObjectLegalHold 操作的写入权限。依法保留可以应用于启用了 S3 对象锁定的存储桶中的任何对象,无论该对象当前是否在 WORM 保护的保留期内。
S3 对象锁定可以在两种模式之一中配置。在监管模式中部署时,具有特定 IAM 权限的 AWS 账户可以从对象版本上移除 WORM 保护。如果您需要更强的不变性以遵守法规,可以使用合规模式。在合规模式中,任何用户都不能移除 WORM 保护,包括根账户。
如何在存储桶上启用 Amazon S3 对象锁定?
您可以使用 Amazon S3 控制台、AWS API 或 AWS CLI 在创建新存储桶时启用 S3 对象锁定或在现有存储桶上配置 S3 对象锁定。要在现有存储桶上启用 S3 对象锁定,您可以使用 Amazon S3 控制台在存储桶属性选项卡、PutObjectLockConfiguration AWS API 或 AWS CLI 中编辑 S3 对象锁定设置。启用 S3 对象锁定后,您可以设置默认存储桶级别保留模式和时间,该模式和时间将适用于上传到存储桶的所有新对象。有关更多信息,请参阅有关使用 S3 控制台、使用 AWS API 和使用 AWS CLI 配置 S3 对象锁定的文档。
问:在现有存储桶上启用 S3 对象锁定对上传到存储桶的新对象有何影响?
在现有存储桶上启用 S3 对象锁定后,您可以选择为上传到存储桶的所有新对象设置默认的 S3 对象锁定保留模式和保留期。在 S3 控制台上,您可以通过使用选定存储桶的属性选项卡并为上传到该存储桶的所有新对象启用默认保留模式和保留期来执行此操作。或者,您可以选择不配置任何存储桶级别的对象锁定设置,这将使存储桶中的新对象保持解锁状态。然后,您可以通过在对象属性选项卡中编辑 S3 对象锁定设置来锁定单个对象,或使用 S3 批量操作批量锁定对象。有关详细信息,请参阅有关默认保留设置的文档。
问:为现有存储桶启用 S3 对象锁定对存储桶中已存在的对象有何影响?
在现有存储桶上启用 S3 对象锁定后,保留设置仅适用于上传到存储桶的新对象。要锁定存储桶中已存在的对象,您可以选择使用 Amazon S3 控制台、AWS CLI 或 AWS API 更改单个对象级保留属性。在 S3 控制台上,您可以在对象的属性选项卡中执行此操作,并编辑对象锁定合法保留或对象锁定保留设置。或者,您可以使用 S3 批量操作来管理保留或同时启用多个对象的合法保留。有关更多信息,请参阅有关使用 S3 批量操作启用 S3 对象锁定的文档。
问:能否在启用 S3 对象锁定后将其禁用?
不能,启用 S3 对象锁定后,您将无法禁用存储桶的 S3 对象锁定或 S3 版本控制。
问:如何开始从启用了 S3 对象锁定的存储桶复制对象?
要开始使用 S3 复制从启用了 S3 对象锁定的存储桶复制对象,您可以通过在相同或不同的 AWS 区域以及相同或不同的 AWS 账户中指定目标存储桶,在源存储桶上添加复制配置。您可以选择在 S3 存储桶级别复制所有对象,也可以在共享前缀级别或使用 S3 对象标签的对象级别筛选对象。您还需要指定具有执行复制操作所需权限的 AWS Identity and Access Management(IAM)角色。您可以使用 S3 控制台、AWS API、AWS CLI、AWS SDK 或 AWS CloudFormation 来启用复制,并且必须为源存储桶和目标存储桶启用 S3 版本控制。此外,要从启用了 S3 对象锁定的存储桶复制对象,您的目标存储桶也必须启用 S3 对象锁定。有关更多信息,请参阅有关设置 S3 复制以及将 S3 对象锁定与 S3 复制结合使用的文档。
问:是否需要额外的权限才能从启用了 S3 对象锁定的存储桶复制对象?
是的,要从启用了 S3 对象锁定的存储桶复制对象,您需要在用于设置复制的 IAM 角色中的源存储桶上授予两个新权限:s3:GetObjectRetention 和 s3:GetObjectLegalHold。或者,如果 IAM 角色具有 s3:Get* 权限,则它满足要求。有关更多信息,请参阅有关将 S3 对象锁定与 S3 复制结合使用的文档。
问:从 S3 对象锁定存储桶进行复制时,对使用 S3 复制是否有任何限制?
否,从 S3 对象锁定存储桶复制时,支持 S3 复制的所有功能,例如 S3 Same-Region Replication(S3 SRR)、S3 Cross-Region Replication(S3 CRR)、用于跟踪进度的 S3 复制指标、S3 Replication Time Control(S3 RTC)和 S3 批量复制。
问:如何从启用了 S3 对象锁定的存储桶复制现有对象?
您可以使用 S3 批量复制从启用了 S3 对象锁定的存储桶中复制现有对象。有关复制现有对象的更多信息,请参阅有关 S3 批量复制的文档。
问:受 S3 对象锁定保护的源对象的副本的保留状态如何?
使用 S3 对象锁定保护的对象的副本遵循与源对象相同的保留策略。您可以使用 GET Object 或 HEAD Object 命令查看副本对象的对象锁定状态。这两个命令都会返回指定对象版本的保留模式、保留截止日期和合法保留状态。您还可以在存储桶上配置 Amazon S3 清单报告,以包括存储桶中所有对象的保留截止日期、保留模式和合法保留状态。有关更多信息,请参阅有关查看对象的 S3 对象锁定信息和配置 Amazon S3 清单的文档。
存储类
S3 Intelligent-Tiering | S3 Standard | S3 Express One Zone | S3 Standard-Infrequent Access | S3 One Zone-Infrequent Access | Amazon S3 Glacier Instant Retrieval | Amazon S3 Glacier Flexible Retrieval | Amazon S3 Glacier Deep Archive | S3 on Outposts
问:什么是 Amazon S3 存储类?
Amazon S3 提供了一系列存储类,您可以根据工作负载的数据访问、弹性和成本要求进行选择。S3 存储类专门用于为不同的访问模式提供最低成本的存储。S3 存储类几乎适用于任何用例,包括具有苛刻性能需求、数据驻留要求、未知或不断变化的访问模式或归档存储的用例。每个 S3 存储类都收取存储数据和访问数据的费用。在决定哪种 S3 存储类最适合您的工作负载时,考虑数据的访问模式和保留时间,以便在您的数据的生命周期内优化最低总成本。
S3 存储类可在对象级别进行配置,单一存储桶可包含跨所有存储类的对象。您还可使用 S3 生命周期策略在存储类之间自动转移对象,而无需更改任何应用程序。
问:如何决定要使用哪种 S3 存储类?
在决定哪种 S3 存储类最适合您的工作负载时,考虑数据的访问模式和保留时间,以便在您的数据的生命周期内优化最低总成本。很多工作负载都有不断变化(用户生成内容)、不可预测(分析、数据湖),或未知的(新应用程序)访问模式,这是为什么应该选择 S3 Intelligent-Tiering 作为默认存储类以自动节省存储成本的原因。如果知道您的数据的访问模式,您可以遵循此指导。S3 Standard 存储类适用于经常访问的数据;如果您每个月访问数据超过一次,它便是您的最佳选择。S3 Standard-Infrequent Access 是保留至少一个月,而且每一两个月就要访问一次的数据的理想之选。
Amazon S3 Glacier 存储类专为数据归档而构建,旨在为您提供具有最高性能、最大取回灵活性和最低成本的云归档存储。现在,您可以从针对不同访问模式和存储持续时间优化的三种归档存储类中进行选择。对于需要即时访问的归档数据,例如医学图像、新闻媒体资产或基因组学数据,请选择 S3 Glacier Instant Retrieval 存储类,这种归档存储类可提供最低的存储成本及毫秒级取回速度。对于不需要立即访问但需要灵活地免费取回大量数据的归档数据,例如备份或灾难恢复使用场景,请选择 S3 Glacier Flexible Retrieval,它可在几分钟内取回,也可以在 5-12 小时内进行免费批量取回。要使长期归档存储(例如合规性归档和数字媒体保留)实现更大的成本节省,请选择 S3 Glacier Deep Archive,这是成本最低的云存储,数据取回时间不超过 12 小时。所有这些存储类都通过以冗余方式将数据存储于一个 AWS 区域的多台设备和物理分隔的 AWS 可用区,提供多可用区 (AZ) 弹性。
对于具有较低弹性要求的数据,您可以通过选择单可用区存储类(如 S3 One Zone-Infrequent Access)来降低成本。如果您具有现有 AWS 区域无法满足的数据驻留或延迟要求,您可以使用 S3 on Outposts 将数据存储在本地。
要了解有关这些存储类的更多信息,请参阅 Amazon S3 存储类页面。
S3 Intelligent-Tiering
问:什么是 S3 Intelligent-Tiering?
S3 Intelligent-Tiering 是首个云存储,它可以根据访问频率自动将数据移至最经济实惠的访问层,从而自动在细粒度对象级别降低您的存储成本,并且不会产生性能影响、取回费用或运营开销。S3 Intelligent-Tiering 可以为频繁、不频繁和归档即时访问层中的频繁、不频繁以及很少访问的数据提供毫秒级延迟和提高吞吐量性能。每月只需支付少量的对象监控和自动化费用,S3 Intelligent-Tiering 即可监控访问模式并将对象从一个访问层自动移动到另一个访问层。S3 Intelligent-Tiering 没有任何取回费用,因此在访问模式发生变化时存储账单不会意外增加。
现在,您可以通过虚拟方式将 S3 Intelligent-Tiering 用作任何工作负载(尤其是数据湖、数据分析、机器学习、新应用程序和用户生成的内容)的默认存储类。
问:S3 Intelligent-Tiering 的工作原理是什么?
Amazon S3 Intelligent-Tiering 存储类旨在通过当访问模式改变时自动将数据移动到最具成本效益的访问层来优化存储成本。每月只需支付少量的对象监控和自动化费用,S3 Intelligent-Tiering 即可监控访问模式并自动将连续 30 天未被访问的对象移动到不频繁访问层,最多可节省 40% 的存储成本。在连续 90 天未访问以后,对象会被移动到归档即时访问层以最多节省 68% 的存储成本。性能不会受到影响,而且 S3 Intelligent-Tiering 没有取回费用。如果之后访问了不频繁访问层或归档即时访问层中的对象,则其会被自动移回频繁访问层。
要为可异步访问的数据实现最低存储成本,您可以选择激活其他归档功能。在您启用一个或两个异步归档访问层后,S3 Intelligent-Tiering 会将至少 90 天未被访问的对象移动到归档访问层,以节省高达 71% 的成本,然后在 180 天无访问后,将其移动到深度归档访问层,以便为很少访问的对象实现高达 95% 的节省。如果可选归档或深度访问层当中的对象在之后被还原,它将被移回到频繁访问层,而且在可以取回前,您必须先使用 RestoreObject 还原该对象。有关恢复归档对象的信息,请参阅恢复归档对象。S3 Intelligent-Tiering 没有取回费用。在 S3 Intelligent-Tiering 存储类中的访问层之间移动对象时,不会产生额外的分层或生命周期费用。
S3 Intelligent-Tiering 没有最小对象大小,但小于 128KB 的对象没有资格进行自动分层。这些较小的对象可以存储在 S3 Intelligent-Tiering 中,但将始终按频繁访问层费率收费,不收取监控和自动化费用。
如果您想要将 S3 Intelligent-Tiering 标准化为新创建数据的默认存储类,则可以通过在 S3 PUT API 请求标头上指定 INTELLIGENT-TIERING 来修改应用程序。S3 Intelligent-Tiering 旨在提供 99.9% 的可用性和 99.999999999% 的持久性,并自动提供与 S3 Standard 相同的低延迟和高吞吐量性能。您可以使用 AWS Cost Explorer 来评估使用归档即时访问层所能实现的节省。
问:为什么应选择使用 S3 Intelligent-Tiering?
现在,您可以通过虚拟方式将 S3 Intelligent-Tiering 用作任何工作负载(尤其是数据湖、数据分析、机器学习、新应用程序和用户生成的内容)的默认存储类。S3 Intelligent-Tiering 是首个云存储,它可以根据访问频率自动将数据移至最经济实惠的访问层,从而自动在细粒度对象级别降低您的存储成本,并且不会产生性能影响、取回费用或运营开销。如果您有访问模式未知或不断变化的数据,包括数据湖、数据分析和新应用程序,我们建议使用 S3 Intelligent-Tiering。如果您有不需要立即取回的数据,我们建议激活深度归档访问层,因此您只需要为可能长时间很少访问的数据支付每 TB 每月 1 USD。S3 Intelligent-Tiering 适用于访问模式未知或不断变化的数据。在使用 S3 Intelligent-Tiering 存储类时不会产生取回费用。
问:S3 Intelligent-Tiering 可提供什么样的性能?
S3 Intelligent-Tiering 会自动优化您的存储成本,而不会影响您的性能。S3 Intelligent-Tiering 的频繁、不频繁和归档即时访问层提供毫秒级延迟和高吞吐量性能。
问:可选归档访问和深度归档访问层提供怎样的性能?
针对可异步访问的数据,可选归档访问层具有与 S3 Glacier Flexible Retrieval 相同的性能,而深度归档访问层具有与 S3 Glacier Deep Archive 存储类相同的性能。若您的应用程序可以等待几分钟至数小时,您应该只激活异步归档功能。如果您取回的对象存储在归档或深度归档访问层中,您必须先使用 RestoreObject 恢复对象后才能取回对象。有关恢复归档对象的信息,请参阅恢复归档对象。归档访问层中的对象将在 3-5 小时内移至频繁访问层,如果它们在深度归档访问层中,则在 12 小时内移至频繁访问层。如果需要更快地访问存档访问层中的对象,则可以使用控制台选择加快的取回速度选项,为更快的取回速度付费。
问:S3 Intelligent-Tiering 的持久性和可用性如何?
与 S3 Standard 存储类相同,S3 Intelligent-Tiering 专为 99.999999999% 的持久性而设计。S3 Intelligent-Tiering 设计用于提供 99.9% 的可用性,并附带服务等级协议,当在任意账单周期内的可用性低于我们的服务承诺时,还可提供服务积分。
问:如何将数据存入 S3 Intelligent-Tiering?
有两种方式可以将数据存入 S3 Intelligent-Tiering。可以通过指定 x-amz-存储类标头中的 INTELLIGENT_TIERING 来直接放入 S3 Intelligent-Tiering 中,也可以设置生命周期策略以将对象从 S3 Standard 或 S3 Standard-IA 转换到 S3 INTELLIGENT_TIERING。
S3 Intelligent-Tiering 是如何收费的?
S3 Intelligent-Tiering 会向您收取月度存储费用、请求和数据传输费用,还会对每个对象的监控和自动化向您收取很少的月服务费。S3 Intelligent-Tiering 存储类自动将对象存储在三个访问层中:按 S3 Standard 存储费率定价的频繁访问层、按 S3 Standard-Infrequent Access 存储费率定价的不频繁访问层,以及按 S3 Glacier Instant Retrieval 存储费率定价的归档即时访问层。S3 Intelligent-Tiering 还有两个专为异步访问设计的可选归档层,按 S3 Glacier Flexible Retrieval 存储费率定价的归档访问层和按 S3 Glacier Deep Archive 存储费率定价的深层归档访问层。
对于小额监控和自动化费用,S3 Intelligent-Tiering 会监控访问模式并自动移动对象到低延迟、高吞吐量访问层,以及两个可选异步归档访问层,客户可以借此在云中为可异步访问的数据实现最低存储成本。
S3 Intelligent-Tiering 没有最小可计费对象大小,但小于 128KB 的对象没有资格进行自动分层。 这些小型对象将不受监控,并将始终按频繁访问层费率收费,没有监控和自动化费用。对于在 S3 Intelligent-Tiering 中归档到归档访问层或深度归档访问层的每个对象,Amazon S3 为对象名称和其他元数据使用 8KB 的存储空间(按 S3 Standard 存储费率计费),为索引和相关元数据使用 32KB 的存储空间(按 S3 Glacier Flexible Retrieval 和 S3 Glacier Deep Archive 存储费率计费)。
问:从 S3 Intelligent-Tiering 取回数据是否会产生费用?
否。S3 Intelligent-Tiering 没有取回费用。S3 Intelligent-Tiering 会监控您的数据的访问模式,而且如果您访问不频繁访问、归档即时访问或异步归档层中的对象,S3 Intelligent-Tiering 会自动移动该对象到频繁访问层。
问:如何激活 S3 Intelligent-Tiering 归档访问层?
您可以使用 Amazon S3 API、CLI 或 S3 管理控制台创建存储桶、前缀或对象标签级别配置,从而激活存档访问层和深度存档访问层。如果您的对象可以被应用程序异步访问,则仅应激活一个或两个存档访问层。
问:是否可以延长在 S3 Intelligent-Tiering 存储类中存档对象之前的访问时间?
可以。在存储桶、前缀或对象标签级别配置中,您可以延长在 S3 Intelligent-Tiering 中归档对象的最后访问时间。启用该功能后,默认情况下,最少连续 90 天未访问的对象将自动移动到归档访问层中,而跳过归档即时访问层。最少连续 180 天未访问的对象将自动移动到深度归档访问层中。对于在 S3 Intelligent-Tiering 中自动存档前最后一次访问之后的连续天数默认配置,最多可以延长 2 年。
问:如何从 S3 Intelligent-Tiering 存储类的存档访问层或深度存档访问层中获取对象?
要访问存档或深度存档访问层中的对象,您需要发出“还原”请求,该对象将开始移回到频繁访问层,所有对象都存储在 S3 Intelligent-Tiering 存储类中。存档访问层中的对象将在 3-5 小时内移至频繁访问层,深度存档访问层中的对象将 12 小时内移至频繁访问层。一旦对象位于频繁访问层中,您就可以发出 GET 请求以取回对象。
问:如何知道我的对象存储在哪个 S3 Intelligent-Tiering 访问层中?
您可以使用 Amazon S3 清单来针对存储在 S3 Intelligent-Tiering 存储类中的对象的访问层生成报告。Amazon S3 清单提供 CSV、ORC 或 Parquet 输出文件,从而每日或每周为 S3 存储桶或共享前缀列出您的对象及其相应的元数据。您还可以对您的对象提出 HEAD 请求,以报告 S3 Intelligent-Tiering 归档访问层。
问:是否可以将对象的生命周期从 S3 Intelligent-Tiering 转换到其他存储类?
是。您可以将对象的生命周期从 S3 Intelligent-Tiering 频繁访问、不频繁和归档即时访问层转换到 S3 One-Zone Infrequent Access、S3 Glacier Flexible Retrieval 和 S3 Glacier Deep Archive。此外,您可以将对象的生命周期从 S3 Intelligent-Tiering 可选归档访问层转换到 S3 Glacier Flexible Retrieval 和 S3 Glacier Deep Archive,从 S3 Intelligent-Tiering 深度归档访问层转换到 S3 Glacier Deep Archive。
问:S3 Intelligent-Tiering 是否有最短期限?
没有。S3 Intelligent-Tiering 存储类没有最短存储期限。
问:S3 Intelligent-Tiering 是否有最小可计费对象大小限制?
没有。S3 Intelligent-Tiering 存储类没有最小可计费对象大小,但小于 128KB 的对象没有资格进行自动分层。这些较小的对象将始终按频繁访问层费率收费,没有监控和自动化费用。对于在 S3 Intelligent-Tiering 中归档到可选的归档访问层或深度归档访问层的每个对象,Amazon S3 为对象名称和其他元数据使用 8KB 的存储空间(按 S3 Standard 存储费率计费),为索引和相关元数据使用 32KB 的存储空间(按 S3 Glacier Flexible Retrieval 和 S3 Glacier Deep Archive 存储费率计费)。如需更多详细信息,请访问 Amazon S3 定价页面。
S3 Standard
问:什么是 S3 Standard?
Amazon S3 Standard 为频繁访问的数据(通常每个月一次以上)提供具有毫秒级访问延迟和高吞吐量性能的持久性存储。S3 Standard 专为性能敏感型使用案例而设计,如数据湖、云原生应用程序、动态网站、内容分发、移动和游戏应用程序、分析和机器学习模型。S3 Standard 的设计可以在指定年度内跨多个可用区实现 99.99% 的数据可用性和 99.999999999% 的对象持久性。您可以使用 S3 生命周期策略来控制数据在 S3 Standard 和较低成本存储类之间转移的具体时间,而不对应用程序做任何更改。
问:为什么应选择使用 S3 Standard?
S3 Standard 非常适用于最频繁访问或修改的数据,这些数据要求以毫秒级且高吞吐量性能进行访问。由于不会产生取回费用,因此 S3 Standard 是经常读取或写入数据的理想选择。S3 Standard 针对各种用例进行了优化,包括数据湖、云原生应用程序、动态网站、内容分发、移动和游戏应用程序以及分析。
S3 Express One Zone
问:什么是 Amazon S3 Express One Zone 存储类?
Amazon S3 Express One Zone 是一款高性能的专用单可用区 Amazon S3 存储类,可为客户对延迟最敏感的应用程序提供稳定的毫秒级数据访问性能。Amazon S3 Express One Zone 是现有的延迟最低的云对象存储类,与 Amazon S3 Standard 相比,数据访问速度提高了 10 倍,请求成本降低了 50%。 借助 S3 Express One Zone,您可以在 AWS 区域内选择特定的 AWS 可用区来存储您的数据。您可以选择将存储和计算资源放在同一可用区中,以进一步优化性能。
问:我为什么要选择使用 Amazon S3 Express One Zone 存储类?
S3 Express One Zone 是需要为延迟敏感型应用提供最快的数据访问速度和最高性能的应用程序的理想存储类。S3 Express One Zone 是适合请求密集型操作 — 例如机器学习(ML)训练和推理、交互式分析以及媒体内容创建的最佳存储类。
问:如何开始使用 Amazon S3 Express One Zone 存储类?
您可以先在所选 AWS 可用区(AZ)中创建一个 S3 目录存储桶。您可以选择将存储和计算资源放在同一可用区中,以进一步优化性能。 默认情况下,目录存储桶已开启“S3 屏蔽公共访问权限”。创建目录存储桶后,您可以直接将对象上传到 S3 Express One Zone 存储类,或者将对象从现有 S3 存储类复制到 S3 Express One Zone。您还可以通过在 AWS 管理控制台中单击一下,将数据导入到 S3 Express One Zone 中,或使用 S3 批量操作将整个存储桶、前缀或数据子集从现有 S3 存储类复制到 S3 Express One Zone 中。
问:如何将数据导入 Amazon S3 Express One Zone 存储类?
创建目录存储桶后,您可以使用导入选项,通过 S3 控制台将同一 AWS 区域内的数据导入到 S3 Express One Zone 存储类中。导入功能让您可以选择要从中导入数据的前缀或存储桶,而无需指定要单独复制的所有对象,从而简化了将数据复制到 S3 目录存储桶的过程。S3 批量操作会复制所选前缀或通用存储桶中的对象,您可以通过 S3 批量操作作业详细信息页面监控导入复制作业的进度。
问:Amazon S3 Express One Zone 对象存储在多少个可用区中?
S3 Express One Zone 对象存储在您选择的单个 AWS 可用区(AZ)中。将对象存储在一个区域中,您就可以将数据存储在计算本地,从而最大限度地减少延迟。尽管这会增加延迟,但您可以跨可用区访问数据。
问:Amazon S3 Express One Zone 存储类提供何种性能?
S3 Express One Zone 提供与其他 S3 存储类别相似的性能弹性,但具有稳定的毫秒级第一字节读取和写入延迟请求延迟,最多比现有 S3 存储类快 10 倍。借助 S3 Express One Zone,客户无需提前规划或预置容量或吞吐量需求,即可立即受益于提高一个数量级的请求完成速度。S3 Express One Zone 非常适合存储延迟可加快作业完成速度并降低总体 TCO 的分析作业。同时,它也非常适合视频编辑等交互式工作负载,在这些工作负载中,创意专业人士需要以最快的响应速度访问其 S3 数据。
问:Amazon S3 Express One Zone 存储类如何实现高性能?
S3 Express One Zone 使用独特的架构,可优化性能并提供稳定的低请求延迟。S3 Express One Zone 将数据存储在高性能硬件上,其对象协议已得到增强,可简化身份验证和元数据开销。此外,为了进一步提高访问速度并支持每秒数十万个请求,数据存储在新的存储桶类型(Amazon S3 目录存储桶)中。 借助 S3 Express One Zone,您可以在 AWS 区域内选择特定的 AWS 可用区来存储您的数据。您可以选择将存储和计算资源放在同一可用区中,以进一步优化性能。
问:S3 目录存储桶支持何种请求速率性能?
每个 S3 目录存储桶每秒可以支持数十万个事务(TPS),这与存储桶内的目录数量无关。
问:长时间没有请求活动的 S3 目录存储桶会怎样?
在至少 3 个月内没有请求活动的 S3 目录存储桶将过渡到非活动状态。处于非活动状态的目录存储桶暂时无法进行读取和写入。非活动存储桶将保留所有存储、对象元数据和存储分区元数据。现有的存储费用将适用于非活动存储桶。非活动存储桶收到访问请求时,通常会在几分钟内过渡到活动状态。在此过渡期间,读取和写入操作将返回 503 SlowDown 错误代码。
问:我应该如何利用 S3 Express One Zone 存储类来规划应用程序的吞吐量需求?
S3 Express One Zone 提供与其他 Amazon S3 存储类类似的高弹性吞吐量。S3 Express One Zone 的设计从一开始就允许个人客户将吞吐量提升到非常高的聚合水平。例如,机器学习模型训练应用程序可以针对数百万个对象和 PB 级数据进行训练。您可以通过将这些请求分散到单独的连接上以最大化可访问的带宽来实现最高性能。
问:与其他 S3 存储类相比,Amazon S3 Express One Zone 的请求授权有何不同?
借助 S3 Express One Zone,您可以通过一种新的基于会话的机制(S3 CreateSession)来对请求进行身份验证和授权,该机制经过优化,可提供最低的延迟。您可以使用 CreateSession 请求临时凭证,以实现对存储桶的低延迟访问。这些临时凭证的范围仅限于特定的 S3 目录存储桶。有关此基于会话的模型的更多信息,请参阅开发人员指南中的 S3 创建会话。
问:Amazon S3 Express One Zone 存储类的可靠性如何?
S3 Express One Zone 旨在在单个可用区内提供 99.95% 的可用性,可用性 SLA 为 99.9%。
问:Amazon S3 Express One Zones 存储类如何设计以提供 99.95% 的可用性?
借助 S3 Express One Zone,您的数据可以在单个可用区内的多个设备上冗余存储。S3 Express One Zone 旨在通过快速检测和修复任何丢失冗余,从而抵御同时发生的设备故障。这意味着,如果现有设备遇到故障,S3 Express One Zone 会自动将请求转移到可用区内的新设备。这种冗余可以实现对可用区内数据的不间断访问。
问:Amazon S3 Express One Zone 如何收费?
开始使用 S3 Express One Zone 时,没有安装费,也无需订立合约。S3 Express One Zone 向您收取存储和请求费用。每月计费的存储量是根据每小时使用的总存储量累积的,以每月千兆字节计(即 GB-月)。您还需要根据请求类型(例如 PUT 和 GET)支付每次访问请求的费用。对于请求大小超过 512KB 的部分,您还需要额外支付每 GB 费用。
示例 1:
假设您在 S3 Express One Zone 中存储 10GB 的数据,持续 30 天,总共进行了 100 万次写入和 900 万次读取,使用 Athena 进行访问,请求大小为 10KB。然后,您将在 30 天结束时删除 100 万个文件。假定您的存储桶位于美国东部(弗吉尼亚州北部)区域,则存储和请求费用按以下方式计算:
存储费用
总字节小时使用量 = 10 GB-月
总存储成本 = 10 GB-月 x 0.16 USD = 1.6 USD
请求费用
100 万个 PUT 请求:100 万个请求 x 0.0025 USD/1000 = 2.5 USD
900 万个 GET 请求:900 万个请求 x 0.0002 USD/1000 = 1.8 USD
100 万个 DELETE 请求 = 100 万个请求 x 0.00 USD(无费用) = 0 USD
总费用 = 1.6 USD + 2.5 USD + 1.8 USD = 5.9 USD
示例 2:
假设您每天为 8 小时的工作负载存储 10TB 的机器学习训练数据,然后将其删除。在 8 小时的工作负载期间,您以 2MB 的请求大小进行了 5242880 次写入和 10485760 次读取。假设您这样持续操作了 30 天(一个月)。
存储费用
总字节小时使用量 = [10995116277760 字节 x 30 天 x(8 小时/天)] = 2638827906662400 字节小时 = 3303.77 GB-月
总存储成本 = 3303.77 GB x 0.16 USD = 528.51 USD
请求费用
每天 524.288 万个 PUT 请求:524.288 万个请求 x 30 x 0.0025 USD/1000 = 393.22 USD
每天 1048.576 万个 GET 请求:1048.576 万个请求 x 30 天 x 0.0002 USD/1000 = 62.91 USD
每天 524.288 万个 DELETE 请求:524.288 万个请求 x 0.00 USD(免费)= 0 USD
对于每个请求,将收取额外带宽费用:1.5MB (2-0.5MB) = 0.001465 GB
PUT 带宽费用:0.001465GB x 5242880 x 30 x 0.008 USD = 1843.2 USD
GET 带宽费用:0.001465 GB x 10485760 x 30 x 0.015 USD = 691.2 USD
总费用 = 528.51 USD + 393.22 USD + 62.91 USD + 1843.2 USD + 691.2 USD = 3519.05 USD
问:在同一区域内使用 Amazon S3 Express One Zone 存储类是否需要支付额外的数据传输费用?
访问 S3 Express One Zone 中数据的请求费用包括在某个区域的 AWS 网络内传输数据的费用,对于在同一区域内的 Amazon EC2(或任何 AWS 服务)和 S3 Express One 区域之间传输的数据,例如在美国东部(弗吉尼亚州北部)区域内传输的数据,不收取额外的数据传输费用。
问:将网关 VPC 端点与 Amazon S3 Express One Zone 存储类结合使用是否会产生额外的网络费用?
访问 S3 Express One Zone 中的数据的请求费用包括使用网关 VPC 端点的成本,并且在 S3 Express One Zone 中使用网关端点无需额外付费。
S3 Standard-Infrequent Access (S3 Standard-IA)
问:什么是 S3 Standard-Infrequent Access?
S3 Standard-Infrequent Access (S3 Standard-IA) 是一种 Amazon S3 存储类,用于不常访问但在需要时要求快速访问的数据。S3 Standard-IA 提供了 Amazon S3 Standard 存储类的高持久性、高吞吐量和低延迟,每 GB 存储价格和每 GB 取回费用都比较低。成本较低且性能出色使得 S3 Standard-IA 成为长期存储和备份的理想选择,也非常适用于灾难恢复的数据存储。S3 Standard-IA 存储类是在对象级别进行设置的,并且可以与 S3 Standard 或 S3 One Zone-IA 存储类存在于同一个存储桶中,从而让您可以使用 S3 生命周期策略在存储类之间自动转移对象,而无需更改任何应用程序。
问:为什么应选择使用 S3 Standard-IA?
S3 Standard-IA 适用于不常访问但在需要时要求快速访问的数据。S3 Standard-IA 非常适合长期文件存储、较旧的同步和共享存储以及其他老化数据。
问:S3 Standard-IA 可提供什么样的性能?
S3 Standard-IA 提供与 S3 Standard 存储类相同的延迟和高吞吐量性能。
问:如何将数据存入 S3 Standard-IA?
有两种方式可以将数据存入 S3 Standard-IA。通过在 x-amz-storage-class 标头中指定 STANDARD_IA,您可以通过 PUT 操作直接将数据放入 S3 Standard-IA。您还可以设置生命周期策略,将对象从 S3 Standard 转移到 S3 Standard-IA 存储类。
问:如果使用 COPY 请求将对象的存储类从 S3 Standard-IA 更改为 S3 Standard,会产生哪些费用?
S3 Standard(目标存储类)COPY 请求和 S3 Standard-IA(源存储类)数据取回将产生费用。有关更多信息,请访问 Amazon S3 定价页面。
S3 Standard-IA 专为长时间运行但不经常访问的数据(已保留了数月或数年)而设计。在 30 天内从 S3 Standard-IA 删除的数据将按完整的 30 天收费。请参阅 Amazon S3 定价页面,获取有关 S3 Standard-IA 定价的信息。
问:S3 标准 – IA 是否有最低对象存储费用?
S3 Standard-IA 专为较大的对象而设计,其最小对象存储大小为 128KB。小于 128KB 的对象将产生存储费用,并按 128KB 计费。比如,S3 Standard-IA 存储类中 6KB 的对象将产生 6KB 的 S3 Standard-IA 存储费用,而剩下的最小对象大小(等于 122KB)将按照 S3 Standard-IA 存储价格收取。请参阅 Amazon S3 定价页面,获取有关 S3 Standard-IA 定价的信息。
问:是否可以将 S3 Standard-IA 中的对象分层到 S3 One Zone-IA 或 S3 Glacier Flexible Retrieval 存储类?
是。除了使用生命周期策略将对象从 S3 Standard 迁移到 S3 Standard-IA 之外,您还可以将生命周期策略设置为将 S3 Standard-IA 的对象分层到 S3 One Zone-IA、S3 Glacier Instant Retrieval、S3 Glacier Flexible Retrieval 和 S3 Glacier Deep Archive 存储类。
S3 One Zone-Infrequent Access (S3 One Zone-IA)
问:什么是 S3 单区 – IA 存储类?
S3 单区 – IA 存储类是一个 Amazon S3 存储类,让客户可以选择将对象存储在单个可用区中。S3 One Zone-IA 存储以冗余方式将数据存储在单个可用区内,这种存储的成本比地理上冗余的 S3 Standard-IA 存储的成本低 20%,而后者是以冗余方式将数据存储在多个地理上分离的可用区内。
S3 One Zone-IA 提供 99% 的可用性 SLA,并且在可用区内的持久性还能够达到 99.999999999%。然而,S3 One Zone-IA 存储类中的数据对整个可用区的物理损失不具有弹性。
S3 One Zone-IA 存储提供与 S3 Standard 和 S3 Standard-IA 相同的 Amazon S3 功能,用户可以通过 Amazon S3 API、CLI 和控制台使用这种存储类。S3 One Zone-IA 存储类是在对象级别进行设置的,并且可以和 S3 Standard 和 S3 Standard-IA 标准存储类存在于同一个存储桶中。您可以使用 S3 生命周期策略在存储类之间自动转移对象,而无需更改任何应用程序。
问:S3 单区 – IA 存储类最适合用于哪些使用案例?
客户将 S3 单区 – IA 存储类用于访问频率较低的存储,如备份副本、灾难恢复副本或其他易于重新创建的数据。
问:S3 单区 – IA 存储类可提供什么样的性能?
S3 One Zone-IA 存储类可提供与 S3 Standard 和 S3 Standard-Infrequent Access 存储类的相同的延迟和吞吐量性能。
问:S3 One Zone-IA 存储类的持久性如何?
S3 One Zone-IA 存储类在一个可用区内的持久性可达到 99.999999999%。然而,S3 One Zone-IA 存储类中的数据对可用区的可用性损失或物理损失不具有弹性。相比之下,S3 Standard、S3 Intelligent-Tiering、S3 Standard-Infrequent Access 和 S3 Glacier 存储类能够承受住可用性下降或可用区毁坏的情况。S3 One Zone-IA 可以提供与大多数现代物理数据中心相当或更高的持久性和可用性,同时还提供存储弹性和 Amazon S3 功能集的额外优势。
问:S3 One Zone-IA 中的“区域”与 AWS 可用区是否一样?
是。每个 AWS 区域都是一个独立的地理区域。每个区域都有多个相互隔离的位置,称为可用区。Amazon S3 One Zone-IA 存储类使用区域内的单个 AWS 可用区。
问:通过使用 S3 One Zone-IA,我将放弃多少灾难恢复保护能力?
每个可用区均使用冗余电源和联网。在 AWS 区域内,可用区位于不同的冲积平原和地震断裂带,并且在地理位置上是分离的,以避免受到火灾的影响。S3 Standard 和 S3 Standard-IA 存储类通过以冗余方式将数据存储在多个可用区来避免受到这类灾难的影响。S3 单区 – IA 对可用区内的设备故障提供保护,但数据对于因地震和洪水等灾难造成的可用区物理损失不具有弹性。使用 S3 One Zone-IA、S3 Standard 和 S3 Standard-IA 选项,您可以选择最符合您的存储持久性和可用性要求的存储类。
Amazon S3 Glacier Instant Retrieval 存储类
问:什么是 Amazon S3 Glacier Instant Retrieval 存储类?
S3 Glacier Instant Retrieval 存储类为很少访问且需要毫秒级取回速度的长期数据提供最低成本的存储。S3 Glacier Instant Retrieval 可提供对归档存储的最快访问,并且与 S3 Standard 和 S3 Standard-IA 存储类具有相同的吞吐量和毫秒级访问速度。通过跨至少三个物理分离的 AWS 可用区冗余存储数据,S3 Glacier Instant Retrieval 旨在实现 99.999999999%(11 个 9)的数据持久性和 99.9% 的可用性。
问:为什么应选择使用 S3 Glacier Instant Retrieval?
如果您有很少访问的数据,而且要求毫秒级延迟,则 S3 Glacier Instant Retrieval 是您的理想选择。若您想要和 S3 Standard-IA 相同的低延迟和高吞吐量性能,但存储数据的访问频率低于 S3 Standard-IA,那么它就非常适合您,因为它的存储价格降低,而数据访问成本稍高。
问:S3 Glacier Instant Retrieval 的可用性和持久性如何?
S3 Glacier Instant Retrieval 专为实现与 S3 Standard-IA 相同的 99.999999999%(11 个 9)持久性和 99.9 可用性而设计,它具有服务等级协议,可在任何计费周期内的可用性低于 99% 时提供服务积分。
问:S3 Glacier Instant Retrieval 提供怎样的性能?
S3 Glacier Instant Retrieval 提供与 S3 Standard 和 S3 Standard-IA 存储类相同的毫秒级延迟和高吞吐量性能。有别于专为异步访问设计的 S3 Glacier Flexible Retrieval 和 S3 Glacier Deep Archive 存储类,您不需要在访问存储于 S3 Glacier Instant Retrieval 的对象前发出 Restore 请求。
问:如何将我的数据存入 S3 Glacier Instant Retrieval?
将数据存入 S3 Glacier Instant Retrieval 的方式有两种。您可以通过指定 x-amz-storage-class 标头中的 GLACIER_IR 来直接放入 S3 Glacier Instant Retrieval 中,也可以设置 S3 生命周期策略以将对象从 S3 Standard 或 S3 Standard-IA 转移到 S3 Glacier Instant Retrieval。
问:Amazon S3 Glacier Instant Retrieval 是否有最低存储持续时间费用?
S3 Glacier Instant Retrieval 的设计适用于长期但很少访问的数据(已保留了数月或数年)。归档到 S3 Glacier Instant Retrieval 中的对象最短可存储 90 天,同时未满 90 天就被删除、覆盖或转移的对象所产生的按比例支付的费用等于按剩余天数支付的存储费用。请查看 Amazon S3 定价页面,获取有关 Amazon S3 Glacier Instant Retrieval 定价的信息。
问:Amazon S3 Glacier Instant Retrieval 是否有最低对象大小费用?
S3 Glacier Instant Retrieval 专为较大的对象而设计,其最小对象存储大小为 128KB。小于 128KB 的对象将产生存储费用,并按 128KB 计费。比如,S3 Glacier Instant Retrieval 中 6KB 的对象将产生 6KB 的 S3 Glacier Instant Retrieval 存储费用,而额外的最低对象大小费用(等于 122KB)将按照 S3 Glacier Instant Retrieval 存储价格收取。请查看 Amazon S3 定价页面,获取有关 Amazon S3 Glacier Instant Retrieval 定价的信息。
问:S3 Glacier Instant Retrieval 如何收费?
S3 Glacier Instant Retrieval 会根据请求类型和数据取回向您收取每月存储和请求费用。每月计费的存储容量基于全月内使用的平均存储量,以每月千兆字节计(即:GB 月)。您将按照请求类型(如 PUT、COPY 和 GET)支付请求费用。您还要为返回给您的每 GB 数据支付每 GB 费用。
Amazon S3 Glacier Flexible Retrieval 存储类
问:什么是 S3 Glacier Flexible Retrieval 存储类?
S3 Glacier Flexible Retrieval 存储类为每年访问 1-2 次且异步取回的归档数据提供低成本存储,成本最多降低 10%(相比 S3 Glacier Instant Retrieval),以及免费批量取回。对于不需要立即访问,但需要灵活地免费取回大量数据的归档数据,例如备份或灾难恢复使用案例,S3 Glacier Flexible Retrieval 是理想的存储类。S3 Glacier Flexible Retrieval 提供最灵活的取回选项,可以平衡成本与访问时间(从几分钟到几小时不等),并且可批量取回。它是备份、灾难恢复、离线数据存储需求的理想解决方案,并且还非常适合于偶尔需要在几分中内取回部分数据而您不想担心成本的情况。通过跨多个物理分离的 AWS 可用区冗余存储数据,S3 Glacier Flexible Retrieval 旨在实现 99.999999999%(11 个 9)的数据持久性和 99.99% 的可用性。
问:为什么应选择使用 S3 Glacier Flexible Retrieval 存储类?
对于不需要立即访问,但需要灵活地免费取回大量数据的归档数据,例如备份或灾难恢复使用案例,S3 Glacier Flexible Retrieval 是理想的存储类。S3 Glacier Flexible Retrieval 提供最灵活的取回选项,可以平衡成本与访问时间(从几分钟到几小时不等),并且可批量取回。它是备份、灾难恢复、离线数据存储需求的理想解决方案,并且还非常适合于偶尔需要在几分中内取回部分数据而您不想担心数据取回成本的情况。
问:如何将我的数据存入 S3 Glacier Flexible Retrieval?
将数据存入 S3 Glacier Flexible Retrieval 的方式有两种。通过在 x-amz-storage-class 标头中指定 GLACIER,您可以直接将数据放入 S3 Glacier Flexible Retrieval。您还可以使用 S3 生命周期规则基于对象的使用年限在适用于活动数据的任何 S3 存储类(S3 Standard、S3 Intelligent-Tiering、S3 Standard-IA、S3 One Zone-IA 和 S3 Glacier Instant Retrieval)与 Amazon S3 Glacier Flexible Retrieval 之间传输数据。使用 Amazon S3 管理控制台、AWS 开发工具包或 Amazon S3 API 来直接放入 Amazon S3 Glacier 或定义归档规则。
注:S3 Glacier Flexible Retrieval 还可以通过原始直接 Glacier API 和 Amazon S3 Glacier 管理控制台提供。为了获取增强体验和完整 S3 功能集的访问权限,包括生命周期管理、S3 复制、S3 Storage Lens 等,我们建议通过 S3 API 和 S3 管理控制台来使用 S3 Glacier 功能。
问:如何取回归档在 S3 Glacier Flexible Retrieval 中的对象?对象还原时我会收到通知吗?
归档在 S3 Glacier Flexible Retrieval 中的对象可以异步访问。要取回存储在 S3 Glacier Flexible Retrieval 中的数据,您需要使用 Amazon S3 API 或 Amazon S3 控制台启动取回请求。取回请求会在 S3 Standard 存储类中创建数据的临时副本,同时已归档数据将原封不动地保留在 S3 Glacier Flexible Retrieval 中。您可以以天为单位指定将临时副本存储在 Amazon S3 上的时间。然后,可以通过 Amazon S3 GET 从 S3 中请求访问已归档对象的临时副本。 在低冗余存储价格低于 S3 Standard 价格的 AWS 区域,临时可用的数据按低冗余存储计费。但是,低冗余计费存储类并不能反映数据的存储方式。
通过还原通知,您现在可在从 S3 Glacier Flexible Retrieval 成功还原对象并且临时副本可供您使用时使用 S3 事件通知通知您。存储桶拥有者(或 IAM 策略允许的其他人)可以安排将通知发送到 Amazon Simple Queue Service (SQS) 或 Amazon Simple Notification Service (SNS)。通知也可传送到 AWS Lambda,由 Lambda 函数进行处理。
问:恢复归档在 Amazon S3 Glacier Flexible Retrieval 中的对象需要多长时间?
处理取回任务时,Amazon S3 首先从 S3 Glacier Flexible Retrieval 取回请求的数据,然后在 Amazon S3 中创建所请求数据的临时副本。这通常需要几分钟时间。请求的访问时间取决于您选择的取回选项:加急、标准或批量取回。除了最大的对象 (250MB+) 以外,对于使用加急取回方式访问的所有数据,通常在 1-5 分钟内即可使用。使用标准取回方式取回的对象通常在 3-5 小时内完成。使用 S3 批量操作启动时,标准取回通常可在几分钟内开始。批量取回通常在 5-12 小时内完成,而且是免费的。有关 S3 Glacier Flexible Retrieval 选项的更多信息,请参阅《S3 用户指南》中的恢复归档的对象。
使用 S3 Glacier 存储类预置容量单位,您可以为给定月份支付固定的预付费用,以确保获得从 S3 Glacier Flexible Retrieval 进行加急取回所需的取回容量。您每月可以购买 2 个预置容量单位,从而增加可以取回的数据量。每单位容量可确保每 5 分钟内至少可执行 3 次加急取回,并提供最高达 150MB/s 的取回吞吐量。如果您的工作负载需要在几分钟内对数据子集进行高度可靠且可预测的访问,那么您应该购买预置取回容量。如果没有预置容量,在高需求期间,可能不会接受加快取回。如果您在任何情况下需要访问加速取回,我们建议您购买预置的取回容量。
您可以使用 Amazon S3 控制台、购买预置容量 REST API、AWS 开发工具包或 AWS CLI 购买预置容量。预置容量单位从购买日期和时间(即开始日期)开始,持续一个月。单位在到期日期时过期,该日期恰好是开始日期后的一个月,精确到秒钟。有关预置容量定价信息,请参阅 Amazon S3 定价。
问:将 Amazon S3 对象归档到 S3 Glacier Flexible Retrieval 时,如何计算存储费用?
每月计费的存储容量基于全月内使用的平均存储量,以每月千兆字节计(即:GB 月)。Amazon S3 计算对象大小的方式为:您存储的数据大小,加上额外 32KB 的 S3 Glacier 数据,再加上额外 8KB 的 Amazon S3 Standard 存储类数据。对于每个对象,S3 Glacier Flexible Retrieval 需要额外 32KB 的数据用于 S3 Glacier 的索引和元数据,以便您能够识别和取回数据。Amazon S3 需要 8KB 存储空间来存储和维护已归档到 S3 Glacier Flexible Retrieval 的对象的用户定义名称和元数据。这样一来,您便可以使用 Amazon S3 LIST API 或 S3 清单报告实时获取所有 Amazon S3 对象的列表,包括使用 S3 Glacier Flexible Retrieval 存储的对象。
例如,如果您归档了 100000 个数据对象且每个数据对象均为 1GB,那么您的可计费存储应为:
每个对象 1.000032GB x 100000 个对象 = 100003.2GB S3 Glacier 存储。
每个数据对象 0.000008 GB 字节 x 100000 个数据对象 = 0.8GB S3 Standard 存储。
费用根据 Amazon S3 定价页面上您所在 AWS 区域的当前费率计算得出。有关其他 Amazon S3 定价示例,请前往 S3 账单常见问题或使用 AWS 定价计算器。
问:Amazon S3 Glacier Flexible Retrieval 是否存在最低的存储持续时间和最低的对象存储费用?
归档到 S3 Glacier 灵活取回的对象的最短存储时长为 90 天。如果对象存储未满 90 天即被删除、覆盖或转换,还需按比例支付一定的费用,金额为剩余天数将产生的存储费用。
S3 Glacier Flexible Retrieval 还需要额外为每个存储对象提供 40 KB 元数据,其中包括按 S3 Glacier Flexible Retrieval 费率收费的识别和取回数据所需的 32 KB 元数据。另外 8 KB 数据按 S3 Standard 费率收费,这是维护归档到 S3 Glacier Flexible Retrieval 的对象的自定义名称和元数据所必需的数据。这让您可以使用 S3 LIST API 或 S3 清单报告获取所有 S3 对象的实时列表。请参阅 Amazon S3 定价页面,获取有关 Amazon S3 Glacier Flexible Retrieval 定价的信息。
问:从 Amazon S3 Glacier Flexible Retrieval 取回数据的成本是多少?
从 S3 Glacier Flexible Retrieval 取回数据的方式有三种:加急、标准和批量取回。加急和标准方式具有不同的每 GB 取回费和每请求费(即,您需要为针对 Amazon S3 对象的请求付费)。从 S3 Glacier Flexible Retrieval 进行批量取回是免费的。有关不同 AWS 区域的 S3 Glacier 定价的详细信息,请访问 Amazon S3 定价页面。
问:Amazon S3 是否能将对象归档到费用更低的存储类?
Amazon S3 Glacier 存储类专为数据归档而构建,旨在为您提供具有最高性能、最大取回灵活性和最低成本的云归档存储。现在,您可以从针对不同访问模式和存储持续时间优化的三种归档存储类中进行选择。对于需要即时访问的归档数据,例如医学图像、新闻媒体资产或基因组学数据,请选择 S3 Glacier Instant Retrieval 存储类,这种归档存储类可提供最低的存储成本及毫秒级取回速度。对于不需要立即访问但需要灵活地免费取回大量数据的归档数据,例如备份或灾难恢复使用场景,请选择 S3 Glacier Flexible Retrieval,它可在几分钟内取回,也可以在 5-12 小时内进行免费批量取回。要使长期归档存储(例如合规性归档和数字媒体保留)实现更大的成本节省,请选择 S3 Glacier Deep Archive,这是成本最低的云存储,数据取回时间不超过 12 小时。
问:支持 S3 Glacier Flexible Retrieval 和 S3 Glacier Deep Archive 存储类的后端基础设施是什么?
我们更倾向于关注客户在性能、持久性、可用性和安全性方面的结果。但是,我们的客户经常会提出这个问题。我们使用各种不同技术,让我们可以将我们的价格报给客户。我们的服务是使用常见数据存储技术构建的,这些技术使用 AWS 开发的软件专门组装到特别定制、成本优化的系统中。我们能够优化输入和输出次序,因此 S3 Glacier 存储类可最大限度地提高访问底层存储的效率。
Amazon S3 Glacier Deep Archive
问:什么是 Amazon S3 Glacier Deep Archive 存储类?
S3 Glacier Deep Archive 是一种 Amazon S3 存储类,这为长期保存每年访问一两次的数据提供了安全、持久的对象存储。S3 Glacier Deep Archive 的云存储成本最低,每月每 GB 仅 0.00099 USD(不到 0.1 美分,或每月每 TB 约 1 USD)起,远低于存储和维护本地磁带库或异地归档数据的价格。
问:S3 Glacier Deep Archive 存储类最适用于哪些使用案例?
S3 Glacier Deep Archive 是一种理想的存储类,可以为公司最重要的数据资产提供离线保护,或者在根据公司政策、合同或监管合规性要求需要长期保留数据时提供离线保护。客户发现 S3 Glacier Deep Archive 是一个非常有吸引力的选择,可用来保护核心知识产权、金融和医疗记录、研究结果、法律文件、地震勘探研究和长期备份的,特别是在金融服务、医疗、石油和天然气以及公共部门等监管严格的行业。此外,还有一些企业希望保留核心知识产权的备份副本,比如媒体和娱乐公司。通常,使用 S3 Glacier Deep Archive 的客户可以减少或停止使用本地磁带库和本地之外的磁带归档服务。
问:S3 Glacier Deep Archive 存储类和 S3 Glacier Instant Retrieval 及 S3 Glacier Flexible Retrieval 存储类有何区别?
S3 Glacier Deep Archive 扩充了我们的数据归档产品,使您能够根据存储和取回成本以及取回时间选择最佳的存储类别。当需要以毫秒级延迟访问低成本归档数据时,您可以选择 S3 Glacier Instant Retrieval 存储类。对于不需要立即访问但需要灵活地免费取回大量数据的归档数据,例如备份或灾难恢复使用场景,请选择 S3 Glacier Flexible Retrieval,它可在几分钟内取回,也可以在 5-12 小时内进行免费批量取回。相比之下,S3 Glacier Deep Archive 专门用于不太可能访问但仍然需要长期持久存储的较冷数据。S3 Glacier Deep Archive 的费用比 S3 Glacier Flexible Retrieval 低多达 75%,而且使用标准取回层可在 12 小时进行取回。使用 S3 批量操作启动时,标准取回通常可在 9 小时内开始。您还可以通过选择批量取回来降低取回成本,批量取回将在 48 小时内返回数据。
问:如何开始使用 S3 Glacier Deep Archive?
在 S3 Glacier Deep Archive 中存储数据的最简单方法是使用 S3 API 直接上传数据。只需指定“S3 Glacier Deep Archive”作为存储类。您可以利用 AWS 管理控制台、S3 REST API、AWS 开发工具包或 AWS 命令行界面来完成该指定操作。
您还可以通过使用 S3 Lifecycle 来创建迁移数据的策略,以此开始使用 S3 Glacier Deep Archive,S3 Lifecycle 提供了定义对象生命周期和降低存储成本的能力。可以设置这些策略,以便根据对象的使用年限将对象迁移到 S3 Glacier Deep Archive 上。您可以为 S3 存储桶或特定前缀指定策略。生命周期转换按 S3 Glacier Deep Archive 上传价格计费。
磁带网关是 AWS Storage Gateway 的一个基于云的虚拟磁带库功能,现与 S3 Glacier Deep Archive 结合在一起,使您可以将基于虚拟磁带的长期备份和归档存储在 S3 Glacier Deep Archive 中,从而为云中的这些数据提供最低的存储成本。首先,使用 AWS Storage Gateway 控制台或 API 创建一个新的虚拟磁带,并将归档存储目标设置为 S3 Glacier Flexible Retrieval 或 S3 Glacier Deep Archive。当备份应用程序弹出磁带时,磁带将归档到选定的存储目标中。
问:将数据从现有的磁带存档迁移到 S3 Glacier Deep Archive 上,您有何建议?
有多种方法可以将数据从现有磁带存档迁移到 S3 Glacier Deep Archive。您可以使用 AWS Tape Gateway,以便通过虚拟磁带库 (VTL) 接口与现有备份应用程序集成。此接口可以将虚拟磁带提供给备份应用程序。以上操作可以立即将数据存储在 Amazon S3、S3 Glacier Instant Retrieval、S3 Glacier Flexible Retrieval 和 S3 Glacier Deep Archive。
您还可以使用 AWS Snowball 来迁移数据。Snowball 可使用能确保传输安全的物理存储设备,加快 TB 到 PB 级数据迁入和迁出 AWS 的速度。使用 Snowball 有助于解决进行大规模数据传输时会遇到的难题,包括网络费用高、传输时间长和安全问题。
最后,您可以使用 AWS Direct Connect 来建立从本地到 AWS 的专用网络连接。在许多情况下,Direct Connect 可以降低网络成本,增加带宽吞吐量,并提供比基于互联网的连接更一致的网络体验。
问:如何取回存储在 S3 Glacier Deep Archive 中的对象?
要取回存储在 S3 Glacier Deep Archive 中的数据,请使用 Amazon S3 API 或 Amazon S3 管理控制台提出“恢复”请求。“还原”会在 S3 Standard 存储类中创建数据的临时副本,同时使 S3 Glacier Deep Archive 中的已归档数据保持完整。您可以以天为单位指定将临时副本存储在 S3 上的时间。然后,可以通过 Amazon S3 GET 从 S3 中请求访问已归档对象的临时副本。
恢复存档对象时,您可以在请求正文的层级元素中指定以下选项之一:标准是默认层级,允许您在 12 小时内访问任何存档对象,使用 S3 批量操作启动时,取回通常在 9 小时内开始。批处理允许您以低廉的价格取回大量数据,甚至是 PB 级数据,而且通常在 48 小时内完成。
问:使用 S3 Glacier Deep Archive 时,如何收费?
S3 Glacier Deep Archive 存储的定价基于您所存储数据的 GB 量、PUT/生命周期转换请求数、取回的 GB 数以及恢复请求数。该定价模型类似于 S3 Glacier Flexible Retrieval。请参阅 Amazon S3 定价页面,获取有关 S3 Glacier Deep Archive 定价的信息。
问:S3 Glacier Deep Archive 使用情况将如何显示在我的 AWS 账单上和 AWS 成本管理工具中?
S3 Glacier Deep Archive 使用情况和成本将在您的每月 AWS 账单上显示为一个独立的服务行项目,与 Amazon S3 使用情况和成本分开。但是,如果您正在使用 AWS 成本管理工具,S3 Glacier Deep Archive 使用情况和成本将包括在您的每月详细开支报表中的 Amazon S3 使用情况和成本下,并且不会细分为单独的服务行项目。
问:S3 Glacier Deep Archive 是否存在最低的存储持续时间和最低的对象存储费用?
归档到 S3 Glacier Deep Archive 的对象的最短存储时长为 180 天。如果对象存储未满 180 天即被删除、覆盖或转换,还需按比例支付一定的费用,金额为剩余天数将产生的存储费用。
S3 Glacier Deep Archive 还需要额外为每个存储对象提供 40 KB 元数据,其中包括按 S3 Glacier Deep Archive 费率收费的识别和取回数据所需的 32 KB 元数据。另外 8 KB 数据按 S3 Standard 费率收费,这是维护归档到 S3 Glacier Deep Archive 的对象的自定义名称和元数据所必需的数据。这让您可以使用 S3 LIST API 或 S3 清单报告获取所有 S3 对象的实时列表。请参阅 Amazon S3 定价页面,获取有关 S3 Glacier Deep Archive 定价的信息。
问:S3 Glacier Deep Archive 如何与其他 AWS 服务相集成?
S3 Glacier Deep Archive 集成了 Amazon S3 功能,包括 S3 对象标记、S3 生命周期策略、S3 对象锁定和 S3 复制。通过 S3 存储管理功能,您可以使用单个 Amazon S3 存储桶存储 S3 Glacier Deep Archive、S3 Standard、S3 Standard-IA、S3 One Zone-IA 和 S3 Glacier Flexible Retrieval 数据的混合体。这让存储管理员可以基于数据和数据访问模式的性质做出决策。客户可以使用 Amazon S3 生命周期策略将老化的数据自动迁移到成本较低的存储类,也可以使用 S3 跨区域复制或同区域复制策略将数据复制到同一区域或其他区域。
AWS Storage Gateway 服务可将磁带网关与 S3 Glacier Deep Archive 存储类集成,这样您就可以将虚拟磁带存储在成本最低的 Amazon S3 存储类中,从而将在云中存储长期数据的每月成本降低 75%。使用此功能,磁带网关支持将您的新虚拟磁带直接归档到 S3 Glacier Flexible Retrieval 和 S3 Glacier Deep Archive,从而帮助您满足备份、归档和恢复要求。磁带网关可帮助您将基于磁带的备份移动到 AWS,而无需对现有备份工作流程进行任何更改。磁带网关支持大多数领先的备份应用程序,例如 Veritas、Veeam、Commvault、Dell EMC NetWorker、IBM Spectrum Protect(在 Windows OS 上)和 Microsoft Data Protection Manager。
S3 on Outposts
问:什么是 Amazon S3 on Outposts?
Amazon S3 on Outposts 使用 S3 API 和您目前在 AWS 中使用的功能在您的本地环境中提供对象存储。AWS Outposts 是一项完全托管式服务,可将 AWS 基础设施、AWS 服务、API 和工具扩展到几乎任何数据中心、主机托管空间或本地设施。使用 S3 on Outposts,您可以在将数据移动到 AWS 区域之前安全地处理和存储在本地生成的客户数据,针对在本地运行的应用程序在本地访问数据,或者对于所处位置有数据驻留要求的公司或监管行业公司将数据存储在 Outpost 中。要了解有关 S3 on Outposts 的更多信息,请访问概览页面。
存储管理
S3 对象标签 | S3 清单 | S3 批量操作 | S3 CloudWatch 指标 | S3 生命周期管理
S3 对象标签
问:什么是 S3 对象标签?
S3 对象标签是应用于 S3 对象的键/值对,在该对象的生命周期内可以随时创建、更新或删除。借助这些标签,您将能够创建 Identity and Access Management (IAM) 策略,设置 S3 生命周期策略以及自定义存储指标。然后,可以使用这些对象级标签管理后台中存储类别与过期对象之间的转换。 上传新对象时,您可以向其添加标签,也可以向现有对象添加标签。每个 S3 对象最多可添加 10 个标签,您可以使用 AWS 管理控制台、REST API、AWS CLI 或 AWS SDK 添加对象标签。
如需了解更多信息,请访问 S3 对象标签用户指南。
问:为何应使用对象标签?
借助对象标签这一工具,您可以简化 S3 存储的管理。使用此工具能够在对象的生命周期内随时创建、更新和删除标签,从而使您的存储能够满足您业务的需求。借助这些标签,您可以控制对标记有特殊键值对的对象的访问,从而能够进一步保护机密数据,使之仅供选定组或用户访问。 对象标签也可用于标记属于特定项目或业务单元的对象,它可与 S3 生命周期策略结合使用来管理到其他存储类(S3 Standard-IA、S3 One Zone-IA、S3 Glacier Instant Retrieval、S3 Glacier Flexible Retrieval 和 S3 Glacier Deep Archive)的转移或与 S3 复制功能结合使用来选择性地复制 AWS 区域之间的数据。
问:如何更新对象上的对象标签?
在 S3 对象的生命周期内,您可以随时更改对象标签,您可以使用 AWS 管理控制台、REST API、AWS CLI 或 AWS 开发工具包更改对象标签。请注意,在 AWS 管理控制台之外进行的所有更改均是对整个标签集合进行的更改。如果某个特定对象关联了 5 个标签,您要为其添加第 6 个标签,那么您需要在该请求中包括最初的 5 个标签。
问:对象标签的费用是多少?
对象标签根据标签的数量和添加标签的请求费用定价。添加和更新对象标签的相关请求的价格与现有请求的价格相同。有关更多信息,请访问 Amazon S3 定价页面。
问:如何开始使用存储类分析?
您可以使用 AWS 管理控制台或 S3 PUT 存储桶分析 API 配置存储类分析策略,以识别不频繁访问的存储,这些存储可转换到 S3 Standard-IA 或 S3 One Zone-IA 存储类或归档到 S3 Glacier 存储类。您可以导航至 S3 控制台中的“管理”选项卡来管理存储类分析、S3 清单和 S3 CloudWatch 指标。
S3 清单
问:什么是 S3 清单?
S3 清单报告可为 Amazon S3 的同步列表 API 提供预定的替代方案。您可以通过配置 S3 清单,针对 S3 存储桶或前缀每日或每周提供一次您的对象及其对应元数据的 CSV、 ORC 或 Parquet 文件输出。您可以使用 S3 清单简化并加快业务工作流和大数据作业。您还可以使用 S3 清单验证对象的加密和复制状态是否符合业务、合规性和法规要求。 通过 Amazon S3 清单用户指南了解更多信息。
问:如何开始使用 S3 清单?
您可以使用 AWS 管理控制台或 PUT Bucket Inventory Configuration API,为您 S3 存储桶中的所有对象或某个共享前缀下的对象子集配置每日或每周清单报告。在配置过程中,您可以指定 S3 清单报告的目标 S3 存储桶、输出文件的格式(CSV、ORC 或 Parquet)以及您的业务应用程序所需的具体对象元数据,例如:对象名称、大小、上次修改日期、存储类、版本 ID、删除标记、非当前版本标记、分段上传标记、复制状态或加密状态。 您可以将 S3 清单用作应用程序工作流或大数据任务的直接输入。您还可以使用 Amazon Athena、Amazon Redshift Spectrum 及其他工具(例如,Presto、Hive 和 Spark)通过标准 SQL 语言查询 S3 清单。
通过 Amazon S3 清单用户指南了解更多信息。
问:使用 S3 清单时,如何收费?
请参阅 Amazon S3 定价页面,了解 S3 清单定价的信息。配置 SSE-KMS 加密后,将产生 KMS 加密费用,请参阅 KMS 定价页面了解详细信息。
S3 批量操作
问:什么是 S3 批量操作?
S3 批量操作是一种功能,您可以使用该功能跨多个对象自动执行单个操作(如复制对象或执行 AWS Lambda 函数)。使用 S3 批量操作,只需在 S3 控制台中单击几次或使用单个 API 请求,即可更改数十亿个对象,而不必为存储管理应用程序编写自定义应用程序代码或运行计算集群。S3 批量操作不仅跨许多对象管理存储操作,还管理重试、显示进度、提供通知、提供完成报告并将在您的目标对象上执行的所有操作的事件发送到 AWS CloudTrail。可从 S3 控制台或通过 AWS CLI 和开发工具包来使用 S3 批量操作。
问:如何开始使用 S3 批量操作?
您可以通过进入 Amazon S3 控制台或使用 AWS CLI 或开发工具包来开始使用 S3 批量操作创建第一个 S3 批量操作任务。S3 批量操作任务包括要处理的对象的列表和要执行的操作的类型(请参阅可用操作的完整列表)。首先选择 S3 清单报告或提供您自己的、S3 批量操作要处理的对象的自定义列表。S3 清单报告是列出了 S3 存储桶或前缀中存储的所有对象的文件。接下来,从 S3 批量操作支持的一组 S3 操作中进行选择,例如替换标签集、更改 ACL、将存储从一个存储桶复制到另一个存储桶或启动从 S3 Glacier Flexible Retrieval 到 S3 Standard 存储类的还原。然后,您可以使用特定参数自定义 S3 批量操作任务,例如标签值、ACL 被授权者和还原持续时间。为了进一步自定义存储操作,您可以编写自己的 Lambda 函数并用 S3 批量操作调用该代码。
创建 S3 批量操作作业后,它将处理对象列表,并在需要时将作业发送到“等待确认”状态。确认作业详细信息后,S3 批量操作将开始执行您指定的操作。您可以通过编程方式或通过 S3 控制台查看任务进度、接收完成通知并查看列出已对存储所做更改明细的完成报告。
问:哪些 AWS 电子存储服务已基于金融服务法规进行了评测?
对于金融服务行业中的客户,S3 对象锁定为必须以不可删除且不可重写的格式保留记录以满足 SEC Rule 17a-4(f)、FINRA Rule 4511 或 CFTC Regulation 1.31 的法规要求的证券经纪商提供了附加支持。您可以轻松地指定记录保留时间范围来以原始形式将法规存档保留所需的一段时间,还可以实施依法保留以无限期地保留数据,直到撤销保留。
问:哪些 AWS 文档支持有关通知监管机构的 SEC 17a-4(f)(2)(i) 和 CFTC 1.31(c) 要求?
在使用 Amazon S3 进行电子存储之前,向监管机构或所选的“指定审查机关 (DEA)”发送通知,同时提供一份 Cohasset 评估副本。针对这些要求,AWS 不可作为指定的第三方 (D3P)。请务必选择 D3P,并将此信息添加到发送给 DEA 的通知中。
S3 CloudWatch 指标
问:如何开始使用 S3 CloudWatch 指标?
使用 AWS 管理控制台,可在 1 分钟内为您的 S3 存储桶生成 CloudWatch 请求指标,或使用前缀或对象标签配置指标的筛选条件,或访问点。此外,还可以通过调用 S3 PUT Bucket Metrics API 来启用 S3 存储指标的发布并对其进行配置。 CloudWatch 请求指标在启用后的 15 分钟内即可在 CloudWatch 中使用。CloudWatch 存储指标默认情况下针对所有存储桶启用,且每天报告一次。了解有关 Amazon S3 的 Amazon CloudWatch 指标的更多信息。
问:我可以对我的存储指标设置哪些警报?
您可以使用 CloudWatch 对任何存储指标数量、计时器或等级设置阈值,当值达到此阈值时,就触发相应操作。例如,您对 4xx 错误响应的百分比设置一个阈值,当值超出此阈值至少 3 个数据点时,就触发 CloudWatch 警报以提醒 DevOps 工程师。
问:使用 S3 CloudWatch 指标时,如何收费?
CloudWatch 存储指标免费提供。CloudWatch 请求指标根据 Amazon CloudWatch 的自定义指标定价。请参阅 Amazon CloudWatch 定价页面,获取有关 S3 CloudWatch 指标定价的一般信息。
S3 生命周期管理
问:什么是 S3 生命周期管理?
S3 生命周期管理可以通过预定义的策略定义对象的生命周期,并降低您的存储成本。您可以设置生命周期转换策略,以根据数据的使用年限自动将存储在 S3 Standard 存储类中的对象迁移到 S3 Standard-IA、S3 One Zone-IA 和/或 S3 Glacier 存储类。基于对象的使用年限,您还可以设置生命周期过期策略,将对象自动移除。您可以设置分段上传过期策略,根据上传的存储时间,使未完成的分段上传过期。
如需了解更多信息,请访问 S3 生命周期用户指南。
问:如何制定 S3 生命周期管理策略?
您可以在 AWS 管理控制台、S3 REST API、AWS 开发工具包或 AWS 命令行界面 (CLI) 中设置和管理生命周期策略。您可以在前缀或存储桶级别指定策略。
问:如何利用 Amazon S3 生命周期管理来帮助降低 Amazon S3 存储成本?
利用 Amazon S3 生命周期策略,您可以将对象配置为从 S3 Standard 存储类迁移到 S3 Standard-IA 或 S3 One Zone-IA 并/或归档到 S3 Glacier Instant Retrieval、S3 Glacier Flexible Retrieval 或 S3 Glacier Deep Archive 存储类。
您还可以指定一个 S3 生命周期策略,在特定时间段后删除对象。您可以利用此策略驱动的自动化操作来快速而轻松地降低存储成本并节省时间。在每个规则中,您都可以指定前缀、时间段、转移到 S3 Standard-IA、S3 One Zone-IA、S3 Glacier Instant Retrieval、S3 Glacier Flexible Retrieval、S3 Glacier Deep Archive 和/或过期日期。例如,您可以创建一个规则,规定将带有常见前缀 “logs/” 且创建后已有 30 天的所有对象归档到 S3 Glacier Flexible Retrieval,并且这些对象将于创建之日起的 365 天后失效。
您还可以创建单独的规则,规定仅带有前缀 “backups/” 且已创建 90 天的所有对象将失效。S3 生命周期策略对现有的和新的 S3 对象都适用,可帮助您针对 S3 中存储的所有当前数据和任何新数据优化存储、最大限度地节省成本,而无需耗时的手动数据检查和迁移。
在生命周期规则内,前缀字段用于识别服从该规则的数据对象。要将规则应用于单个数据对象,请指定键名称。要将规则应用于一组数据对象,请指定它们的共同前缀(例如“logs/”)。您可以指定迁移操作和过期操作以存档或删除数据对象。关于时间期限,您可以指定一个创建日期(如 2015 年 1 月 31 日)或自创建之日算起的天数(如 30 天),以便在此日期或超过此天数后将数据对象存档或删除。您可为不同前缀创建多条规则。
问:使用 S3 生命周期管理如何收费?
生命周期策略的制定和应用无需额外费用。根据生命周期规则,当对象符合转移条件时,每个对象的转移请求都需付费。有关定价信息,请参阅 Amazon S3 定价页面。
问:为什么要使用 S3 生命周期策略让未完成的分段上传过期?
使用 S3 生命周期策略让未完成的分段上传过期,可通过限制未完成的分段上传的存储时间,帮助您节省成本。例如,如果您的应用程序上传了若干分段对象部分,但从未提交,那么您仍然需要为其存储付费。此策略可在预定义的天数后自动移除未完成的分段上传及其相关存储,从而降低您的 S3 存储费用。
问:是否可以设置 Amazon S3 事件通知,以便在 S3 生命周期转移对象或使对象过期时发送通知?
是,您可以设置 Amazon S3 事件通知,以便在 S3 生命周期转移对象或使对象过期时通知您。例如,您可以在 S3 生命周期移动对象到不同 S3 存储类或使对象过期时发送 S3 事件通知到 Amazon SNS 主题、Amazon SQS 队列或 AWS Lambda 函数。
存储分析和见解
问:哪些功能可用于分析我的 Amazon S3 存储使用情况?
S3 Storage Lens 提供了对对象存储使用情况和活动趋势的组织范围可见性,并提出了可行的建议,以优化成本并应用数据保护最佳实践。S3 存储类分析使您可以跨对象监控访问模式,以帮助您决定何时将数据转换为正确的存储类,从而优化成本。然后,您可以使用此信息来配置进行数据传输的 S3 生命周期策略。Amazon S3 清单针对 S3 存储桶或前缀每日或每周提供一次对象及其对应元数据的报告。该报告通过验证对象的加密和复制状态,来帮助满足业务、合规和监管需求。
问:什么是 Amazon S3 Storage Lens?
Amazon S3 Storage Lens 提供了对对象存储使用量和活动趋势的组织范围可见性,以及可行的建议,以优化成本并应用数据保护的最佳实践。Storage Lens 提供了一个交互式控制面板,其中包含组织中数十或数百个账户的对象存储使用情况和活动的单一视图,并可以通过向下钻取在多个聚合级别生成见解。这包含字节、对象计数、请求等指标,以及详细描述 S3 功能使用率的指标,例如加密对象计数和 S3 生命周期规则计数。S3 Storage Lens 还提供符合实际情况的建议,以找到降低存储成本的方法,并在数十个或数百个账户和存储桶之间应用数据保护方面的最佳实践。S3 Storage Lens 免费指标默认为所有 Amazon S3 用户启用。如果您想充分利用 S3 Storage Lens,则可以激活高级指标和建议。如需了解更多信息,请访问 S3 Storage Lens 用户指南。
问:S3 Storage Lens 如何运作?
S3 Storage Lens 每日汇总您的存储使用情况和活动指标,在 S3 Storage Lens 交互式控制面板上可视化显示,或以 CSV 或 Parquet 文件格式导出指标。在账户级别自动为您创建一个默认控制面板,您可以选择创建其他自定义控制面板。S3 Storage Lens 存储统计管理工具控制面板的范围可以限定为您的 AWS 组织或特定账户、区域、存储桶,甚至前缀级别(适用于 S3 Storage Lens 高级指标)。您还可以使用 S3 Storage Lens 存储统计管理工具组,通过基于对象标签、大小和年龄等对象元数据的自定义筛选器来聚合指标。配置控制面板时,您可以使用默认指标选择,或升级以接收 35 个额外指标和前缀级聚合(需额外付费)。此外,S3 Storage Lens 存储统计管理工具还会根据控制面板中的存储指标情况提供建议,以便您可以采取行动以根据指标优化存储。
问:使用 S3 Storage Lens 指标可以回答哪些关键问题?
S3 Storage Lens 控制面板围绕四种主要类型的问题进行组织,这些问题可以回答有关您的存储的问题。使用“摘要”筛选器,可以探索与总体存储使用情况和活动趋势相关的最高级别问题。例如,“我的总体字节计数和请求计数是如何随时间快速增长的?” 通过“成本优化”筛选器,您可以探索与降低存储成本相关的问题,例如,“我是否可以通过保留较少的非当前版本来节省资金?” 通过“数据保护”和“访问管理”筛选器,您可以回答有关保护数据的问题,例如,“我的存储是否受到保护,不会被意外或故意删除?” 最后,通过“性能”和“事件”筛选器,您可以探索提高工作流性能的方法。这些问题中的每一个都代表可能导致向下钻取分析的第一层查询。
问:S3 Storage Lens 提供了哪些指标?
S3 Storage Lens 包含 60 多个指标,分为免费指标和高级指标(需额外付费)。在免费指标中,您会收到用于分析使用情况的指标(基于对象的每日快照),这些指标分为成本优化、数据保护、访问管理、性能和事件类别。在高级指标中,您会收到与活动相关的指标(例如请求计数)、更深入的成本优化(例如 S3 生命周期规则计数)、额外的数据保护(例如 S3 复制规则计数)和详细的状态代码(例如 403 授权错误)。此外,还可以通过组合任何基本指标来提供派生指标。例如,“取回率”是通过将“下载字节数”除以“总存储量”计算得出的指标。 若要查看指标的完整列表,请访问 S3 Storage Lens 文档。
问:我的控制面板配置选项是什么?
为您的整个账户提供自动配置的默认控制面板,您可以选择创建其他自定义控制面板,限于您的 AWS 组织、特定区域或账户中的存储桶。您可以设置多个自定义控制面板,如果您需要在存储分析中进行一些逻辑分离,例如对存储桶进行分段以代表各种内部团队,这将非常有用。默认情况下,您的控制面板会接收 S3 Storage Lens 存储统计管理工具免费指标,但您可以选择升级接收 S3 Storage Lens 高级指标和建议(需额外付费)。S3 Storage Lens 存储统计管理工具高级指标有 7 个不同的选项:活动指标、高级成本优化指标、高级数据保护指标、详细状态代码指标、前缀聚合、CloudWatch 发布和 Storage Lens 存储统计管理工具组聚合。此外,您可以为每个控制面板启用指标导出,还可以选择指定目标存储桶和加密类型。
问:S3 Storage Lens 中有多少历史数据可用?
对于交互式控制面板中显示的指标,Storage Lens 免费指标保留 14 天的历史数据,Storage Lens 高级指标(额外收费)则保留 15 个月的历史数据。对于可选的指标导出,您可以配置您想要的任何保留期,并且将按标准 S3 存储收费。
问:S3 Storage Lens 如何收费?
S3 Storage Lens 在两个指标套餐中可用。免费指标默认启用,所有 S3 客户均可免费使用。S3 Storage Lens 高级指标和建议定价详细信息可参考 S3 定价页面。使用 S3 Storage Lens 存储统计管理工具免费指标,您会收到 28 个存储桶级别的指标,并且可以在控制面板中访问 14 天的历史数据。借助 S3 Storage Lens 存储统计管理工具高级指标和建议,您会收到 35 个额外的指标、前缀级聚合、CloudWatch 指标支持、使用 S3 Storage Lens 存储统计管理工具组筛选的自定义对象元数据,并且可以在控制面板中访问 15 个月的历史数据。
问:S3 Storage Lens 存储统计管理工具与 S3 清单有什么区别?
S3 清单针对 S3 存储桶或共享前缀提供对象及其相应元数据的列表,可用于执行存储的对象级分析。S3 Storage Lens 存储统计管理工具提供可按组织、账户、区域、存储类、存储桶、前缀和 S3 Storage Lens 存储统计管理工具组级别聚合的指标,可以使组织范围内的存储可见性得到改善。
问:S3 Storage Lens 存储统计管理工具和 S3 存储类分析(SCA)之间的区别是什么?
根据前 30-90 天内的单个存储桶/前缀/标签范围内的对象级访问模式,S3 存储类分析通过创建对象年龄组提供最佳存储类的建议。S3 Storage Lens 存储统计管理工具提供有关提高成本效率和应用数据保护最佳实践的方法的日常组织级建议,以及按账户、区域、存储类、存储桶、S3 Storage Lens 存储统计管理工具组或前缀(可用于 S3 Storage Lens 存储统计管理工具高级指标)的额外细化建议。您还可以将自定义筛选器与 S3 Storage Lens 存储统计管理工具组结合使用,根据对象年龄可视化您的存储并告知您的存储归档策略。
存储类分析
问:什么是存储类分析?
使用存储类分析,您可以分析存储访问模式,以确定适合您的存储的最佳存储类。这一 S3 功能可自动识别不频繁访问模式,从而帮助您将存储转换为 S3 Standard-IA。您可以配置存储类分析策略来监视整个存储桶、前缀或对象标签。在观察到不频繁访问模式后,您可以根据结果轻松地创建新的 S3 生命周期策略。存储类分析还以可视化方式在 AWS 管理控制台上提供您每天的存储使用情况,您还可以将报告导出至 S3 存储桶,以便使用所选的 Amazon QuickSight 等商业智能工具进行分析。
要想了解更多信息并开始使用,请访问 S3 存储类分析用户指南。
问:存储类分析多久更新一次?
存储类分析在 S3 管理控制台中每天更新,但对存储类转换的最初建议在 30 天后提供。
随时查询
问:什么是“随时查询”功能?
Amazon S3 允许客户对存储数据运行复杂的查询,无需将数据移动到独立的分析平台。随时查询 Amazon S3 数据的功能可以大大提升性能,降低利用 S3 作为数据湖的分析解决方案的成本。S3 提供多种随时查询选项,包括 Amazon Athena 和 Amazon Redshift Spectrum,使您能够从中选择最适合您的使用案例的选项。
问:如何在 Amazon S3 中查询我的数据?
有多种方法可以在 S3 中查询数据,您可以根据具体使用案例进行选择。使用客户端筛选将 Amazon S3 对象下载到您的 AWS 计算,然后使用客户端应用程序上的数据分析库来筛选内容。例如,在查询 Amazon S3 中的 Parquet 对象的 Python 应用程序中,您可以使用 Amazon S3 GET API 下载对象并使用“Pandas”库筛选内容。使用 Amazon Athena 在单个查询中处理多个 S3 对象,甚至使用联接操作和窗口函数来查询您的 S3 对象。使用 S3 Object Lambda,将您自己的代码添加到 S3 GET 请求中,以在数据返回给应用程序时对其进行筛选。如果您想在筛选数据时添加转换,则应该使用 S3 Object Lambda。
阅读 博客文章,详细了解在 Amazon S3 中查询数据的方法。
问:什么是 Amazon Athena?
Amazon Athena 是一项交互式查询服务,让您能够轻松使用标准 SQL 查询分析 Amazon S3 中的数据。Athena 是无服务器式服务,因此您无需设置或管理基础设施即可马上开始分析数据。您甚至无需将数据加载到 Athena 中,因为它可以直接处理所有 S3 存储类中存储的数据。要开始使用,您只需登录到 Athena 管理控制台,定义架构,然后开始查询即可。Amazon Athena 使用 Presto 并为标准 SQL 提供了完整的支持,可处理 CSV、JSON、ORC、Apache Parquet 和 Avro 等各种标准数据格式。Athena 不仅是快速、临时查询的理想选择,可与 Amazon QuickSight 集成轻松实现可视化,而且还能处理复杂的分析,包括大型联接、窗口函数和数组。
问:什么是 Amazon Redshift Spectrum?
Amazon Redshift Spectrum 是 Amazon Redshift 的一项功能,借助这项功能,您可以对 Amazon S3 中的 EB 级非结构化数据运行查询,而无需执行加载或 ETL 操作。当您发布查询时,查询会进入 Amazon Redshift SQL 终端节点,该终端节点会生成查询方案并对其进行优化。Amazon Redshift 会确定哪些数据存储在本地以及哪些数据存储在 Amazon S3 中,然后生成一种方案来尽可能减少需要读取的 Amazon S3 数据量,从共享资源池中请求 Redshift Spectrum 工作线程来读取和处理 Amazon S3 中的数据。
Redshift Spectrum 可根据需要扩展到数千个实例,因此,无论数据大小如何,查询都会快速运行。而且,您可以像现在针对 Amazon Redshift 查询所做的一样,针对 Amazon S3 数据使用完全相同的 SQL,并可使用相同的商业智能工具连接到同一 Amazon Redshift 终端节点。Redshift Spectrum 可以实现单独的存储和计算,从而让您能够逐一单独扩展。您可以根据需要设置多个 Amazon Redshift 群集来查询 Amazon S3 数据湖,从而提供高可用性和无限制的并发度。借助 Redshift Spectrum,您可以灵活地将数据以您想要的格式存储在您想要的位置,并在需要时即时用于处理。
复制
问:什么是 Amazon S3 复制?
Amazon S3 复制支持跨 Amazon S3 存储桶自动以异步方式复制对象。配置为用于对象复制的存储桶可以由相同的 AWS 账户拥有,也可以由不同的 AWS 账户拥有。您可以将写入存储桶的新对象复制到不同 AWS 区域之间(S3 跨区域复制)或同一 AWS 区域内(S3 同区域复制)的一个或多个目标存储桶。您还可以复制现有存储桶内容(S3 批量复制),包括现有对象、之前复制失败的对象以及从其他源复制的对象。要了解更多信息,请访问 S3 复制用户指南。
问:什么是 Amazon S3 跨区域复制 (CRR)?
CRR 是 Amazon S3 的一项功能,可在不同 AWS 区域的存储桶之间自动复制数据。利用 CRR,您可以使用 S3 对象标签设置存储桶级别、共享前缀级别或对象级别的复制。您可以使用 CRR 在不同的地理区域中提供低延迟的数据访问。如果您需要遵循将数据副本存储在相距数百公里的不同地点的合规性要求,CRR 还可以帮助您达成这一目标。您可以使用 CRR 更改复制对象的账户所有权,以防数据意外删除。 要了解更多信息,请访问 S3 CRR 用户指南。
问:什么是 Amazon S3 同区域复制(SRR)?
SRR 是 Amazon S3 的一项功能,可在同一 AWS 区域内的存储桶之间自动复制数据。利用 SRR,您可以使用 S3 对象标签设置存储桶级别、共享前缀级别或对象级别的复制。您可以使用 SRR 在相同 AWS 区域内创建数据的一个或多个副本。SRR 可在原始数据所在的区域内将数据副本保存在单独的 AWS 账户中,从而帮助您获得数据主权并满足合规性要求。您可以使用 SRR 更改复制对象的账户所有权,以防数据意外删除。您也可以使用 SRR 轻松汇总来自不同 S3 存储桶的日志以进行区域内处理,或配置测试环境与开发环境之间的实时复制。要了解更多信息,请访问 S3 SRR 用户指南。
问:什么是 Amazon S3 批量复制?
Amazon S3 批量复制可在存储桶之间复制现有数据。您可以利用 S3 批量复制来回填新创建的存储桶,重试原先无法复制的对象,在账户之间迁移数据,或者向数据湖添加新的存储桶。只需在 S3 控制台上进行数次单击,或者通过单个 API 请求,即可开始使用 S3 批量复制。要了解更多信息,请访问 S3 批量复制用户指南。
问:如何启用 Amazon S3 复制(跨区域复制和同区域复制)功能?
您可以使用 S3 对象标签在 S3 存储桶级别、共享前缀级别或对象级别配置 Amazon S3 复制(CRR 和 SRR)功能。在同一或不同 AWS 区域中指定目标存储桶用于复制,这样就可以在源存储桶上添加复制配置。
您可以使用 S3 控制台、API、AWS CLI、AWS SDK 或 AWS CloudFormation 来启用复制。要启用复制功能,必须对源存储桶和目标存储桶都启用版本控制功能。要了解更多信息,请访问 Amazon S3 文档中的S3 复制功能设置概览。
问:如何使用 S3 批量复制?
您首先需要在存储桶级别启用 S3 复制。请参考上一个问题以了解如何执行此操作。然后,您可以在创建新的复制配置、从复制配置页面或从 S3 Batch Operations Create Job(S3 批量操作创建作业)页面更改复制规则中的复制目标后,在 S3 控制台中启动 S3 批量复制作业。或者,您可以通过 AWS CLI 或 SDK 启动 S3 批量复制作业。要了解更多信息,请访问 Amazon S3 文档中的 S3 复制。
问:我可以对 S3 生命周期规则使用 S3 复制功能吗?
借助 S3 复制功能,您可以制定复制规则,将对象复制到同一区域或其他区域中的另一个存储类中。您无法复制生命周期操作,如果您希望对源存储桶和目标存储桶应用相同的生命周期配置,那么请在两个存储桶上启用相同的生命周期配置。
例如,您可以配置生命周期规则,将数据从 S3 Standard 存储类迁移到 S3 Standard-IA 或 S3 One Zone-IA 存储类,或将数据归档到目标存储桶上的 S3 Glacier 存储类。
如果您为目标存储桶配置了 S3 生命周期,我们建议在批量复制作业处于活跃状态时禁用生命周期规则,以保持源存储桶和目标存储桶中对象的非当前版本和当前版本之间的奇偶校验。
有关生命周期配置的更多信息,请参阅 S3 复制文档。
问:我是否可以使用 S3 复制将内容复制到一个以上的目标存储桶?
可以。S3 复制可让客户在相同或不同 AWS 区域中将数据复制到多个目标存储桶。设置时,您只需在现有复制配置中指定新目标存储桶即可,或用多个目标存储桶创建新的复制配置。对于指定的每个新目标,您可以灵活选择目标存储桶的存储级、加密类型、复制指标和通知、复制时间控制 (RTC) 和其他属性。
问:我可以使用 S3 复制在 S3 存储桶之间设置双向复制吗?
是。要设置双向复制,您可以创建从存储桶 A 到存储桶 B 的复制规则,并设置从存储桶 B 到存储桶 A 的另一个复制规则。确保在存储桶 A 和 B 上启用了副本修改同步,以复制副本元数据变更,如对象权限访问控制列表 (ACL)、对象标签或复制对象上的对象锁定。
问:我可以跨 AWS 账户使用复制功能来防止恶意或意外删除吗?
是的,对于 CRR 和 SRR,您可以跨 AWS 账户设置复制功能,将复制的数据存储在目标区域的不同账户中。您可以在复制配置中使用所有权覆盖来维护源和目标之间的不同所有权堆栈,并将目标账户所有权授予复制的存储。
问:如果使用跨区域复制,对象标签也会复制吗?
使用跨区域复制可以跨 AWS 区域复制对象标签。已启用跨区域复制的用户需要具有新的权限才能复制标签。有关设置跨区域复制的更多信息,请访问 Amazon S3 文档中的如何设置跨区域复制。
问:是否可以将删除标记从一个存储桶复制到另一个存储桶?
可以,如果在复制配置中启用了删除标记复制,则可以将删除标记从源位置复制到目标位置。复制删除标记时,Amazon S3 将表现为在两个存储桶中都删除了对象。您可以为新的或现有的复制规则启用删除标记复制。您可以使用基于前缀的复制规则将删除标记复制应用于整个存储桶或具有特定前缀的 Amazon S3 对象。Amazon S3 复制不支持基于对象标签的复制规则的删除标记复制。要了解有关启用删除标记复制的更多信息,请参阅将删除标记从一个存储桶复制到另一个存储桶。
问:我可以将数据从其他 AWS 区域复制到中国区域吗? 客户可以将数据从一个中国区域存储桶复制到中国之外的区域吗?
不能,目前不支持在 AWS 中国区域和中国之外的 AWS 区域使用 Amazon S3 复制。您只能在中国区域内复制。
问:我可以复制现有对象吗?
可以。您可以使用 S3 复制,以在存储桶之间复制现有数据。要了解详情,请访问 S3 用户指南。
问:如果对象最初无法复制,我可以重新尝试复制吗?
可以。您可以使用 S3 批量复制来重新复制最初无法复制的对象。要了解详情,请访问 S3 用户指南。
问:S3 复制支持的加密类型有哪些?
S3 复制支持 S3 提供的所有加密类型。S3 提供服务器端加密和客户端加密 — 前者要求 S3 为您加密对象,后者时用于在数据上传到 S3 之前在客户端对数据进行加密。对于服务器端加密,S3 提供了三种加密方式:使用 Amazon S3 托管密钥的服务器端加密(SSE-S3),使用存储在 AWS 密钥管理服务的 KMS 密钥的服务器端加密(SSE-KMS),以及使用客户提供的密钥的服务器端加密(SSE-C)。关于这些加密类型及其工作原理的详细信息,请访问详细说明加密使用的 S3 文档。
问:跨账户数据复制如何定价?
借助 S3 复制,您可以配置源存储桶和目标存储桶归不同 AWS 账户所有的跨账户复制。不包括 S3 存储和适用的取回费用,在使用 S3 复制时,客户需要支付复制 PUT 请求和从 S3 到目标区域的区域间数据传出费用。如果您在复制规则上启用了 S3 复制时间控制 (S3 RTC),您将看到与 S3 RTC 特定相关的不同数据传出和复制 PUT 请求费用。对于跨账户复制,源账户支付所有数据传输(S3 RTC 和 S3 CRR)的费用,目标账户支付复制 PUT 请求的费用。数据传输费仅适用于 S3 跨区域复制(S3 CRR)和 S3 复制时间控制(S3 RTC),S3 同区域复制(S3 SRR)不产生数据传输费。
如果您使用 S3 批量复制跨账户复制对象,除了复制 PUT 请求和数据传输 OUT 费用外,您还将产生 S3 分批操作费用(请注意,S3 RTC 不适用于批量复制)。分批操作费用包括作业和对象费用,分别基于作业数量和处理的对象数量。此外,如果您选择使用 Amazon S3 生成的清单,您将根据源存储桶中的对象数量产生清单费用。
访问 Amazon S3 定价页面了解关于 S3 复制定价的更多详细信息。
S3 复制时间控制
问:什么是 Amazon S3 复制时间控制?
Amazon S3 复制时间控制提供可预测的复制性能,并帮助您满足合规或业务需求。S3 复制时间控制旨在实现数秒内复制大多数对象,15 分钟内复制 99.99% 的对象。S3 复制时间控制由服务等级协议(SLA)承诺提供支持,在任何计费月份中,对于每个复制区域,99.9% 的对象将在 15 分钟内复制。复制时间适用于所有 S3 复制功能。要了解更多信息,请访问复制文档。
问:如何启用 Amazon S3 复制时间控制?
Amazon S3 复制时间控制作为每个复制规则的一个选项启用。您可以使用 S3 复制时间控制创建新的 S3 复制策略,或者在现有策略上启用该功能。您可以使用 S3 控制台、API、AWS CLI、AWS SDK 或 AWS CloudFormation 来配置复制。要了解更多信息,请访问《Amazon S3 开发人员指南》中的设置复制功能概述。
问:我可以使用 S3 复制时间控制在中国区域内部和区域之间进行数据复制吗?
是的,您可以启用 Amazon S3 复制时间控制,在 AWS 中国(宁夏)和中国(北京)区域内部和其之间进行数据复制。
问:什么是 Amazon S3 复制指标和事件?
Amazon S3 复制在 Amazon S3 控制台和 Amazon CloudWatch 中提供了四个详细指标:待处理操作、待处理字节、复制延迟和操作复制失败。您可以使用这些指标监控待复制操作总数和待复制对象的大小、源存储段和目标存储段之间的复制延迟以及每条复制规则中未成功复制的操作数。此外,您可以设置 s3:Replication 类型的 Amazon S3 事件通知,以获取有关复制失败的对象和失败原因的更多信息。我们建议使用 Amazon S3 复制失败原因快速诊断错误并进行修复,然后使用 S3 批量复制重新复制失败的对象。最后,如果您启用了 S3 Replication Time Control (S3 RTC),您将在复制一个对象的时间超过 15 分钟时收到 S3 事件通知,并在该对象成功复制到其目的地时收到另一条通知。
问:如何启用 Amazon S3 复制指标和事件?
可以为每个新的复制规则或现有复制规则启用 Amazon S3 复制指标和事件,默认情况下,已为 S3 复制时间控制启用的规则启用它们。您可以通过 Amazon S3 控制台和 Amazon CloudWatch 访问 S3 复制指标。与其他 Amazon S3 事件一样,S3 复制事件可以通过 Amazon Simple Queue Service (Amazon SQS)、Amazon Simple Notification Service (Amazon SNS) 或 AWS Lambda 获得。要了解更多信息,请访问《Amazon S3 开发人员指南》中的使用复制指标监控进度和 Amazon S3 事件通知。
问:失败操作复制指标显示了哪些信息?
失败操作复制指标将显示特定复制规则每分钟复制失败的操作总数。该指标将每分钟刷新一次,对每个失败的操作发出 +1,对成功的操作发出 0,如果在该分钟内没有执行任何复制操作,则不发出任何指标。每当操作未能成功复制时,都会发出此指标。
问:我能否使用 Amazon S3 复制指标和事件来跟踪 S3 批量复制?
您无法使用待处理字节、待处理操作和复制延迟等指标来跟踪 S3 批量复制进度。但是,您可以使用失败操作复制指标来监控无法通过 S3 批量复制成功复制的现有对象。此外,您还可以使用 S3 批量操作完成报告来跟踪通过 S3 批量复制的对象。
问:Amazon S3 复制指标在哪里发布?
待处理字节、待处理操作和复制延迟指标在源 AWS 账户和目标 AWS 区域中发布。但是,失败操作复制指标在源 AWS 账户和源 AWS 区域,而不是目标 AWS 区域发布。造成这种情况的主要原因有两个。首先,如果在目标区域发布失败操作复制指标,则在目标存储桶配置错误时,客户将看不到该指标。例如,如果客户在复制配置中错误地键入了目标存储桶名称,并且由于未找到目标存储桶而复制失败,则客户将无法看到此指标的任何值,因为找不到目标存储桶时,目标区域将是未知的。其次,如果客户要复制到可选择加入的目标区域,例如香港或巴林,则在复制失败的情况下,如果源账户未选择加入目标区域,则客户将看不到任何指标。
问:什么是 Amazon S3 复制时间控制服务等级协议 (SLA)?
Amazon S3 复制时间控制旨在实现 15 分钟内复制 99.99% 的对象,由服务等级协议提供支持。如果在每月计费周期中,每个复制区域对 15 分钟内复制的对象少于 99.9%,那么 S3 RTC SLA 将针对任何复制时间超过 15 分钟的对象提供服务积分。服务积分包括与不符合 SLA 的对象相关的所有相关复制费用百分比,包括 RTC 费用、复制带宽和请求费用,以及在受影响的每月计费周期中与将副本存储在目标区域相关的成本。要了解详情,请阅读 S3 复制时间控制 SLA。
问:S3 复制和 S3 复制时间控制的定价是多少?
对于 S3 复制(跨区域复制和同区域复制),您需要为所选目标 S3 存储类中的存储支付 S3 费用,还要支付主副本、复制 PUT 请求的存储费用以及适用的不频繁访问存储取回费用。对于 CRR,您还需要支付从 S3 到目标区域的区域间数据传出费用。 S3 复制指标的费率与 Amazon CloudWatch 自定义指标费率相同。此外,当您使用 S3 复制时间控制时,您还需要支付复制时间控制数据传输费。有关更多信息,请访问 Amazon S3 定价页面。
如果源对象是通过分段上传功能上传的,则使用相同数量的段和段大小进行复制。例如,通过分段上传功能上传的 100GB 对象(800 个段,每段 128MB)在复制时会产生与 802 个请求(800 个上传段请求 + 1 个初始分段上传请求 + 1 个完成分段上传请求)关联的请求成本。您会产生 0.00401 USD(802 个请求 x 0.005 USD/1000 个请求)的请求费用和(如果在不同的 AWS 区域之间进行复制)2.00 USD(0.020 USD/GB 传输 x 100GB)的区域间数据传输费用。复制后,该 100GB 数据会产生基于目标区域的存储费用。
问:如何为 Amazon CloudWatch 上的 S3 复制指标收费?
所有 S3 复制指标,包括待处理字节、待处理操作、复制延迟和复制失败操作,均按与 Amazon CloudWatch 自定义指标相同的费率计费:前 1 万个指标每个指标每月 0.30 美元,接下来 24 万个指标每个指标每月 0.10 美元,再接下来 75 万个指标每个指标每月 0.05 美元,超过 100 万个指标每个指标每月 0.02 美元。
例如,如果您的 S3 存储桶有 100 个复制规则,并且为每个规则启用了复制指标,则您将看到 Amazon CloudWatch 按月收取 400 个复制指标(100 个复制规则 x 每个复制规则 4 个指标)的费用。这 400 个指标每月按比例收取的费用为 120 美元(400 个复制指标 x 每个指标 0.30 美元(对于前 1 万个指标))。有关 Amazon CloudWatch 账单的信息,请参阅 Amazon CloudWatch 定价页面。
S3 多区域访问点
问:什么是 S3 多区域访问点?
在访问跨多个 AWS 区域复制的数据集时,Amazon S3 多区域访问点可将性能提高多达 60%。基于 AWS Global Accelerator,S3 多区域接入点会考虑网络拥塞和请求应用程序的位置等因素,通过 AWS 网络将您的请求动态路由到数据的最低延迟副本。这种自动路由允许您利用 AWS 的全球基础设施,同时保持简单的应用程序架构。
问:为什么应该使用 S3 多区域访问点?
S3 多区域访问点可加速并简化多区域应用程序的存储。通过将 S3 请求动态路由到复制数据集,S3 多区域访问点减少了请求延迟,使应用程序运行速度提高 60%。S3 多区域访问点还可以帮助您构建弹性多区域和多账户应用程序,这些应用程序可以更好地防范意外或未经授权的数据删除。借助 S3 多区域访问点,您还可利用 AWS 的全球基础设施,同时为应用程序保持与区域无关的简单架构。
问:S3 多区域访问点的工作原理是什么?
多区域接入点将客户端请求动态路由到一个或多个底层 S3 存储桶。您可以将多区域接入点配置为每个 AWS 区域(最多 17 个 AWS 区域)跨一个存储桶进行路由。创建多区域接入点时,S3 会自动生成与 DNS 兼容的名称。此名称将用作客户端可以使用的全局端点。当客户端向该端点发出请求时,S3 会将这些请求动态路由到多区域访问点配置中指定的一个底层存储桶。 基于互联网的请求被载入 AWS 全球网络,以避免互联网上的网段拥塞,从而减少网络延迟和抖动,同时提高性能。基于 AWS Global Accelerator,通过互联网访问 S3 的应用程序可以通过 S3 多区域访问点将性能进一步提高多达 60%。
要直接控制此路由,您可以在主动-主动或主动-被动配置中运行 S3 多区域访问点。在主动-被动配置中,您可以使用 S3 多区域访问点失效转移控制来启动失效转移,以在几分钟内将 S3 数据访问请求流量转移到所选的备用 AWS 区域和账户。
在主动-主动配置中,S3 多区域访问点会考虑网络拥塞和请求应用程序的位置等因素,通过 AWS 网络将您的请求动态路由到最近的数据副本。S3 多区域访问点会将您的请求路由到离您的客户端最近的 AWS 位置,然后通过全球私有 AWS 网络路由到 S3。
在任何一种配置中,S3 多区域访问点都允许您利用 AWS 的全球基础设施,同时保持简单的应用程序架构。
问:S3 多区域访问点失效转移控制的工作原理是什么?
默认情况下,S3 多区域访问点根据主动-主动配置中的网络延迟将请求路由到离客户端最近的底层存储桶。例如,您可以在美国东部(弗吉尼亚州北部)和亚太地区(孟买)配置一个具有底层存储桶的多区域访问点。通过此配置,您在北美的客户端将路由到美国东部(弗吉尼亚州北部),而您在亚洲的客户将路由到亚太地区(孟买)。这降低了对 S3 请求的延迟,提高了应用程序的性能。如果您更喜欢主动-被动配置,则所有 S3 数据请求流量都可以通过 S3 多区域访问点路由到作为活动区域的美国东部(弗吉尼亚州北部),并且不会将任何流量路由到亚太地区(孟买)。如果需要按计划或在计划外将所有 S3 数据请求流量失效转移到亚太地区(孟买),您可以启动失效转移,在几分钟内即可切换到亚太地区(孟买)并将其作为新的活动区域。美国东部(弗吉尼亚州北部)正在进行的任何现有上传或下载都将继续完成,并且通过 S3 多区域访问点的所有新 S3 数据请求流量将路由到亚太地区(孟买)。
问:S3 多区域访问点能否与不同 AWS 账户拥有的存储桶一起使用?
可以,您可以通过输入创建时拥有多个 AWS 账户的账户 ID,将多个 AWS 账户中的存储桶添加到新的 S3 多区域访问点。如果存储桶尚未配置为跨账户复制,则可以配置 S3 跨区域复制规则,以在 AWS 账户和区域之间同步存储桶的内容。然后,您的应用程序将能够通过 AWS 账户和区域的多区域访问点全球端点请求或写入数据。
问:屏蔽公共访问设置如何适用于跨越多个 AWS 账户的多区域访问点?
每个 S3 多区域访问点的 Amazon S3 屏蔽公共访问权限设置各不相同。这些设置与构成多区域访问点底层存储桶的屏蔽公共访问权限设置、拥有多区域访问点的 AWS 账户的屏蔽公共访问权限设置以及拥有底层存储桶的 AWS 账户的屏蔽公共访问权限设置结合使用。
当 Amazon S3 授权请求时,它会应用这些设置中最严格的组合。如果其中任何资源(多区域访问点、底层存储桶、多区域访问点所有者账户或存储桶所有者账户)的屏蔽公共访问权限设置禁止访问所请求的操作或资源,则 Amazon S3 会拒绝该请求。
此行为与跨账户 S3 访问点一致。在处理跨账户 S3 访问点和跨账户 S3 多区域点的请求时,应用相同的授权逻辑。
问:S3 cross-region replication (S3 CRR) 和 S3 多区域访问点之间有何区别?
S3 CRR 和 S3 多区域访问点的功能互补,协同工作,可以跨 AWS 区域复制数据,然后以最低的延迟自动将请求路由到复制副本。S3 多区域访问点可帮助您管理跨 AWS 区域的请求,而 CRR 允许您跨 AWS 区域移动数据以创建独立的副本。您可以将 S3 多区域访问点和 CRR 结合使用,以创建可由单个全球端点寻址的复制多区域数据集。
问:S3 多区域访问点的成本是多少?
使用 S3 多区域访问点在 AWS 内路由请求时,每处理 1GB 将支付少量的每 GB 数据路由费用,以及 S3 请求、存储、数据传输和复制的标准费用。如果应用程序在 AWS 之外运行,并通过互联网访问 S3,S3 多区域访问点会根据访问延迟,通过 AWS 边缘站点,通过全球私有 AWS 网络,将请求自动路由到最近的数据副本,从而提高性能。要加快通过互联网发出的请求时,需要支付数据路由费和互联网加速费。S3 多区域访问点互联网加速定价根据源客户端与目标 AWS 区域位于同一位置还是位于不同位置而有所不同,也是标准 S3 数据传输定价之外的费用。 要使用 S3 多区域访问点失效转移控制,您只需支付标准 S3 API 费用即可查看每个区域的当前路由控制状态,并提交任何路由控制更改以启动失效转移。有关更多定价信息,请参阅 Amazon S3 定价页面和数据传输选项卡。
问:我能否将 Requester Pays 与 S3 多区域访问点一起使用?
是的,您可以将 S3 多区域访问点的底层存储桶配置为 Requester Pays 存储桶。使用 Requester Pays,请求者支付与端点使用相关的所有费用,包括请求费用以及与存储桶和多区域访问点相关的数据传输成本。通常,如果您希望共享数据,但不产生与其他人访问数据相关的费用,则需要将您的存储桶配置为 Requester Pays 存储桶。 通常,存储桶所有者为与其存储桶关联的所有 Amazon S3 存储空间付费。要了解更多信息,请访问 S3 Requester Pays。
问:S3 传输加速与 S3 多区域访问点有何不同?
S3 多区域访问点和 S3 传输加速提供类似的性能优势。 您可以使用 S3 Transfer Acceleration 来加速使用 AWS 全球网络与 Amazon S3 之间的内容传输。S3 Transfer Accelerator 可以帮助加速较大对象与单个 Amazon S3 存储桶之间的远距离传输。借助 S3 多区域访问点,您可以使用 AWS 全球网络执行类似的加速传输,但跨多个 AWS 区域中的许多 S3 存储桶,以处理进出 S3 的基于互联网、基于 VPC 和本地的请求。 当您将 S3 多区域访问点与 S3 Cross Replication 结合使用时,您将为 S3 多区域访问点提供将您的请求动态路由到来自多个位置的客户端的应用程序的最低延迟数据副本的功能。
问:如何开始使用 S3 多区域访问点和失效转移控制?
S3 控制台提供了一个简单的引导式工作流程,只需三个简单的步骤即可快速设置在 S3 上运行多区域存储所需的一切。首先,创建一个 Amazon S3 多区域访问点端点并指定您要在其间进行复制和失效转移的 AWS 区域。通过输入创建时拥有多个 AWS 账户的账户 ID,您可以将多个 AWS 账户中的存储桶添加到新的 S3 多区域访问点。其次,对于 S3 多区域访问点端点后面的每个 AWS 区域和 S3 存储桶,指定它们的路由状态是主动还是被动,其中主动 AWS 区域可以接受 S3 数据请求流量,被动区域在您启动失效转移之前不会被路由。第三,配置您的 S3 Cross-Region Replication 规则来同步你在不同区域和/或账户之间的 S3然后,您可以随时在 AWS 区域之间启动失效转移,以转移您的 S3 数据请求并监控您的 S3 流量转移到 Amazon CloudWatch 中的新活动 AWS 区域。或者,您也可以使用 AWS CloudFormation 自动配置多区域存储。CloudFormation 支持在 S3 上设置多区域存储所需的所有构建数据块,包括 S3 多区域访问点,允许您在 S3 控制台之外自动执行可重复的设置过程。
数据处理
Object Lambda
问:什么是 S3 Object Lambda?
借助 S3 Object Lambda,您能够将自己的代码添加到 S3 GET、LIST 和 HEAD 请求中,以便在数据返回到应用程序时修改和处理数据。您可以使用自定义代码来修改 S3 GET 请求返回的数据,以便实施筛选行、动态调整图像大小、隐去机密数据等操作。您还可以使用 S3 Object Lambda 来修改 S3 LIST 请求的输出,以创建存储桶中对象的自定义视图,并使用 S3 HEAD 请求修改对象元数据(如对象名称和大小)。S3 Object Lambda 可以帮助您轻松满足任何应用程序的独特数据格式要求,而无需构建和运行额外的基础设施(例如代理层),也不必创建和维护数据的多个衍生副本。S3 Object Lambda 使用 AWS Lambda 函数自动处理标准 S3 GET、LIST 或 HEAD 请求的输出。AWS Lambda 是一种无服务器计算服务,无需管理底层计算资源,即可运行客户定义的代码。
只需在 AWS 管理控制台中单击几下,即可配置 Lambda 函数并将其附加到 S3 Object Lambda 服务访问点。此后,S3 将自动调用 Lambda 函数来处理通过 S3 Object Lambda 端点取回的任何数据,并将转换后的结果返回应用程序。您可以编写和执行自己的自定义 Lambda 函数,根据您的特定使用案例定制 S3 Object Lambda 的数据转换。
可以通过 S3 管理控制台、开发工具包或 API 来开始使用 S3 Object Lambda。如需了解更多信息,请访问 S3 Object Lambda 页面,或 S3 Object Lambda 用户指南。
问:为何应使用 S3 Object Lambda?
如果您想通过 S3 GET、LIST 或 HEAD 请求内联处理数据,则应使用 S3 Object Lambda。您可以使用 S3 Object Lambda 在多个应用程序间共享数据的单个副本,这样既无需构建和运行自定义处理基础设施,也无需存储数据的衍生副本。例如,使用 S3 Object Lambda 处理 S3 GET 请求后,您可以对敏感数据设置掩码以满足合规性要求、重组原始数据以便其与机器学习应用程序兼容、筛选数据以限制对 S3 对象中特定内容的访问,或满足各种其他使用案例需求。您可以使用 S3 Object Lambda 来丰富对象列表,方法是查询包含额外对象元数据的外部索引,筛选和屏蔽对象列表以只包含具有特定对象标签的对象,或者向对象列表中的所有对象名称添加文件扩展名。例如,如果您有一个包含多个离散数据集的 S3桶,您可以使用 S3 Object Lambda 来根据请求者筛选 S3 LIST 响应。
只需在 Amazon S3 管理控制台中单击几下即可设置 S3 Object Lambda。请参阅用户指南,了解更多信息。
问:S3 Object Lambda 的工作原理是什么?
S3 Object Lambda 使用您指定的 Lambda 函数来处理 GET、LIST 和 HEAD 请求的输出。对某个 Lambda 函数进行定义(以处理请求的数据)后,可以将该函数附加到 S3 Object Lambda 访问点。通过 S3 Object Lambda 访问点发出的 S3 GET、LIST 和 HEAD 请求现在将调用指定的 Lambda 函数。然后,Lambda 将获取客户端请求的 S3 对象并处理该对象。处理完成后,Lambda 会将处理过的对象流式传输回调用客户端。请参阅 S3 Object Lambda 用户指南,了解更多信息。
问:如何开始使用 S3 Object Lambda?
S3 Object Lambda 可以通过多种方式进行设置。您可以通过导航到 Object Lambda Access Point(Object Lambda 访问点)选项卡,在 S3 控制台中设置 S3 Object Lambda。接下来,创建一个 S3 Object Lambda 访问点(您想要 S3 针对 GET、LIST 和 HEAD 请求执行的 Lambda 函数)和一个支持的 S3 访问点。向所有资源授予与 Object Lambda 交互的权限。最后,更新您的开发工具包和应用程序,以便通过新的 S3 Object Lambda 访问点使用您选择的语言开发工具包从 S3 取回数据。 在发出请求时,您可以使用 S3 对象 Lambda 访问点的别名。S3 对象 Lambda 访问点的别名将自动生成,而且对于通过 S3 对象 Lambda 访问的数据,这些别名可以与 S3 存储桶名称互换。对于现有的 S3 对象 Lambda 访问点,别名将自动分配并随时可供使用。AWS 文档中提供了 Lambda 函数实施的示例,可以帮助您开始使用。
您还可以使用 AWS CloudFormation 来自动化您的 S3 Object Lambda 配置。使用 AWS CloudFormation 模板时,账户中部署的 Lambda 函数会将 S3 对象传回请求客户端或应用程序,而不进行任何更改。您可以添加自定义代码,以便在数据返回到应用程序时修改和处理数据。要了解更多信息,请访问《S3 Object Lambda 用户指南》。
问:我可以使用 S3 Object Lambda 执行哪些类型的操作?
可以使用 S3 Object Lambda 执行 Lambda 函数中支持的任何操作。这为您处理请求提供了各种可用选项。您可以使用自己的 Lambda 函数来针对 GET、LIST 和 HEAD 请求运行自定义计算,从而根据应用程序的需要灵活处理数据。Lambda 处理时间最多不得超过 60 秒。有关更多详细信息,请参阅 S3 Object Lambda 文档。
问:S3 Object Lambda 支持哪些 S3 请求类型?
S3 Object Lambda 支持 GET、LIST 和 HEAD 请求。对 S3 Object Lambda 访问点发出的任何其他 S3 API 调用都将返回标准 S3 API 响应。如需了解有关 S3 Object Lambda 的更多信息,请参阅用户指南。
问:S3 Object Lambda 函数失败时会发生什么情况?
S3 Object Lambda 函数失败时,您将收到请求响应,响应中会说明失败详情。与 Lambda 函数的其他调用一样,AWS 还可以代表您自动监控函数,通过 Amazon CloudWatch 报告指标。为了帮助您排查失败问题,Lambda 会记录函数处理的所有请求,并将由代码生成的日志自动存储在 Amazon CloudWatch Logs 中。有关访问 AWS Lambda 的 CloudWatch 日志的更多信息,请访问 CloudWatch 文档。
问:S3 Object Lambda 是否会影响 S3 可用性 SLA 或 S3 持久性?
S3 Object Lambda 可以连接 Amazon S3、AWS Lambda,也可以连接您选择的其他 AWS 服务,以交付与请求应用程序相关的对象。与 S3 Object Lambda 结合使用的所有 AWS 服务将继续受其各自服务等级协议 (SLA) 的管控。例如,如有任何 AWS 服务不遵守其服务承诺,您将有资格获得该服务的 SLA 中记录的服务积分。创建 S3 Object Lambda 访问点不会影响对象的持久性。不过,S3 Object Lambda 会调用您指定的 AWS Lambda 函数,而且您必须确保指定的 Lambda 函数正确并适用。请在此处查看最新的 Amazon S3 SLA。
问:S3 Object Lambda 的成本是多少?
使用 S3 Object Lambda 时,对于通过 S3 Object Lambda 返回的每 GB 数据,您需按 GB 支付费用。您还需要为基于请求类型(GET、LIST 和 HEAD 请求)的请求付费,并在您指定的函数运行以处理请求的数据时收取 AWS Lambda 计算费用。如需查看定价详细信息和示例,请参阅 S3 定价页面。
数据访问
适用于 Amazon S3 的 Mountpoint
问:什么是适用于 Amazon S3 的 Mountpoint?
适用于 Amazon S3 的 Mountpoint 是一个开源文件客户端,您可以使用它在计算实例上挂载 S3 存储桶,并将其作为本地文件系统进行访问。适用于 Amazon S3 的 Mountpoint 可将本地文件系统操作转换为对存储在 Amazon S3 中的对象的 REST API 调用。借助适用于 Amazon S3 的 Mountpoint,您可以实现较高的单实例吞吐量,从而更快地完成任务。适用于 Amazon S3 的 mountpoint 由 AWS 支持提供支持。获得 AWS Enterprise Support 访问权限的客户可以获得 Amazon 支持工程师提供的全天候技术支持以及针对其应用场景提供的架构指导。适用于 Amazon S3 的 Mountpoint 可与 Linux 操作系统和 AWS 计算服务(如 Amazon Elastic Compute Cloud [EC2])配合使用。要了解更多信息,请参阅适用于 Amazon S3 的 Mountpoint 页面或用户指南。
问:何时应使用适用于 Amazon S3 的 Mountpoint?
适用于 Amazon S3 的 Mountpoint 非常适合读取密集型数据湖工作负载,这些工作负载使用对现有文件进行随机和顺序读取操作以及用于创建新文件的顺序写入操作来处理 PB 级数据。这些工作负载从单个节点写入,不会修改 Amazon S3 中的现有数据。常见应用场景包括 PB 级自动驾驶汽车模拟、机器学习训练、基因组学分析和图像渲染。这些工作负载可以快速纵向扩展和缩减,同时依靠 Amazon S3 的弹性来最大限度地减少未充分利用的容量并避免过度配置吞吐量的成本。借助适用于 Amazon S3 的 Mountpoint,您可以高效利用计算实例的网络带宽,从而节省计算成本,并且可以可靠地扩展到数千个计算实例,以处理 PB 级数据湖工作负载。
问:适用于 Amazon S3 的 Mountpoint 支持哪些文件系统操作?
适用于 Amazon S3 的 Mountpoint 支持基本的文件系统操作,例如读取大小不超过 5TB 的文件、写入新文件、列出现有文件以及创建和列出目录。适用于 Amazon S3 的 Mountpoint 不支持修改现有文件或删除现有目录。凭借这些操作,适用于 Amazon S3 的 Mountpoint 成为在 Amazon S3 数据湖中以高吞吐量读取和写入数据的应用程序的理想之选。它不适用于需要跨多个计算实例或用户进行协作和协调的应用程序。这些应用程序通常需要共享文件系统功能,例如附加到现有文件和文件锁定。您可以将适用于 Lustre 的 Amazon FSx 用于需要 POSIX 语义和共享文件系统功能的数据湖应用程序。
问:如何开始使用适用于 Amazon S3 的 Mountpoint?
您可以按照文档中提供的说明在计算实例的本地目录中安装 S3 存储桶,以开始使用适用于 Amazon S3 的 Mountpoint。将 S3 存储桶安装到本地目录后,您的应用程序就可以将 S3 对象作为其计算实例上本地提供的文件进行访问。适用于 Amazon S3 的 Mountpoint 支持对现有 Amazon S3 对象进行顺序和随机读取操作,并支持对新对象进行顺序写入。您应该阅读适用于 Amazon S3 的 Mountpoint 的语义文档,了解有关受支持的文件系统操作的更多详细信息。您可以使用适用于 Amazon S3 的 Mountpoint 来访问所有 S3 存储类中的对象,不包括 S3 Glacier Flexible Retrieval、S3 Glacier Deep Archive 中的对象以及 S3 智能分层中的存档访问层和深度存档访问层中的对象。
问:适用于 Amazon S3 的 Mountpoint 是如何收费的?
使用适用于 Amazon S3 的 Mountpoint 不收取额外费用。在运行文件读取、文件写入和目录列出操作等文件系统操作时,您需要为适用于 Amazon S3 的 Mountpoint 发出的 S3 API 请求(例如 GET、PUT 和 LIST 请求)付费。有关 S3 请求定价的信息,请访问定价页面。
问:适用于 Amazon S3 的 Mountpoint 预计能达到何种性能?
适用于 Amazon S3 的 Mountpoint 提供的性能与 AWS 开发工具包相同。这意味着数据湖应用程序可以实现较高的单实例传输速率,从而有效利用其 Amazon EC2 实例上的可用网络带宽。为了实现更高的吞吐量,这些应用程序可以聚合多个实例的吞吐量,以获得更大的带宽(Tb/s)。
问:使用适用于 Amazon S3 的 Mountpoint 时,如何控制对我的数据的访问?
使用适用于 Amazon S3 的 Mountpoint 时,您可以使用 Amazon S3 现有的访问控制机制(包括存储桶策略和 AWS 身份和访问管理(IAM)策略)来控制对数据的访问。适用于 Amazon S3 的 Mountpoint 会将文件系统操作(例如读取和写入)转换为对您的 S3 存储桶的对象 API 请求。之后,Amazon S3 会评估所有相关策略,例如针对用户和存储桶的策略,以决定是否批准请求。适用于 Amazon S3 的 Mountpoint 没有引入新的访问控制机制。
问:适用于 Amazon S3 的 Mountpoint 是否支持 POSIX 样式的元数据,例如用户 ID、群组 ID 和权限字段?
适用于 Amazon S3 的 Mountpoint 不支持读取或写入 POSIX 样式的元数据,例如用户 ID、群组 ID 和权限字段。可以将适用于 Lustre 的 Amazon FSx 与 Amazon S3 或 AWS DataSync 配合使用,为 S3 对象存储 POSIX 样式的元数据。
问:适用于 Amazon S3 的 Mountpoint 是否支持通过 AWS PrivateLink 进行访问?
是的,适用于 Amazon S3 的 Mountpoint 支持通过 AWS PrivateLink 进行访问。适用于 S3 的 AWS PrivateLink 在 Amazon S3 与本地之间提供私有连接。您可以在 VPC 中为 S3 预置接口 VPC 端点,以通过 AWS Direct Connect 或 AWS VPN 将本地应用程序直接连接到 S3。
问:适用于 Amazon S3 的 Mountpoint 是否支持通过网关 VPC 端点进行访问?
是的,适用于 Amazon S3 的 Mountpoint 支持通过网关 VPC 端点进行访问。建议您使用基于 AWS PrivateLink 的接口 VPC 端点从本地或其他 AWS 区域的 VPC 访问 S3。对于从与 S3 存储桶位于同一 AWS 区域的 VPC 访问 S3 的资源,我们建议使用网关 VPC 端点,因为它们不会收取费用。
问:我能否从 Amazon Elastic Kubernetes Service(Amazon EKS)Pod 中访问 Amazon S3?
可以,您可以使用 AWS SDK 和 AWS CLI 从 Amazon EKS 访问亚马逊 S3。对于使用文件系统接口读取和写入数据的应用程序,您可以使用适用于 Amazon S3 的 Mountpoint 容器存储接口(CSI)驱动程序。使用适用于 Amazon S3 的 Mountpoint CSI 驱动程序,您可以实现高水平的聚合吞吐量(最高可达每秒数 TB),而无需更改任何一行应用程序代码或权限模型。与适用于 Amazon S3 的 Mountpoint 类似,S3 CSI 驱动程序也支持对现有文件执行顺序和随机读取操作,还支持执行顺序写入操作以创建新文件。有关支持的文件系统操作的详细信息,请参阅 适用于 Amazon S3 的 Mountpoint 文件系统行为。只需在 EKS 控制台、AWS CLI、EKS API 或 AWS CloudFormation 中点击几下,即可安装、配置和更新适用于 Amazon S3 的 Mountpoint CSI 驱动程序。要了解更多信息,请访问适用于 Amazon S3 的 Mountpoint CSI 驱动程序 GitHub 页面。