假设我需要一个将运行Lambdas的API网关,并且希望创建最佳的全球分布式执行基础架构。另外,我将使用Cognito进行认证,Dynamodb和S3用于用户数据和前端静态。使用API网关,Lambda,Cognito,S3,Dynamodb部署AWS Global基础设施
我的应用程序位于myapp.com
首先,用户获得从最近的位置的静态前端:
用户===>边缘位置在CloudFront的< --- S3在任何区域(带静态前端)
之后,我们需要与API网关沟通。
user ===> API网关---> Lambda ---> S3 || Cognito || Dynamodb
API网关可以位于几个区域,即使与CloudFront的分布,每个端点指向位于某一地区的λ:假设我部署的欧盟 - 西-1的API。如果请求是从美国发送的,即使我的API位于CloudFront上,它运行的Lambda位于eu-west-1,因此无论如何延迟都很高。
为了避免这种情况,我需要在美国东部-1和我所有的lambda表达式部署另一个API了。该API将指向这些Lambda表达式
如果我部署的每一个区域一个API,我需要为他们每个人一个端点,以及前端应决定申请哪一个。但是我们怎么能知道哪一个是最近的位置?
理想的场景是一个单一的全局端点api.myapp.com
,该端点将运行到最近的API网关,该网关运行位于该区域的Lambda。我可以使用路由53延迟路由配置多个A记录指向每个api网关吗?
如果不这样做正确的方式,你可以点我在正确的方向?