V2EX = way to explore
V2EX 是一个关于分享和探索的地方
现在注册
已注册用户请  登录
• 请不要在回答技术问题时复制粘贴 AI 生成的内容
YingJieZ
V2EX  ›  程序员

技术栈基础设施选型

  •  1
     
  •   YingJieZ · 3 天前 · 1956 次点击

    最近打算做一个个人项目,同时面向国内+国外用户

    核心技术栈如下:

    • 前端: Next.js + React
    • 后端: Python Flask + SQLAlchemy
    • UI 框架: Tailwind CSS + shadcn/ui
    • 数据存储: PostgreSQL/MySQL
    • 用户认证: Clerk/Supabase/待定
    • 定时任务:Vercel Cron/自建服务器

    选型一:Vercel+Supabase ,存在问题:

    1. vercel 这种 serverless 服务,扣费按流量,可能出现一夜之间被 ddos 之后产生天价账单的问题
    2. 服务同时面向国内和国外用户,vercel 容易被墙

    选型二:阿里云香港 ECS/轻量服务器+阿里云香港 RDS Mysql ,存在问题:

    1. 价格较贵( RDS MySQL 99/年 + 阿里云香港服务器约 100/月)
    2. 自建服务器维护前端+后端+定时任务,较为繁琐
    3. 不确定服务部署在阿里云后访问 Clerk/Supabase 之类的用户登录认真 SDK 服务,带宽如何
    4. 阿里云 99/年的 RDS MySQL 只有 50GB 存储空间,对于我的应用场景来讲,不一定够用,229/年 100GB 的 PostgreSQL 只有新加坡节点,不能用香港节点

    各位大佬有没有啥思路或者建议,请多多指教~

    十分感谢!

    24 条回复    2025-02-13 17:11:57 +08:00
    hulami
        1
    hulami  
       3 天前   ❤️ 1
    我的一个项目主要是海量数据筛选搜索。主要客户是海外,国内也可以用(但是访问速度没那么快)。
    部署在 Cloudflare Pages ,用的是 SvelteKit, Tailwindcss 。用户认证是 Clerk(比 supabase 更节省开发时间!)
    原始数据存在 AWS Postgres, 每天的定时数据处理用的是 AWS EC2 和 Lambda. 处理好的数据会存到 Cloudflare D1 SQLite 和 Cloudflare R2 Storage.
    数据筛选搜索服务是自己在便宜 VPS 上搭建的。网站会从 D1 或者 R1 上拉取一些必要的用户数据和目标数据,国外非常快(但是亚洲的 D1 服务器好像在新加坡,在中国速度是可接受的),网站不会与 AWS Postgres 交互。
    网站有些服务需要队列,用的是 Cloudflare Queue.
    发邮件用的是 Resend.
    轻量的任何和定时任务用的是 Cloudflare Workers.

    每个月在 Cloudflare 上花的钱不超过 10 美金。大头主要在 AWS Postgres 和 搭建搜索服务的 VPS 上。其他服务我是尽可能的使用 Cloudflare 的,太便宜了,而且不担心账单爆炸,当然服务也非常稳定。
    希望给你些参考
    weixind
        2
    weixind  
       3 天前
    随便先跑起来,有用户再说,别纠结在这一块。就好比写博客不要纠结在“博客搭建”。
    商业化项目成本最低的一块一定是服务器相关内容。
    flmn
        3
    flmn  
       3 天前
    Vercel 的不建议
    YingJieZ
        4
    YingJieZ  
    OP
       3 天前
    @hulami 十分感谢大佬的回复。我的业务架构跟你的十分相似,看样子你的整体结构大部分都是使用 Cloudflare 搭建的,我了解了一下 Cloudflare Pages 确实可以实现前端部署的问题,workers 可以实现定时任务和后端数据,后端服务可以用一台 VPS 完成,我觉得这套架构跟我上述方案二有些相似。

    不过我想知道的是,Cloudflare Pages 在大陆访问是不是经常被墙啊?
    YingJieZ
        5
    YingJieZ  
    OP
       3 天前
    @weixind 感谢你的回复。

    商业化项目确实是跑起来再说,但是由于我这个是个人项目,前期没收入的情况下对成本也比较敏感,不想一上来就砸进去上千块,所以对于基础设施选型上还是需要斟酌一下,选择一套能够满足使用场景的成本最低的。
    YingJieZ
        6
    YingJieZ  
    OP
       3 天前
    @flmn 可否展开说说? Vercel 是有什么坑吗?
    YingJieZ
        7
    YingJieZ  
    OP
       3 天前
    为啥我这帖子没几个人回复,全是收藏的,这套方案按理说应该是很成熟的,我现在纠结的就是基础设施服务商的问题
    p1gd0g
        8
    p1gd0g  
       3 天前
    盈利吗?盈利的话我是不在乎这点钱的,怎么快怎么来,功能和内容更重要。

    仅分享:
    前端: flutter webgl ,腾讯云的 cdn ,七牛的源站。试过免费的 cloudflare page 和 firebase host ,国内效果不太行。
    后端: golang 搭在外网 vps 上,cloudflare 的 dns (国内个别用户访问不到)。
    数据存储:目前不需要。
    用户认证:目前不需要。国内也没找到合适的,接微信之类的很麻烦。

    要做国内的话,要确保一些国外服务国内能顺利访问,这里踩了不少坑。
    Huelse
        9
    Huelse  
       3 天前
    最重要的是你的数据,多半要考虑用户访问或降低成本之类的需要迁移,以这个为目标选型即可
    gorvey
        10
    gorvey  
       3 天前
    https://blog.uuanqin.top/p/55893d1/
    国外就用 cloudflare 吧
    国内你看着办吧
    YingJieZ
        11
    YingJieZ  
    OP
       3 天前
    @gorvey 现在的问题就是我不想在国内做网站备案(因为太麻烦而且不允许个人收款),但是又想同时保证国内外访问速率,同时整套方案成本尽可能低
    YingJieZ
        12
    YingJieZ  
    OP
       3 天前
    @Huelse 数据库确实是大头,不过现在考虑的不是迁移的问题,主要是考虑全套架构使用下来的便利程度以及成本因素
    hzzhzzdogee
        13
    hzzhzzdogee  
       3 天前
    cloudflare 国内访问质量太差了, 重视国内市场的话不太建议
    YingJieZ
        14
    YingJieZ  
    OP
       3 天前
    @hzzhzzdogee 是的,确实是担心这个问题
    XTTX
        15
    XTTX  
       2 天前
    你先顾好一头吧, 国内国外完全是两码事。i18n, 推广,ip, 收费完全不同。 后台没有什么特别复杂的功能,supabase 一把撸
    YingJieZ
        16
    YingJieZ  
    OP
       2 天前
    @XTTX 感谢指点。看了一圈最后决定用阿里云自建服务器+RDS 数据库的方案了,自己维护麻烦一些但是有经验不容易踩坑,serverless 之前没用过怕后期有坑
    southwolf
        17
    southwolf  
       2 天前 via Android
    额 一年一千的服务器成本不算贵了吧。。。你又担心 50g 不够用,证明业务量还是有的 azure 阿里云国内外访问应该都可以,套个 CDN. 应该也不至于太慢
    southwolf
        18
    southwolf  
       2 天前 via Android
    云平台自己也都有一些定时任务之类的产品 可以看看
    YingJieZ
        19
    YingJieZ  
    OP
       2 天前
    @southwolf 好的,感谢指点,我去看看
    alexmy
        20
    alexmy  
       2 天前
    saasfly ,可以去看看这个,之前看别人推的,我镜像保存了。
    lan894734188
        21
    lan894734188  
       2 天前
    先服务容器化,服务拉起扩容简易后,怎么扩容都方便.
    YingJieZ
        22
    YingJieZ  
    OP
       2 天前
    @lan894734188 现在还是单体应用,正要上容器需要解决的问题就多了。。。
    YingJieZ
        23
    YingJieZ  
    OP
       2 天前
    @alexmy 好的,感谢指引,我去了解一下
    lan894734188
        24
    lan894734188  
       1 天前
    @YingJieZ 单体也可以容器化. 容器化的目的是快速、规范化部署.
    关于   ·   帮助文档   ·   博客   ·   API   ·   FAQ   ·   实用小工具   ·   2807 人在线   最高记录 6679   ·     Select Language
    创意工作者们的社区
    World is powered by solitude
    VERSION: 3.9.8.5 · 22ms · UTC 08:20 · PVG 16:20 · LAX 00:20 · JFK 03:20
    Developed with CodeLauncher
    ♥ Do have faith in what you're doing.