如何使用 Amazon Elastic Compute Cloud (Amazon EC2) 自動擴展排程動作主動增加特定事件的容量並對其進行故障排除?
解決方法
您可以使用排程動作,根據流量模式或預期的未來流量擴展容量。例如,您可能有一個應用程式會在每天相同的兩小時期間內經歷流量增加。或者,您可能正在計劃舉辦即將到來的一次性事件,預計在幾分鐘內流量會大幅飆升。排程動作會在您指定的時間執行 (UTC)。擴展會根據您為最小、最大和所需容量設定的值進行。
為 Auto Scaling 群組建立排程動作
- 開啟「 Amazon EC2 主控台」。
- 在導覽窗格中,選擇「 自動擴展」。
- 選取 Auto Scaling 群組,您將在其中設定排程動作。
- 在「 自動擴展 」索引標籤的「 已排程動作」下,選擇「 建立排程動作」。
- 指定排程動作的名稱。
- 根據您的使用案例指定 Auto Scaling 群組的大小。您必須至少指定下列其中一個參數:
對於「 最小」,指定群組中所需的最小執行個體數目。
針對「 最大」,指定群組中可存在的最大執行個體數目。
**注意:**除了排程動作之外,還有擴展政策時,設定「最小」和「最大」參數會很有幫助。即使在排程動作觸發後觸發擴展政策 (向外擴展或向内擴展),執行個體數目必須在最小/最大範圍內。
對於「 所需」,指定事件所需的執行個體數目。
- 根據您的使用案例指定觸發排程動作的排程。
**對於一次性事件:**為「 週期性」選擇「 一次」。對於「 開始時間」,指定事件的時間戳記 (日期和時間)。
**對於週期性事件:**選取週期性間隔 (例如 5 分鐘或 1 天)。對於「 開始時間」,指定第一次執行排程動作的時間戳記 (日期和時間)。如果您指定「 週期性 」和「 開始時間」,服務會在開始時間執行動作,然後根據指定的週期執行動作。(選擇性) 指定「 結束時間」,以設定週期性排程動作的結束日期。
**注意:**如果無法使用所需的週期性間隔選項,請為「 週期性」選擇「 cron」。然後,使用 Unix cron 語法格式為所需排程撰寫自訂 cron 運算式。
- 選擇「 建立」。
疑難排解排程動作的問題
如果排程動作未如預期般觸發:
- 檢查 Auto Scaling 群組的活動歷史記錄,了解預期觸發排程動作的時間段。如果沒有相關活動,請檢閱排程動作的設定。確認週期性模式和開始時間是按預期設定的。
- 對於週期性動作: 如果您指定了結束時間,排程動作會在結束時間過後自動移除。若要確認是否已指定結束時間,請檢查 AWS CloudTrail API 日誌以了解設定排程動作的時間。檢查是否在 CloudTrail 中取得 「 排程多日期群組動作 」API 呼叫。
如果您在日誌中看到 API,則必須建立新的排程動作才能繼續排程擴展。
- 請注意,設定的開始時間和實際開始時間之間可能會延遲幾秒鐘。
如果已觸發排程動作,但未進行必要的變更:
- 檢查是否有暫停的程序 (例如「啟動」或「終止」)。如果有任何暫停的程序,您可以「 繼續執行」。
- 如果已設定「 動態擴展政策」: 檢查活動歷史記錄是否有動態擴展政策引起的任何擴展事件。在排程動作開始時間之前和之後的幾分鐘檢查歷史記錄。如果有此類活動,則可能已覆寫已排程的動作。
- 檢查排程動作開始時間的活動歷史記錄。如果設定在類似時段內觸發其他排程動作,請確認該動作不會影響或覆寫新的排程動作。如有必要,請更新您的排程動作以解決這些衝突。
- 檢查任何失敗或取消的「啟動」或「終止」活動的活動歷史記錄。如果找到,請展開失敗/取消的事件,並檢閱說明以取得更多詳細資訊。如需疑難排解這些錯誤的詳細資訊,請參閱 Amazon EC2 自動擴展的疑難排解。
**注意:**當您知道一次性或週期性事件的時間範圍時,使用排程動作主動擴展 Auto Scaling 群組會很有幫助。如果您不事先知道事件的時間範圍,可以使用預測擴展功能。
相關資訊
建立和管理排程動作 (AWS CLI)