aws集群重启_使用自动伸缩组在AWS中运行安全数据库集群
aws集群重啟
當(dāng)您必須在AWS上運(yùn)行可擴(kuò)展應(yīng)用程序時(shí),您的數(shù)據(jù)庫也必須是可擴(kuò)展的。 擴(kuò)展無狀態(tài)應(yīng)用程序?qū)痈菀?#xff0c;在無狀態(tài)應(yīng)用程序?qū)又?#xff0c;每個(gè)節(jié)點(diǎn)幾乎都是一次性的-即使3節(jié)點(diǎn)集群中的一個(gè)節(jié)點(diǎn)發(fā)生故障,您也可以啟動(dòng)另一個(gè)節(jié)點(diǎn),而不會(huì)注意到。
數(shù)據(jù)庫層是有狀態(tài)的,因此存在丟失數(shù)據(jù)的風(fēng)險(xiǎn)。 僅擁有一個(gè)節(jié)點(diǎn)不是一個(gè)選擇,因?yàn)橐粋€(gè)節(jié)點(diǎn)總是會(huì)宕機(jī),這意味著停機(jī)。 因此,您需要一個(gè)集群中的多個(gè)節(jié)點(diǎn),以確保您的應(yīng)用程序具有高可用性和容錯(cuò)能力(我不會(huì)在術(shù)語上有所差異)。
我在說什么數(shù)據(jù)庫? 沒關(guān)系 它可以是SQL或NoSQL數(shù)據(jù)庫–每個(gè)數(shù)據(jù)庫都有某種形式的集群。 無論是主動(dòng)-主動(dòng)還是主動(dòng)-被動(dòng)。
現(xiàn)在,特別是對(duì)于AWS,您可以選擇RDS(或其他托管選項(xiàng)),它將為您處理。 但是,如果沒有托管選項(xiàng)(例如Cassandra),或者您覺得托管選項(xiàng)沒有給您足夠的控制權(quán),或者價(jià)格更高,或者您所需的版本不可用,則您必須自己管理數(shù)據(jù)庫層。 我不會(huì)詳細(xì)介紹如何配置特定于數(shù)據(jù)庫的群集-您應(yīng)該查看特定數(shù)據(jù)庫的文檔。 我將嘗試提供一些技巧,以提示如何安全地運(yùn)行支持?jǐn)?shù)據(jù)庫集群的基礎(chǔ)架構(gòu)。
這里是自動(dòng)縮放組。 它們?cè)试S您有一組相同的節(jié)點(diǎn)(基于啟動(dòng)配置),并且ASG通過在現(xiàn)有節(jié)點(diǎn)發(fā)生故障時(shí)啟動(dòng)新節(jié)點(diǎn)來確保您始終擁有至少X個(gè)健康節(jié)點(diǎn)(它們可以自動(dòng)殺死不健康的節(jié)點(diǎn)(即,節(jié)點(diǎn))無法響應(yīng)自動(dòng)運(yùn)行狀況檢查))。
這對(duì)于應(yīng)用程序節(jié)點(diǎn)來說真是太棒了,但是對(duì)于數(shù)據(jù)庫節(jié)點(diǎn)可能是個(gè)問題。 如果數(shù)據(jù)庫節(jié)點(diǎn)一段時(shí)間沒有響應(yīng),則不一定要?dú)⑺浪?這就是為什么我在下面匯總了一些避免陷阱的提示的原因。 不幸的是,其中許多服務(wù)無法通過CloudFormation使用,因此您必須手動(dòng)進(jìn)行操作。 并對(duì)其進(jìn)行記錄,以防萬一您需要重新創(chuàng)建堆棧時(shí)不會(huì)忘記:
- 將最小節(jié)點(diǎn)數(shù)設(shè)置為1。它可以防止在嘗試其他不相關(guān)的ASG時(shí)意外地將“所需”計(jì)數(shù)設(shè)置為0。
- 確保已為每個(gè)實(shí)例啟用終止保護(hù),并且已根據(jù)ASG啟用了擴(kuò)展終止保護(hù)。
- 在ASG設(shè)置中,有“懸浮過程”。 確保暫?!敖K止”和“替換不健康”。
- 確保在啟動(dòng)配置中,不會(huì)終止EBS卷。 考慮到您已禁用所有終止選項(xiàng),為什么需要它? 好吧,由于底層主機(jī)的問題,終止有時(shí)可能會(huì)發(fā)生,或者可能安排將節(jié)點(diǎn)停用
- 如果需要從EBS卷還原,請(qǐng)執(zhí)行以下操作:1.讓ASG產(chǎn)生一個(gè)新節(jié)點(diǎn)2.將“啟動(dòng)”暫時(shí)添加到已暫停的操作中3.分離節(jié)點(diǎn)的根卷4.將舊的EBS卷附加到/ dev / xvda 5.啟動(dòng)節(jié)點(diǎn)。
- 設(shè)置生命周期策略(通過CloudFormation或手動(dòng))以對(duì)數(shù)據(jù)庫EBS卷進(jìn)行備份。 確保為卷設(shè)置了正確的標(biāo)簽(并且只能手動(dòng)完成)
- 確保ASG可以在多個(gè)可用區(qū)域中生成實(shí)例(以防實(shí)例掉線)
如果您遵循此步驟,則您的自動(dòng)伸縮組將不會(huì)完全像自動(dòng)伸縮組那樣運(yùn)行。 在負(fù)載增加的情況下,您仍然可以配置自動(dòng)增加節(jié)點(diǎn)數(shù),但是對(duì)于數(shù)據(jù)庫層來說,其余功能很少是一個(gè)好主意–您寧愿解決現(xiàn)有計(jì)算機(jī)上的數(shù)據(jù)庫問題,即使暫時(shí)停止也是如此。不只是產(chǎn)生新的。
但是你應(yīng)該擁抱失敗。 即使具有所有終止保護(hù),您也必須假設(shè)一切都可能失敗并消亡,并且應(yīng)該有一條清晰的路徑來還原節(jié)點(diǎn)。
翻譯自: https://www.javacodegeeks.com/2020/02/running-a-safe-database-cluster-in-aws-with-auto-scaling-groups.html
aws集群重啟
創(chuàng)作挑戰(zhàn)賽新人創(chuàng)作獎(jiǎng)勵(lì)來咯,堅(jiān)持創(chuàng)作打卡瓜分現(xiàn)金大獎(jiǎng)總結(jié)
以上是生活随笔為你收集整理的aws集群重启_使用自动伸缩组在AWS中运行安全数据库集群的全部?jī)?nèi)容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: spring 消息传递机制_Spring
- 下一篇: apache derby_Apache