gRPC 是一个现代的开源远程过程调用(RPC)框架,允许客户端和服务器通过长期的 HTTP/2 连接进行双向通信。通过使用持久开放连接,客户端和服务器可以相互发送实时数据,而无需客户端频繁重新启动连接来检查要交换的新数据。gRPC 非常适合低延迟和高传输速度至关重要的使用案例,例如实时通信应用程序和在线游戏。
您的 CloudFront 分发上的每个缓存行为均启用了 gRPC。启用 gRPC 将确保您的发行版上也启用了 HTTP/2 和对 POST 请求的支持。gRPC 仅支持 HTTP/2 上的 POST 方法。
当满足以下条件时,Amazon CloudFront 会通过 gRPC 进行通信:
暂时不能。CloudFront 仅支持基于 HTTP/2 的 gRPC。
CloudFront 提供两种完全托管的方式来保护您的源:
如果 CloudFront 托管解决方案不能满足您的使用案例要求,以下是一些可用的替代方法:
CloudFront 虚拟私有云(VPC)源是一项新功能,允许您使用 CloudFront 从托管在 VPC 私有子网中的应用程序传送内容。使用 VPC 源,您可以将应用程序置于 VPC 的私有子网中,该子网只能通过 CloudFront 分发进行访问。这消除了对源具有外部可解析的域名服务(DNS)名称的要求。您可以使用在应用程序负载均衡器(ALB)、网络负载均衡器(NLB)和 EC2 实例上运行的应用程序来设置 VPC 源。VPC 源仅在 AWS 商业区域可用,支持的 AWS 区域的完整列表可在此处查看。
如果您希望增强 Web 应用程序的安全性,同时保持高性能和全球可扩展性,则应将 VPC 源与 CloudFront 结合使用。通过 VPC 源,您可以限制只有 CloudFront 分发才能访问 VPC 中的源,而无需进行诸如秘密标头或访问控制列表之类的复杂配置。VPC 源还让您可以免费路由到具有内部 IPv4 IP 地址的私有子网中的源,从而优化您的 IPv4 成本。如果您想简化安全管理,VPC 源是完美的选择,它可以让您更加专注于发展核心业务,而不是管理复杂的安全措施。
CloudFront 虚拟私有云(VPC)源允许您使用 CloudFront 通过应用程序负载均衡器、网络负载均衡器和 EC2 实例从托管在 VPC 私有子网中的应用程序传送内容。Amazon VPC 屏蔽公共访问权限(VPC BPA)是一种简单的声明性控制,它通过 AWS 提供的互联网路径权威地阻止传入(入口)和传出(出口)VPC 流量。在具有 VPC 源的子网上启用 VPC BPA 时,来自 CloudFront 的活动连接将终止于该子网。不会向该子网发送新的连接,而是将其路由到 VPC 源所在的其他子网(未启用 BPA),或者如果 VPC 源所在的所有子网都启用了 BPA,则该连接会被丢弃。
VPC 源支持应用程序负载均衡器、网络负载均衡器和 EC2 实例。
不,VPC 私有源不支持 IPv6。使用 VPC 源需要私有 IPv4 地址,这些地址是免费的,并且不会产生 IPv4 费用。
Amazon CloudFront 的任播静态 IP 是一组静态 IP 地址,允许您连接到全球所有 CloudFront 边缘站点。它们提供了一个小型的静态 IP 列表,可用于零费率计费(网络提供商在适当协议下免除特定 IP 地址的数据费用)以及为加强安全状况而设置客户端允许列表等使用案例。通过使用任播静态 IP,可以消除不断更新允许列表或 IP 映射的操作挑战,因为同一组 IP 适用于 CloudFront 的整个全球网络,同时仍然可以享受 CloudFront 的所有功能。
要启用任播静态 IP,需要先在您的 AWS 账户中请求并创建一个任播静态 IP 列表。创建列表后,您可以将 CloudFront 分发与任播静态 IP 列表关联。这可以通过 AWS 管理控制台上的任播静态 IP 部分来完成,或者通过编辑每个分发并从下拉菜单中选择所需的任播静态 IP 列表来完成。保存这些更改后,您可以从 AWS 管理控制台中显示的列表或通过 API 复制或下载与您的分发关联的特定静态 IP 地址集
启用 CloudFront 任播静态 IP 后,您将收到 21 个 IPv4 的 IP 地址。您需要将所有这些 IP 地址添加到任何相关的允许列表中。
不能。CloudFront 任播仅适用于分布在不同地理区域的 IP。
随着 CloudFront 添加新的边缘站点,您的任播静态 IP 列表将继续保持有效。我们将酌情公布来自新边缘站点的 IP。
所有 CloudFront 功能均可与任播配合使用,但有三个明显的例外:1/ 任播静态 IP 不支持无法支持 SNI 的旧客户端,2/ 使用任播静态 IP 时,需要使用价格级别“所有”,3/ 使用任播静态 IP 时,必须禁用 IPv6。任播静态 IP 在 DNS 解析阶段工作,一旦请求到达主机,所有现有功能以及与其他 AWS 服务的集成将继续可供您的分发使用。
您可以将任播静态 IP 与多个分发一起使用,但它们必须位于同一个账户中。CloudFront 任播静态 IP 可与账户中的多个分发关联。CloudFront 任播静态 IP 将支持服务器名称指示(SNI),以便从与其任播静态 IP 策略关联的任意数量的分发中返回正确的证书。如果您希望为账户中的多个分发设置不同的静态 IP,则可以创建额外的任播静态 IP 列表,并将它们关联到特定分发。
在启用了任播静态 IP 的账户中创建新的分发时,必须将新分发与现有的任播静态 IP 列表明确关联。默认情况下,该分发将使用动态 IP 地址,直到您将其链接到静态 IP 列表。
CloudFront 标准访问日志可以传送到 Amazon S3、Amazon CloudWatch 和 Amazon Data Firehose。您可以选择输出日志格式(纯文本、w3c、JSON、csv 和 parquet)。您可以选择要记录的字段以及这些字段以何种顺序包含在日志中。对于传送到 S3 的日志,您还可以为其启用分区,即,将日志配置为按小时或按天自动分区。您还可以将标准访问日志传送到选择加入 AWS 区域的 S3 存储桶。要了解更多信息,请参阅《CloudFront 开发人员指南》的标准访问日志部分。
CloudFront 不会对启用标准日志收费,但您需要根据日志传送目的地支付日志传送、存储和访问费用。如需了解更多信息,请参阅 CloudFront 定价页面的“附加功能”部分。
您可以根据您的使用案例选择目标。如果您拥有时效性很强的使用案例且需要在几秒内快速访问日志数据,则选择实时日志。如果您需要成本更低的实时日志管道,您可以通过仅为特定缓存行为启用日志或选择较低的采样率来选择筛选日志数据。实时日志管道的构建是为了快速传送数据。因此,如果发生数据延迟,日志记录可能会被删除。另一方面,如果您需要低成本的日志处理解决方案且不需要实时数据,则您适合使用当前的标准日志选项。S3 中的标准日志为完整性而构建,且日志通常在几分钟内即可用。可以为整个分发启用这些日志,而不是特定的缓存行为。因此,如果您需要日志进行临时调查、审计和分析,您可以选择仅启用 S3 中的标准日志。您可以选择使用这两种日志的组合。使用经过筛选的实时日志列表,以获取操作可见性,然后使用标准日志进行审计。
CloudFront 标准日志将传送到您的 S3 存储桶中。您还可以使用 DataDog 和 Sumologic 等第三方解决方案构建的集成来从这些日志中创建控制面板。
实时日志将传送到您的 Kinesis Data Stream。从 Kinesis Data Streams 中,可以将日志发布到 Amazon Kinesis Data Firehose。Amazon Kinesis Data Firehose 支持将日志轻松传送至 Amazon S3、Amazon Redshift、Amazon Elasticsearch Service 以及 Datadog、New Relic 和 Splunk 等服务提供商。Kinesis Firehose 还支持将数据传送到通用的 HTTP 终端节点。
使用下列步骤估算您需要的分区数量:
例如,假设您的分发每秒接收 10000 个请求,且您的实时日志记录的典型大小是 1KB。这意味着,您的实时日志配置每秒可以生成 10000000 个字节(10000 乘以 1000)或者 9.53MB 的数据量。在此情况下,您只需要 10 个 Kinesis 分区。您应该考虑至少创建 12 个分区,以便拥有一些缓冲区。