对于我的下一个项目,我将尝试使用 AWS 和无服务器,但我不确定如何推理不同的 AWS 服务。所以在这里希望有人对此有很好的感觉。
该项目目前由三个不同的前端应用程序组成,每个应用程序都托管在一个单独的子域中:
- 根域+[www]:主网页,主要由“销售”内容组成
- [管理]:我们管理系统的前端应用程序
- [user]:用于我们用户体验的前端应用程序
然后,就目前而言,是一个为所有前端应用程序服务的后端应用程序。此后端必须至少由 [administration] 和 [user] 子域(即 user.domain.com/service/backend)反向代理。我的后端服务目前作为 docker 容器运行,并且它在某些部分使用 WebSockets,因此必须支持。
我一直在为我的前端寻找一些选项,AWS Amplify 或 S3+Cloudfront。但是,我不确定这些是否是我正在寻找的。
我的后端也是如此。我一直在研究 AWS Fargate、AWS API Gateway 和可能的 AWS AppSync(因为我的大部分后端都是 GraphQL 应用程序)。
但我有点迷路了。谁能给我推动正确的方向?希望我已经提供了足够清晰的信息,否则,我很乐意扩展!:)
谢谢!
对于任何好奇的人,我登陆的设置有点像这里描述的:https ://aws.amazon.com/blogs/networking-and-content-delivery/dynamic-whole-site-delivery-with-amazon-cloudfront /
我通过 Cloudfront 路由所有内容,然后使用“行为”将流量路由到不同的服务。例如 /service/user 和 /service/schedule 被路由到我的 ALB 实例,而其他所有内容都被路由到我的 S3 存储桶,充当静态网页。
使用一些 Lambda@Edge 魔法,我能够重写转发到我的 ALB 实例的请求,然后可以匹配传入的请求并将它们进一步转发到正确的底层容器(我目前在 Fargate 中使用集群)。
这对我的用例非常有效,即使它可能不是“最佳实践”。所以我肯定会继续探索 AWS 并学习新东西。:)
如果它对某人有帮助,那就太好了。如果有人对上述内容有意见,我很想听听!
干杯!