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