關於成個blog既infra 主要有幾個考慮點:
最後諗到幾個方案
第一個係用Google Cloud Platform(下稱GCP)
用佢既firebase + cloud sql + cloud run
firebase 可以用黎host 網頁
但係要host next.js寫既野就要用埋firebase functions
主要係提供api俾返個網call返
google 亦有佢既fire storage 去儲返相呀片呀之類既resources
仲有最重要既係firebase 同firebase storage 都好平,價錢唔需要點睇
唔好處係hosting 最近得singapore / taiwan
cloud sql 就固名思義係一個host database 既services
對比其他competitor 就相對地平
用shared resources 既話最平既spec係USD $11 一個月
cloud run
用黎host dockerized 左既程式,即係今次用到既strapi
主要賣點係方便,幾時轉個virtual server既spec都得
自動set好哂domain
user亦都可以唔駛用ubtuntu cli 去整台server
寫完個程式docker左去mount上去就有得用
缺點係都貴 最平spec既機行一個月要USD $9
而我有機會唔止run一個strapi container
行strapi min. requirement需要2GB 2vCPU會再大食d同貴d
所以行兩個既話就每月USD $100
對窮撚如我都幾大負擔
另一個方案係用aws
aws elastic beanstalk + aws s3 + aws rds
elastic beanstalk係拎黎快速deploy application
以前有用過既經驗
可以寫完個app zip左直接upload上beanstalk
方便到唔需要dockerize 隻app 會幫你搞哂所有野
唔好處係佢會逼你用aws 既elastic load balancer
which is 貴 (冇乜流量都會charge $20 usd / month)
aws s3 就同firebase storage一樣係用黎擺資源
價錢一樣唔需要點擔心
最後係aws rds,就係database services
99點9999% uptime既services
scalable,隨時upgrade都得
但價錢亦都有返咁上下
最後一個方案
用vercel 既hosting services + aws ec2
我係整呢個blog既開頭其實係用firebase
奈何nextjs同google都幾八字不合
一定會有無數既問題彈出
所以最尾試左轉去vercel which is next.js既呀媽
deploy上去係極之方便
push上github 然後vercel就會自動搞哂所有野
亦唔會有firebase functions 同nextjs夾唔到api既白痴問題出現
最重要係免費 + 有香港hosting
vercel 而家仲有埋postgresql 既services
可惜未有hong kong server
之後就係aws ec2
其實即係virtual server
我可以租完返黎係上面裝docker run strapi + sql database
睇返price calculator
t3.small 既spec (2vcpu + 2gb memory)
3年約USD $205 即係每月$6 USD 平!
唔好處就係所有野都要自己搞
要自己裝docker 自己main SSL, nginx等等
但係為左錢我ok
最後總結一下 3個方案
database $11 USD + cloud run $50 USD = $61 USD / month
database $50 USD + $20 USD load balancer = $70 USD / month
server $6 usd + vercel hosting = $6 USD / month
我諗都唔駛諗用邊個方案
第3最大問題就係stability
自己maintain既server好難保證佢長期uptime
但對我呢d 微型既services 完全唔係問題!
最重要都係$$$$$$
下一篇會講下點樣用next.js build呢個blog