Aws lambda 无服务器AWS上的全球无边界实施网站/应用程序
我计划使用AWS来主持一个全球网站,该网站的客户遍布世界各地。我们将有一个网站和应用程序,我们将使用无服务器架构。我还将考虑多区域DyDoDB以允许用户更接近该区域来访问最接近的数据库实例。 我的问题是,实现一个不局限于某个特定区域的解决方案的最佳设计,我们是一个无边界的实现。我还关注不同国家的高流量和高用户数 我正在看这个,但它需要我选择一个地区。我几乎需要一个路由器在前面的多个S3桶,但不知道如何。例如,用户如何访问离其所在地区最近的登录页副本?移动应用程序用户如何调用其所在地区的lambda功能 如果你能给我指出一篇帖子或文章,或者仅仅是你的回复,我将不胜感激 注意:如果谷歌云平台也是一个选项,你会感兴趣吗 谢谢大家! S3 您可以设置CloudFront分发,在所有边缘位置为单个存储桶的内容提供服务,而不是为每个区域设置Aws lambda 无服务器AWS上的全球无边界实施网站/应用程序,aws-lambda,serverless,Aws Lambda,Serverless,我计划使用AWS来主持一个全球网站,该网站的客户遍布世界各地。我们将有一个网站和应用程序,我们将使用无服务器架构。我还将考虑多区域DyDoDB以允许用户更接近该区域来访问最接近的数据库实例。 我的问题是,实现一个不局限于某个特定区域的解决方案的最佳设计,我们是一个无边界的实现。我还关注不同国家的高流量和高用户数 我正在看这个,但它需要我选择一个地区。我几乎需要一个路由器在前面的多个S3桶,但不知道如何。例如,用户如何访问离其所在地区最近的登录页副本?移动应用程序用户如何调用其所在地区的lambd
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)潜在地选择区域服务目标。哦,哇,这更好!谢谢你的信息,我会更新答案的。你用简短的甜言蜜语回答了所有的问题。