1
lymanbernadette6 168 天前 2
没啥问题, 不过 WAF 不便宜
|
2
flmn 168 天前
aws 的图,一般左右排布
|
4
chesha1 168 天前
请问这种图是怎么画的,aws 提供类似的工具吗?
|
5
hwcloudnative 168 天前
大概有多少台 EC2 节点?如果少的话还行,如果超过 10 台,建议用 EKS 吧,lambda 只适小应用,而且价格不一定比 EC2 便宜,EC2 可以用 Spot 实例,价格是 lambda 的十分之一,担心 Spot 中断影响业务的话,可以看下这个免费工具,自动处理 Spot 中断 https://www.cloudpilot.ai
|
6
BeautifulSoap 168 天前 7
1. ApiGateway 内部就是 CloudFront ,所以没必要把它放 CF 后面搞套娃,再一个 ApiGateway 放 CF 后面会遇到证书等问题。ApiGateway 应该和 CloudFront 同级,用同样的 WAF
2. ApiGateway 不是在 VPC 里的,它和 CloudFront 一样运行在 AWS 网络里(毕竟内部就是 CF ) 3. DyanmoDB 也不是运行在 VPC 里的服务,和 CloudFront 一样运行在 AWS 网络里(应该放到 VPC 外部) 4. 看 lz 的意思是要把 lambda 放 private subnet 里,并且 private subent 里没有任何 nat gateway 之类的服务。这会有个如下几个问题:a. 服务端如果要和外部服务交互么。有的话需要添加 nat gateway 或者 private link 之类的 b. 因为 DynamoDB 不是运行在 VPC 里的服务,所以目前这个情况你的 lambda 将无法和 dynamodb 通信。要么在 vpc 内添加 dynamodb 用的 private link 要么通过 nat gateway 和 DynamoDB 交互(不推荐 natgateway ,走的是外部网络通信) 5. lmabda 是一个 api 一个 lambda 还是只有一个 lambda 。前者需要设置好 secruity group 防止耗尽 subnet 的 ip 资源。并且 lambda 需要注意冷启动问题 6. 监视等服务也都不在 vpc ,全移出去到 aws cloud 里 7. 看样子是通过 docker 镜像方式部署 lambda 并不是 zip ,你这镜像是要赛 aws ECR 里?最好也标明 7. deploy 通过 serverless cli 的话最好拎出来单独拎出来画箭头,别和 lambda 放一起 |
7
Hamao OP @BeautifulSoap 哥,超级感谢你点出来的问题点。大致理解了,非常感谢!
|
8
Hamao OP @hwcloudnative 感谢提醒,确实看上去 spot 也符合需求。只是现在这玩意也还没有到真正上线先画个图说明意图(不是最佳实践这样)
|
9
Hamao OP |
10
BeautifulSoap 167 天前 1
@hwcloudnative 就实践来说,现在普通项目直接用 EC2 的已经比较少了。除非项目很大(需要一直启动非常多 EC2 来计算才行),这种用 AWS ECS+EC2 是最有性价比的。而且比起 EKS 我觉得不如考虑 AWS ECS+Fargate 。ECS 这东西是真的无脑简单,什么都不用管,没 k8s 知识都能直接上。而且可以根据需要在 EC2 后端和 Fargate 后端里切换。deploy 之类的也都是给你准备好了,纯无脑
再一个 Lambda 也适合大的项目,主要还是看具体的负载类型。对于那种流量一直恒定很高的还是 ECS 比较好,但对于流量有疏有密的情况,Lambda 成本有自己的优势。比如我参与的某个几十万用户的 Lambda+Nodejs 项目,Lambda 每个本月花费$100 都没有。另一个大的项目每个月 Lambda 费用也就$1000 刀(那个项目 kotlin 写的,本身硬件要求就高没办法)。而且各种实践证明,所有 aws 服务中最花钱的并不是计算部分,甚至都不是数据库,而是 CloudWatch (这个没经验的人是真的想不到的)。。。。。。每次项目想的是好好设计下日志,节省 CloudWatch 开支,结果每次都是 CloudWatch 费用占大头 |
11
BeautifulSoap 167 天前 1
@Hamao 作为设计、代码、DevOps 全包的苦逼全干工程师,和 AWS 斗智斗勇了 N 年还是有一丁点经验的😎
|
13
basncy 167 天前
提一下红帽 ansible, 一把梭, 买几台 EC2 和快照, CDN.
重点是, 整个方案架构可以代码化, 做版本控制. |
14
yzbythesea 167 天前 via iPhone
lambda 不适合你的场景。那玩意最多跑 15 分钟,主要用于一次性跑且无状态的服务。你这个问与答多来几个回合 lambda 自己就被终止了。
|
15
a134698815 167 天前
@BeautifulSoap cloudwatch datadog 啥的确实占大头。。。所以我们新架构换 eks, 然后用 grafana+loki ,应该能代替 cloudwatch 的支出吧
|
16
gtx990 167 天前 via Android 1
大体思路没有问题
很多很多服务都是 CloudFront -> API GW -> Lambda -> DynamoDB 这个架构 Lambda 比很多人想象中的强大,1000TPS 不在话下 不过推荐加钱使用 Provisioned Concurrency 来缓解冷启动的问题 另外就是 API GW 挂在 CloudFront 后这个事情,首先这么做其实很常见,因为能解决前后端跨域的问题。但是 CF 其实只是一个转发的 proxy ,API GW 需要挂在公网,不开 authentication 的话,那 API GW 自己也要挂 WAF ,开的话,CF 和 API GW 之间需要加 lambda 。很多大公司会把鉴权放在这个 lambda 上,share 给所有 team 用。 |
17
favori 34 天前
如果需要设计 3D 软件架构图,可以试试 iCraft Editor ,https://icraft.gantcloud.com/editor
|