2024 年了基于 AWS 的 GO web 服务架构该怎么做

76 天前
 ForkNMB

小公司,有七八个微服务,两三个对外的 http 服务,其余都是内部处理 rpc 请求的服务。 没啥架构经验,想到几个方案 a.自己搞个 nginx 在 ec2 上,去做负载均衡和反向代理,那这样前面是不是得搞个防火墙什么的(这里不知道怎么搞 b.直接把 cloudfront 当 nginx 用 c.干脆直接用 cloudfront+ALB,静态资源经 cloudfront 就走 s3 了,接口访问就直接去 ALB,在那里做负载均衡和反向代理 ...还有其它靠谱的方案吗,大家平时在用的 还有一个,上面的都没考虑费用的问题

1470 次点击
所在节点    Go 编程语言
10 条回复
coolcoffee
76 天前
优先考虑可靠性的情况下,应该选择 B 方案。自建 EC2 负载均衡稳定性不够也不容易观察流量数据,自身就是单点风险。
enchilada2020
76 天前
我们是 EC2 前有 ALB EC2 里 Web Server 前面再来个 HAProxy
k9982874
76 天前
aws 里有个叫 elb 的东西
enchilada2020
76 天前
@k9982874 楼主提到的 ALB 就是 ELB 的一种
ForkNMB
76 天前
@enchilada2020 感谢回答 还想问一下
那这样每台 EC2 都需要装 HAProxy 服务,这个我没用过,可靠吗?
EC2 前面都有 ALB 了,web server 前面的 HAProxy 用途是
还有你们有没有静态资源放 s3 的情况,这种如何提供对外访问
whileFalse
76 天前
C ,这是 AWS 最佳实践。
上面选 B 的哥们,你们 CF 的上游直接怼 EC2 上吗?基于域名/IP 分流,你其中一台机器要是挂了不直接影响到用户了吗。
whileFalse
76 天前
@enchilada2020 HA 是用于在一台机器上部署多个服务实例的吧?

@ForkNMB 静态资源放 S3 之后直接挂到 CF 上就行。EC2 要不要带 HA/NGINX 取决于你们的部署模式。
比如最简单的一台机器每个服务都部署一个实例的方式,直接 ALB SG 指定端口号就行了,不需要反代。
dropdatabase
76 天前
c.
aws 有各种 lb 了。还要 haproxy 干啥?
另外量少可以试试 Lambda 。
enchilada2020
76 天前
@ForkNMB 在实例级别终止 SSL URL 改写 访问日志 简化单实例多后端的情况等等 确实跟 ALB 有一部分功能是重合的 是否采用根据实际情况来就行 S3 外部访问应该没涉及到 不太清楚
wingoo
76 天前
已经是 go 了, aws 上直接 EKS 就行了
静态资源 cloudfront + s3

这是一个专为移动设备优化的页面(即为了让你能够在 Google 搜索结果里秒开这个页面),如果你希望参与 V2EX 社区的讨论,你可以继续到 V2EX 上打开本讨论主题的完整版本。

https://www.v2ex.com/t/1054735

V2EX 是创意工作者们的社区,是一个分享自己正在做的有趣事物、交流想法,可以遇见新朋友甚至新机会的地方。

V2EX is a community of developers, designers and creative people.

© 2021 V2EX