2020ironman 12th – Modern Web – Day14 – AWS MYSQL 的選擇與評估

分享

幾種建置方式

通常我們的建置會有幾種作法

  • VM自建
  • PAAS服務
  • Container

VM

VM的作法其實就是AWS EC2

說實在的不是很建議因為備份還原等等機制都要自己做

我還有遇過客戶做了mariadb cluster結果只要讀寫超過一個瓶頸無論超過幾台就自動解散組不回去的狀況

但是勝在便宜可控制性高

這邊唯一要注意的是讀寫的部分是受到AWS EC2中的EBS所控制

PAAS服務

PAAS服務的MYSQL在AWS中通常指的是RDS MYSQL

這是指AWS利用EC2幫你做好的服務

你無法碰到底層但是AWS的調教功力絕對比你我都好

但是一樣會受到AWS EC2中的EBS所控制

另外還有一種資料庫是AWS特色服務 Amazon Aurora

他是一種大型storage架構出來的的資料庫

由下圖可一窺架構之一二

他的特色是已經做完讀寫分離且讀的部分已經透過proxy幫你做好分配

且讀取資源可做到自動擴展

讀五台不夠就開十台來跟你拼了

同時他每台再不考慮SQL效能之下都可以有200K/800K的奇特表現

算是雲端界的讀寫效能之王

缺點因該是單價較貴

而且收費上面額外計算讀寫次數之費用

Container

最後再說說Container

基本上有些新創會搞這個

但是這是個很蠢的行為

不是不能用而是泛用性太低

如果是一個較高負載的系統

會倒至Container不斷的死亡

就算資源給很多也是相同

這是由於Container架構上的再次虛擬化架構導致效能降低額出現的而外影響

非必要不要用這招

Read more

雲端架構延遲問題:為什麼AP與DB不能放太遠?

雲端與地端的架構差異認知不足導致的性能陷阱 前言 許多企業在上雲初期,經常基於成本考量或錯誤認知,將應用程式伺服器(AP)與資料庫(DB)部署在不同區域。這種做法在地端環境中影響較小,但在雲端環境中卻會造成嚴重的性能問題。本文透過台北-東京的實際案例,說明距離對雲端架構的致命影響。 核心問題: * 地端思維:同個機房內不同區域延遲可忽略 * 雲端現實:跨區域延遲可達數十毫秒 * 結果:連線建立時間從毫秒級暴增到秒級 1. 地端 vs 雲端的延遲差異 1.1 地端環境的延遲特性 傳統地端機房: 同機房不同機櫃:RTT < 1ms 同城市不同機房:RTT < 5ms 同國家不同城市:RTT < 20ms 地端架構師的經驗: * AP和DB分別放在不同機櫃:幾乎無延遲影響 * 災備機房放在不同城市:RTT約10-15ms,可接受 * 習慣性認為「網路延遲不是問題」

By Albert Yu