Re: [請益] AWS MySQL cluster

看板Soft_Job作者 (..)時間9年前 (2015/05/31 22:13), 編輯推噓3(302)
留言5則, 2人參與, 最新討論串2/2 (看更多)
: 大大您好專業! 我目前是用MariaDB 10.0.x的版本 您客氣了,我只是個小公司的MySQL DBA罷了 : 原因是之前在弄網站的時候也沒想到會搞到這步田地 : AP和DB都放同一個instance 用EC2 + EBS就開寫了 以開發速度為主 : 除了美工之外 : 伺服器&程式選擇 + AWS架站 + 前後端程式 + DB schema 都是我一個人弄的 辛苦的DevOP的感覺,好處是你可以一手掌握一切,我必須最提醒的是資安的部分 Security group怎麼設定、IAM有沒有設好、MFA有設定嗎、程式的key怎麼設定 上面這些我覺得比擔心架構都還要優先 : 不過未來流量大的時候就不能這樣搞了 所以想用一個可擴充性高的辦法 : 初步想法就是AP和DB先分離 然後AP用AWS dynamic scaling的方式擴充 Auto scaling= Clound Watch+ELB+AMI 說真的不是這麼簡單做的 : DB方面 我的確是打算用Galera Cluster 不過一開始也只打算跑一台 一台的DB是非常脆弱的,完全符合Single point failing 的狀態,掛了一台DB 整個service down : 如果MariaDB沒辦法migrate到AWS RDS的話 也只能用Galera Cluster 我是沒說不能Migration過去RDS,所謂的不相容指的是檔案上不相容 最傳統的mysqldump&restore 是可以解決你搬家的問題 : 這樣的話 您說跑cluster至少要3 nodes 有沒有辦法是目前先跑一台 : 之後爆量後可以擴展至三台呢? 標準架構是3 nodes,也可以做2 nodes+ Quorum 但我跟SA討論過後還是覺得3 nodes好 Galera Cluster是一個every done can write 的Cluster,你的程式有想到嗎? 以我粗淺的程式使用它的知識,當遇到Dead lock的時候code必須有retry 的機制 : 網站已經是一個production的狀態了 : 我的目標是先把架構弄好 之後交給其他人管的時候不會有改不動的情形 : 心中的藍圖: AP -> Cache (maybe Redis? 還不知道要不要跟AP同一台) -> DB 現在應該很流行用message queue的架構,來避免衝DB的狀況。但我對程式不熟 沒辦法給建議 : 目前在思考到底要用哪種方法擴充DB 請問有甚麼建議呢? : 感謝大大回覆!!! 目前在AWS上大概就是RDS,Galera Cluster,NDB這幾種在Application level的HA選擇 順便回答一下推文的大大提醒的不要用MyISAM的事情,在5.5後預設的DB Engine 已經是InnoDB了,除非特別選MyISAM不然不會有用錯的狀況。早期在5.5.8前 經常遇到RD開table的時候沒有加上engine=innodb,就長出許多MyISAM的table -- ※ 發信站: 批踢踢實業坊(ptt.cc), 來自: 122.117.23.102 ※ 文章網址: https://www.ptt.cc/bbs/Soft_Job/M.1433081626.A.A02.html

05/31 23:02, , 1F
感謝大大分享 或許土炮一個Galera Cluster比較能掌控系統
05/31 23:02, 1F

05/31 23:02, , 2F
AP端靠auto scaling 不過DB端要開始看HAProxy了 真頭痛
05/31 23:02, 2F

05/31 23:09, , 3F
覺得自己一條龍服務有點囧
05/31 23:09, 3F

05/31 23:09, , 4F
下班時段都拿來搞這個就飽了
05/31 23:09, 4F

06/01 23:19, , 5F
HAProxy + Percona XtraDB Cluster 應該符合你的需求
06/01 23:19, 5F
文章代碼(AID): #1LQnSQe2 (Soft_Job)
文章代碼(AID): #1LQnSQe2 (Soft_Job)