通过 Chrome 受保护受众 API(PAAPI),需求方和卖方平台可查询实时数据,为竞价或拍卖逻辑提供信息
本指南演示了如何在 AWS 的可信执行环境(TEE)中部署 Google Chrome 浏览器隐私沙盒键/值服务。键/值服务让实施者可以获取实时信号,以便通过受保护受众 API(PAAPI)向自定义受众进行再营销。这些实时数据可帮助广告买家决定如何出价,并帮助卖家以加强隐私保护的方式选择中标出价。本指南旨在简化键/值服务的实施,同时优化成本和延迟。
请注意:[免责声明]
架构图
-
概览
-
数据加载
-
概览
-
此架构图概述了如何部署隐私沙盒的受保护受众 API 键/值服务。对于数据加载组件,打开另一个选项卡。
键/值服务部署
第 1 步
使用 Google 提供的 terraform 在您的 Amazon Virtual Private Cloud(Amazon VPC)环境中部署隐私沙盒的受保护受众 API 键/值服务。此键/值服务在 Amazon Elastic Compute Cloud(Amazon EC2)中运行,Amazon EC2 Auto Scaling 组横向扩展该服务,以满足工作负载需求。数据在 AWS Nitro Enclaves 可信运行时环境中受到保护。父级自动扩缩组和该安全区之间的通信通过安全的本地通道完成。
第 2 步
使用 Google 提供的 terraform 部署其他 AWS 资源,该工具可提供服务和资源,以将键/值数据(以 Delta 或快照文件的形式)加载到隐私沙盒的键/值服务应用程序中。
使用托管在 Amazon Elastic Container Service(Amazon ECS)上的隐私沙盒数据命令行界面(CLI)应用程序来生成文件。键/值服务使用 Amazon Simple Notification Service(Amazon SNS)和 Amazon Simple Storage Service(Amazon S3)事件通知来订阅数据更新。
为了实现低延迟更新,键/值服务通过长时间轮询订阅的 Amazon Simple Queue Service(Amazon SQS)队列来监听 Amazon SNS 主题。由 AWS PrivateLink 提供支持的 VPC 端点在键/值服务 VPC 和其他 AWS 资源之间提供私有连接。
第 4 步
键/值服务应用程序可通过 NAT 网关安全地出站访问由协调员负责操作的 Google 密钥管理系统。键/值服务从 Google 的密钥管理系统获取私钥,用于解密来自客户端设备的请求。请注意,这并非 AWS Key Management Service(AWS KMS)。第 5 步
键/值服务应用程序会查找密钥的匹配数据,然后以加密形式返回给用户的 Chrome 浏览器或安卓浏览器。 -
数据加载
-
此架构图显示了数据加载组件,并演示了摄取用于实时拍卖和竞价的第一方数据的模式。如需了解概述内容,请打开另一个选项卡。
第 1 步
您的第一方数据可能以多种格式存在,并且您的记录系统属于现有实时竞价应用程序的一部分。为支持通过隐私沙盒 API 进行广告定位,需要生成您的第一方数据,或将其复制到隐私沙盒的受众保护 API 键/值服务。
第 2 步
要存储在键/值服务中的数据首先发送到三个数据收集服务之一。Amazon SQS 支持基于 API 到 API 的集成模式。Amazon S3 支持基于文件的集成模式。Amazon Kinesis Data Streams 支持增强的扇出模式,可将数据加载到 Key/Value 服务。
第 3 步
通过 Amazon SQS 和 Kinesis Data Streams 流入的实时数据由在 Docker 容器中运行并托管在 Amazon ECS 中的数据格式化应用程序处理。或者,您也可以使用 AWS Lambda 函数来处理数据格式化程序应用程序。该应用程序使用 AWS SDK 和 Google 的数据 CLI 工具接收传入格式,并将其转换为键/值服务可以读取的 delta 格式。
第 4 步
上传到 Amazon S3 的批量数据文件会生成一个事件调用并运行一个 Amazon EventBridge 规则,该规则反过来会执行一个 Amazon ECS 任务。Amazon ECS 任务运行的是数据格式化程序应用程序,它使用 AWS SDK、AWS 命令行界面(AWS CLI)和 Google 的数据 CLI 工具接收传入格式,并将其转换为 delta 格式。
第 5 步
数据格式化程序应用程序将数据发送到 S3 存储桶和 Amazon SNS,供键/值服务使用。
第 6 步
如概述架构图所述,使用基础设施即代码 terraform 堆栈单独部署键/值服务。该堆栈预置的 AWS 资源通过 Amazon S3 或 Amazon SNS 监听传入数据行,并将其加载到在 Nitro Enclaves 上运行的键/值服务中。
Well-Architected 支柱
当您在云中构建系统时,AWS Well-Architected Framework 可以帮助您了解所做决策的利弊。框架的六大支柱使您能够学习设计和操作可靠、安全、高效、经济高效且可持续的系统的架构最佳实践。使用 AWS 管理控制台中免费提供的 AWS Well-Architected Tool,您可以通过回答每个支柱的一组问题,根据这些最佳实践来检查您的工作负载。
上面的架构图是按照 Well-Architected 最佳实践创建的解决方案示例。要做到完全的良好架构,您应该遵循尽可能多的 Well-Architected 最佳实践。
-
卓越运营
Amazon CloudWatch 为在 Nitro Enclaves 和 Amazon ECS 中运行的键/值服务提供日志记录和跟踪(通过 AWS X-Ray),让您轻松了解性能特征。另外,通过 Amazon Elastic Container Registry(Amazon ECR),您可存储容器并对其进行版本控制,以便将容器部署到 Amazon ECS,而 Amazon EC2 Auto Scaling 可让您轻松管理在 Nitro Enclaves 中运行的键/值服务的扩展和计算。
-
安全性
AWS Identity and Access Management(IAM)策略使您能够将服务和资源的范围限制在操作所需的最低权限内。Amazon S3 使用服务器端加密和 Amazon S3 托管密钥对静态数据进行加密。AWS WAF 为公共端点提供分布式拒绝服务保护,以防止恶意攻击;您还可以轻松创建安全规则来控制僵尸流量。此外,本指南使用 Amazon VPC 端点,使在 Nitro Enclaves 和 Amazon ECS 中运行的服务能够私密连接到支持的 AWS 服务。
-
可靠性
在将数据上传到键/值服务之前,本指南会将其存储在 Amazon S3 中,因此您可以使用 S3 Versioning 来保存、复制、检索和还原对象的每个版本。这使您能够从无意用户操作或应用程序故障中恢复。此外,本指南使用自动扩缩组将计算分散到各可用区,并使用弹性负载均衡将流量分配给运行正常的 Amazon EC2 实例。最后,Amazon SNS 和 Amazon SQS 作为低延迟数据更新的端点,提供了一个基于推拉的系统,用于在下游处理数据之前交付数据,并促进数据持久化。
-
性能效率
Amazon ECS 降低了在 AWS 上扩展容器化工作负载的复杂性。通过使用在 AWS Graviton 处理器上运行的 Amazon ECS 容器,您可以实现更高的吞吐量和更低的请求延迟。此外,Amazon SNS 可以在几毫秒内发布消息,因此上游应用程序可以通过推送机制向键/值服务发送紧急消息。
-
成本优化
作为一项无服务器服务,Amazon S3 可自动扩展数据存储,使您能够根据实际使用的存储来优化成本,并且可以避免预置和管理物理基础设施的成本。此外,Amazon S3 提供不同的存储类别,帮助您进一步优化存储和降低成本,并且您还可以设置生命周期规则,以便在一段时间后删除数据。Amazon ECS 还可根据需求动态扩展和缩减计算资源,因此您只需为使用的资源付费,从而帮助优化成本。最后,通过减少空队列的空接收次数,Amazon SQS 长时间轮询提高了处理库存更新的效率,进一步优化了成本。
-
可持续性
由 AWS Graviton 处理器提供支持的实例使您能够以更低的延迟提供更多请求,而且与同类的 Amazon EC2 实例相比,能耗最多可降低 60%,从而降低工作负载的碳足迹。另外,Amazon SQS 长时间轮询通过减少 API 请求、最大限度地减少网络流量和优化资源利用率来提高资源效率。
相关内容
免责声明
示例代码;软件库;命令行工具;概念验证;模板;或其他相关技术(包括由我方人员提供的任何前述项)作为 AWS 内容按照《AWS 客户协议》或您与 AWS 之间的相关书面协议(以适用者为准)向您提供。您不应将这些 AWS 内容用在您的生产账户中,或用于生产或其他关键数据。您负责根据特定质量控制规程和标准测试、保护和优化 AWS 内容,例如示例代码,以使其适合生产级应用。部署 AWS 内容可能会因创建或使用 AWS 可收费资源(例如,运行 Amazon EC2 实例或使用 Amazon S3 存储)而产生 AWS 费用。
本指南中提及第三方服务或组织并不意味着 Amazon 或 AWS 与第三方之间存在认可、赞助或从属关系。AWS 的指导是一个技术起点,您可以在部署架构时自定义与第三方服务的集成。