Aws lambda 无服务器AWS上的全球无边界实施网站/应用程序

Aws lambda 无服务器AWS上的全球无边界实施网站/应用程序,aws-lambda,serverless,Aws Lambda,Serverless,我计划使用AWS来主持一个全球网站,该网站的客户遍布世界各地。我们将有一个网站和应用程序,我们将使用无服务器架构。我还将考虑多区域DyDoDB以允许用户更接近该区域来访问最接近的数据库实例。 我的问题是,实现一个不局限于某个特定区域的解决方案的最佳设计,我们是一个无边界的实现。我还关注不同国家的高流量和高用户数 我正在看这个,但它需要我选择一个地区。我几乎需要一个路由器在前面的多个S3桶,但不知道如何。例如,用户如何访问离其所在地区最近的登录页副本?移动应用程序用户如何调用其所在地区的lambd

我计划使用AWS来主持一个全球网站,该网站的客户遍布世界各地。我们将有一个网站和应用程序,我们将使用无服务器架构。我还将考虑多区域DyDoDB以允许用户更接近该区域来访问最接近的数据库实例。 我的问题是,实现一个不局限于某个特定区域的解决方案的最佳设计,我们是一个无边界的实现。我还关注不同国家的高流量和高用户数

我正在看这个,但它需要我选择一个地区。我几乎需要一个路由器在前面的多个S3桶,但不知道如何。例如,用户如何访问离其所在地区最近的登录页副本?移动应用程序用户如何调用其所在地区的lambda功能

如果你能给我指出一篇帖子或文章,或者仅仅是你的回复,我将不胜感激

注意:如果谷歌云平台也是一个选项,你会感兴趣吗

谢谢大家!

S3 您可以设置CloudFront分发,在所有边缘位置为单个存储桶的内容提供服务,而不是为每个区域设置
S3
存储桶

Create Distribution
过程中,在
Origin Domain Name
下拉列表中选择S3 bucket

警告:更新bucket内容时,需要使CloudFront缓存失效,以便分发更新的内容。这没什么大不了的


API网关 通过设置API网关,您可以选择
边缘优化
区域

Edge-Optimized
情况下,AWS会自动通过边缘网络为您的API提供服务,但请求都会路由回其主区域中的原始API网关实例。这是一个简单的选择

Regional
情况下,您需要部署多个API实例,每个区域一个。从那里,您可以在Route 53中进行基于延迟的路由设置。这是一个更难的选择,但更灵活

注意:您始终可以在
边缘优化的
配置中开始开发,然后重新部署到
区域
配置


发电机B/Lambda DynamoDB和Lambda是区域服务,但您可以将实例部署到多个区域

对于DynamoDB,您可以使用流函数设置跨区域复制

虽然我从未实施过

注意:与
Edge-Optimized
API网关一样,您可以开始在单个区域中开发DynamoDB表和Lambda函数,然后扩展到多区域部署

更新 如注释中所述,DynamoDB有一个称为全局表的功能,它为您处理跨区域复制。这似乎相当简单--创建一个表,然后从
全局表
选项卡管理其跨区域复制(从该选项卡启用流,然后添加其他区域)

欲了解更多信息

在撰写本文时,此功能仅在以下地区受支持:
美国西部(俄勒冈州)
美国东部(俄亥俄州)
美国东部(北弗吉尼亚州)
欧盟(法兰克福)
欧盟西部(爱尔兰)
。我想,当其他地区有足够多的客户要求此功能时,它将变得可用

还请注意,您可以运行Lambda@Edge用于响应CloudFront事件的函数


lambda函数可以在运行时检查
AWS_REGION
环境变量,然后调用(并转发请求详细信息)区域适当的服务(例如API网关)。这意味着您也可以使用Lambda@Edge作为API网关的替代品,您可以自己检查查询字符串(YMMV)。

从一个区域开始开发。一旦一切正常,经过测试,您拥有了MVP,您就可以将相同的基础设施和应用程序部署到其他地区。感谢您的建议,我正计划这样做。但是您需要了解最终状态,并向后处理整个体系结构。我需要知道整体解决方案的要求/规格,这样我的短期解决方案不会妨碍我扩大规模。谢谢Nicholas,我想你让我对CloudFront的理解有了突破。感谢你分享我关于CloudFront和API网关区域与边缘优化端点的答案的链接。请注意,DynamoDB现在支持完全自动化的多区域复制。。。及Lambda@Edge这里值得一提,因为它可以在CloudFront原始请求触发器中使用,根据为给定请求提供服务的边缘所在的区域(如
process.env.AWS_region
中所示),为飞行中的请求(eS3、API-GW、Dynamo)潜在地选择区域服务目标。哦,哇,这更好!谢谢你的信息,我会更新答案的。你用简短的甜言蜜语回答了所有的问题。