正確答案: 建立一個包含將記錄複製到 S3 的指令碼的 AWS Systems Manager 文件。建立 Auto Scaling 生命週期掛鉤和 EventBridge 規則來偵測 Auto Scaling 生命週期事件。在 autoscaling:EC2_INSTANCE_TERMINATING 時,叫用 Lambda 函數,該函數會呼叫 Systems Manager SendCommand API 來執行文件以複製記錄,然後向 Auto Scaling group 傳送 CONTINUE 以繼續終止。.
為什麼這是答案
正確答案透過 Auto Scaling 生命週期掛鉤和 EventBridge 規則,在 EC2 實例終止前觸發 Lambda 函數。此 Lambda 函數會使用 Systems Manager SendCommand API 執行預先定義的 Systems Manager 文件,該文件包含將日誌複製到 S3 的指令碼。完成日誌複製後,Lambda 函數會向 Auto Scaling group 發送 CONTINUE 訊號,允許實例繼續終止。這確保了日誌在實例終止前被可靠地複製。
選項一錯誤,因為它建議在日誌複製後使用 AWS SDK 手動終止實例,這會繞過 Auto Scaling group 的正常終止流程,可能導致不一致。選項三錯誤,因為它依賴於在實例終止後觸發使用者資料指令碼,這在實例已經關機的情況下是不可行的,且將複製間隔縮短並不能保證在終止前捕獲所有日誌。選項四錯誤,因為它建議在日誌複製後發送 ABANDON 訊號以終止實例,這與 ABANDON 的預期行為(停止終止)相矛盾。