各位好
小弟為全職接案的軟體工程師
目前web專案中除了需要展示、測試
也有些客戶是連同伺服器架設、維護也委託我負責
之前在有限的時間內,在Azure、AWS、GCP當中抉擇
以定價來看GCP便宜非常多,所以就選定其作為多個專案的雲端伺服器
本人技術主要專攻.NET(微軟派),在微軟推出.Net core之後,
其跨平台的好處(不用再被IIS與Windows Server綁死)
讓我毫不猶豫就將所有ASP.NET專案轉投.Net Core懷抱
而.Net Core MVC的Web專案也是我目前主要的收入來源
在將這些專案部署上GCP的過程,自行摸索了一下,大概可以分成
1. 使用App Engine(GAE)
透過GAE的docker特性,部署完全是一件無需動腦的過程,非常輕鬆
但因.Net core專案部署到其上,只能設定為「flexible」類型的執行個體(另一種為
standard)
所以費用稍高,經一小段時間統計下來,1個GAE的.Net Core Web執行個體配上1個最低等
級的MySQL執行個體
平均一天下來的費用約台幣$150~$200之間,換算每個月平均約$4500~$6000之間
算是個不符成本的選擇
但因一些技術上的問題(下詳述)
以及快速方便盡快交件的時間壓力
目前本人的所有GCP專案都是以這模式運作中
(所以也才會有這篇請教的文章)
2. 使用Compute Engine(GCE)
原本一開始是打算在GCE上開Linux VM,
再自行設定、部署.Net Core Web與MySQL server
但卡在關鍵問題:.Net Core MVC的Session機制在GCE上常會出錯
也就是說「需要登入權限控管」的系統,常常登入後馬上就遺失Session
有查過國外的文獻與討論,簡易的排除方式不適用我的狀況
而另有神人提供相對複雜的解法,確實符合邏輯也應該可解決問題
但礙於時間壓力,便沒多花時間去嘗試
所以目前都使用GAE
不過就我目前所知,GCE相對GAE,是便宜不少的