AWS 最低延迟基础设施

AWS 最低延迟基础设施

我想为设置最正确且延迟最低的基础设施AWS

我希望通过 提供静态Javascript文件服务CloudFront,在此基础上,调用动态服务器,该服务器将返回Javascript由 所服务的文件之前声明的函数的调用CloudFront- 我发现这是实现此目的的最佳方式。

但是,动态调用依赖于某个数据库(最终可能会是DynamoDB),我希望将其分散并复制到多个区域以尽可能减少延迟。

我的想法是让Lambda函数分布在世界各地的多个地区,从DynamoDB相应地区的副本中检索数据,以便为 JS 函数提供动态参数(有没有办法让函数Lambda不依赖代码并将DynamoDB端点硬编码在代码中?)。

除此之外,我还想对每个请求进行广泛的监控,这是CloudWatch最好的方法吗?还是我应该将其直接存储在MySQL Aurora数据库或DynamoDB某种数据库中?出于监控目的,最好的选择是什么?

对于拥有数百万用户的系统、跨区域、最低延迟和最具可扩展性的系统来说,这是否是最好的基础设施?

答案1

如果您需要Cloudfront中的动态请求,则可以使用Lambda@edge。

如果您的数据访问模式不需要关系,并且您设计分区键以避免写入或读取的热分区,那么 Dynamodb 是一个不错的选择。

Dynamodb 支持多区域主到主复制。

Lambda 是一个方便的工具,但在快速扩展时,约 10% 的请求会出现冷启动问题,因此 90% 的延迟将增加约 10 倍。您可以考虑使用 Fargate 来运行可自动扩展的完整容器,而不是使用 Api Gateway 的 Lambda 自动扩展功能。

Cloudwatch 可用于监控,无需大量设置或使用第三方工具。

希望有所帮助。

相关内容