剛好之前有EC2主機有資料移失做個分享:
Q.Instance/system status checked failed 異常原因,可能因以下原因造成:
網路連線中斷/系統電力中斷/實體主機的軟體問題/實體主機上會影響網路連線的硬體問題
Q. 什麽重啟方式會導致數據丟失?
若您只是 reboot instance,資料並不會遺失。只要您有 stop 您的機器,由於此行為會導致實體機器更換,因此您的 instance store 資料也會遺失。僅有存放在如同 EBS、EFS 中的資料,才會被一起遷移至新的機器。
所以:重要的數據,請存放於 Amazon S3、Amazon EBS 或 Amazon EFS,而 "執行個體存放區(instance-store)" 只適合暫時存放數據,不適合存取重要的檔案。
如工作上接手管理AWS- EC2 名字帶有 "DB" 的字樣的 EC2 需確認使用到 c5d 及 i3 機器,如有重要資料需要保存,也請務必記得另外存放一份到 S3、EBS、EFS ...等永久的儲存空間中,以免有更多資料遺失。
EC2重啟後 disk無法掛載
A:宿主機(physical host)" 出現硬件的非預期故障(Hardware issues)時",資料必然會不見。 "沒有任何方式" 可以恢復您在 "執行個體存放區(instance-store)" 的數據。
1》reboot是指系統層的reboot指令嗎? aws後台 重啟實例 = 系統層 reboot指令 是嗎?
是的,不論是機器內 OS 執行 reboot,或是透過 AWS console 點選 "重啟實例 ",皆不會更換您的宿主機。由於宿主機不會更換,因此 instance store 及其資料不會丟失。
2》如果在系統層 執行shutdown指令,數據會丟失嗎?
會,shutdown 指令如同在 AWS console 點選 "停止實例",會更換宿主機。
由於宿主機會更換,instance store 也會被更換,導致其資料會丟失。
3》如果在系統層 執行shutdown指令 + aws後台 執行 啟動現有實例,數據會丟失嗎?
會,如同 2》說明,shutdown 指令如同在 AWS console 點選 "停止實例",會更換宿主機。
由於宿主機會更換,instance store 也會被更換,導致其資料會丟失。
建議可針對各台 EC2 的 system health check 進行監控,並在有異常時透過 SNS 寄發通知 [1]。
以下實作方式:
(1) 選取您想要監控的 EC2 機器,選擇狀態檢查標籤,然後選擇動作 , 建立狀態檢查警示。
(2) 警示通知可以選取現有 Amazon SNS topic,或是輸入名字以新增 SNS topic
(3) 在 Type of data to sample,可以選擇 Status check failed:system 以只檢查底層硬件故障,或保留 Status check failed:either 以監控所有的檢查失敗。
(4) 若您想在 cloudwatch dashboard 上監控,可以選擇 Add to dashboard (新增至儀表板)
建立完 cloudwatch alarm 之後,您就能透過 cloudwatch alarm 發送通知到 SNS 上。
並將信件寄送至 SNS topic 訂閱的信箱中 [2]。
參考官方說明:
[2] https://docs.aws.amazon.com/zh_tw/sns/latest/dg/sns-create-subscribe-endpoint-to-topic.html