亚马逊AWS官方博客

现已推出 Outposts 上的 Amazon S3

AWS Outposts 客户现在可以使用 Amazon Simple Storage Service (S3) API 来存储和检索数据,如同在常规 AWS 区域中访问或使用数据。这表示,许多已直接或通过 SDK 间接使用 S3 API 的工具、应用程序、脚本或实用程序,现在都可以配置为在 Outposts 本地存储这些数据。

AWS Outposts 是一种完全的托管服务,通过 AWS 在您的数据中心或并置中心安装 Outposts 即可提供一致的混合体验。这些 Outposts 由 AWS 管理、监控和更新,就像在云中一样。客户可使用 AWS Outposts 在其本地环境中运行服务,例如 Amazon Elastic Compute Cloud (EC2)Amazon Elastic Block Store (EBS)Amazon Relational Database Service (RDS);它非常适合需要低延迟访问本地系统、本地数据处理或本地数据存储的工作负载。

Outposts 不仅能连接到 AWS 区域,还能访问 AWS 区域中的 Amazon S3;此外,此新功能允许您使用 S3 API 在 AWS Outposts 硬件上存储数据并在本地进行处理。您可以在 Outposts 上使用 S3,通过将数据保留在靠近本地应用程序的位置,从而满足苛刻的性能需求。它还能帮助您减少传输至 AWS 区域的数据,因为您可以在本地对数据执行过滤、压缩或其他预处理,而无需将所有数据发送到某个区域。

任何对象以及关联的元数据和标签始终存储在 Outposts 中,永远不会发送或存储到其他位置,便于将数据保留在本地。不过,必须注意的是,如果存在数据驻留要求,您可能需要采取一些防护机制,确保无人有权将对象从您的 Outposts 手动复制到 AWS 区域。

在 Outposts 上创建 S3 存储桶后,您便可以使用在常规 AWS 区域中使用的相同控制台、API 和 SDK 轻松地存储和检索对象。利用 S3 的 API 和各项功能,在 Outposts 上使用 S3 可以轻松地存储、保护、标记、检索和报告 Outposts 上的数据,并控制访问权限。

Outposts 上的 S3 提供了一个名为 S3 Outposts 的新 Amazon S3 存储类;此存储类使用 S3 API,旨在用于在 Outposts 上的多个设备和服务器之间持久且冗余地存储数据。默认情况下,所有存储的数据均使用 SSE-S3 的服务器端加密进行加密。通过将加密密钥指定为对象 API 请求的一部分,您可以选择将服务器端加密与自己的加密密钥 (SSE-C) 一起使用。

配置 Outposts 时,您不仅可以添加 48 TB 或 96 TB 的 S3 存储容量,还可以在每个 Outposts 上创建多达 100 个存储桶。针对现有 Outposts,您可以通过 AWS Outposts 控制台添加容量,或与您的 AWS 账户团队联系。如果现有 Outposts 上使用的 EBS 存储容量不超过 11 TB,则可在不更改现有 Outposts 硬件的情况下添加多达 48 TB 的容量。其他配置需要在 Outposts 上添加额外的硬件(如果硬件占用空间支持此功能)才能添加 S3 存储容量。

现在,我将为您展示如何在自己的 Outposts 上创建 S3 存储桶,然后在此存储桶中存储和检索一些数据。

使用 Outposts 上的 S3 存储数据

首先,我将 AWS 命令行界面 (CLI) 更新为最新版本。我会使用以下命令创建一个新的存储桶,然后使用 –outposts-id 命令行开关指定要在哪个 Outposts 上创建存储桶。

aws s3control create-bucket --bucket my-news-blog-bucket --outposts-id op-12345

作为对命令的回应,我得到了存储桶的 ARN。我记下它,因为下一个命令中需要用到。

接下来,我会创建一个接入点。接入点是管理 S3 存储桶访问的一种相对较新的方法。每个接入点对通过它发出的任何请求强制执行不同的权限和网络控制。Outposts 上的 S3 需要 Amazon Virtual Private Cloud 配置,因此我需要提供 VPC 详细信息以及 create-access-point 命令。

aws s3control create-access-point --account-id 12345 --name prod --bucket "arn:aws:s3-outposts:us-west-2:12345:outpost/op-12345/bucket/my-news-blog-bucket" --vpc-configuration VpcId=vpc-12345

Outposts 上的 S3 使用终端节点连接到 Outposts 存储桶,以便您可以在 Virtual Private Cloud (VPC) 中执行操作。为了创建终端节点,我会运行以下命令。

aws s3outposts create-endpoint --outpost-id op-12345 --subnet-id subnet-12345 —security-group-id sg-12345

现在,我已经设置好了各项内容,可以开始存储数据了。我使用 put-object 命令将对象存储在新创建的 Amazon Simple Storage Service (S3) 存储桶中。

aws s3api put-object --key my_news_blog_archives.zip --body my_news_blog_archives.zip --bucket arn:aws:s3-outposts:us-west-2:12345:outpost/op-12345/accesspoint/prod

存储对象后,我便可以使用 get-object 命令进行检索。

aws s3api get-object --key my_news_blog_archives.zip --bucket arn:aws:s3-outposts:us-west-2:12345:outpost/op-12345/accesspoint/prod my_news_blog_archives.zip

检索到了。我在自己的 Outposts 上成功使用 Outposts 上的 S3 存储了一个对象,然后对其进行了检索。

从 Outposts 传输数据

现在,您可以在 Outposts 上存储和检索数据。接下来,您可能希望将结果传输到 AWS 区域中的 S3,或者将数据从 AWS 区域传输到您的 Outposts,以便经常进行本地访问、处理和存储。借助为 Outposts 上的 S3 新推出的支持功能,您可以使用 AWS DataSync 来完成此操作。

DataSync 支持您选择要传输的对象、传输时间以及使用的网络带宽。DataSync 还可以对传输中的数据进行加密,验证传输中和静态下的数据完整性,以及通过 Amazon CloudWatch 指标、日志和事件提供对传输过程的精细可见度。

立即订购

如果您想立即开始使用 Outposts 上的 S3,请访问 AWS Outposts 控制台。您可以在此处将 S3 存储添加到现有 Outposts,或者订购包含了所需 S3 容量的 Outposts 配置。如需详细讨论 Outposts 购买事宜,请联系我们的销售团队

的定价方式与大多数 AWS 服务略有不同,因为它不是按需付费型服务。Outposts 容量以 3 年期方式出售,并且提供时长各异的付款方案。AWS Outposts 的配置丰富多样,提供各种 EC2 实例类型和存储选项的组合。您还可以通过升级配置来随时增加 EC2 性能和存储容量。如需了解更多定价详情,请查看 AWS Outposts 定价详细信息

祝您存储愉快

— Martin