定義排程事件的事件時段 - Amazon Elastic Compute Cloud

定義排程事件的事件時段

您可以為重新啟動、停止或終止 Amazon EC2 執行個體的排程事件定義自訂每週重複的事件時段。您可以將一或多個執行個體關聯到事件時段。如果已計劃這些執行個體的排程事件,AWS 會在相關聯的事件時段中排程事件。

您可以使用事件時段,透過指定在工作負載離峰期間出現的事件時段,將工作負載可用性最大化。您也可以調整事件時段與內部維護排程。

可以透過指定一組時間範圍來定義事件時段。最短時間範圍為 2 小時。合併的時間範圍總計必須至少 4 小時。

您可以使用執行個體 ID 或執行個體標籤,將一或多個執行個體與事件時段建立關聯。您也可以使用主機 ID,將專用執行個體與事件時段建立關聯。

警告

事件時段僅適用於停止、重新啟動或終止執行個體的排程事件。

事件時段適用於:

  • 快速排程事件和網路維護事件。

  • 未排程的維護,例如 AutoRecovery 和未計劃的重新開機。

考量

  • 所有事件時段的時間皆為 UTC 格式。

  • 最短每週事件時段為 4 小時。

  • 事件時段內的時間範圍必須至少為 2 小時。

  • 只有一個目標類型 (執行個體 ID、專用執行個體 ID 或執行個體標籤) 可以與事件時段關聯。

  • 一個目標類型 (執行個體 ID、專用執行個體 ID 或執行個體標籤) 只能與一個事件時段關聯。

  • 事件時段最多可與 100 個執行個體 ID 或 50 個專用執行個體 ID 或 50 個執行個體標籤相關聯。執行個體標籤可與任意數量的執行個體關聯。

  • 每個 AWS 區域最多可以建立 200 個事件時段。

  • 與事件時段相關聯的多個執行個體可能會同時發生排程事件。

  • 如果 AWS 已經排程事件,修改事件時段不會變更排程事件的時間。如果事件有截止日期,您可以重新排程事件

  • 您可以在排程事件之前停止並啟動執行個體,這樣會將執行個體遷移到新主機,而排程的事件將不再發生。

檢視事件時段

您可以使用下列其中一種方法來檢視事件時段。

Console

使用主控台檢視事件時段

  1. https://console.aws.amazon.com/ec2/ 開啟 Amazon EC2 主控台。

  2. 在導覽窗格中,選擇 Events (事件)。

  3. 選擇 Actions (動作)、Manage event windows (管理事件時段)。

  4. 選取事件時段以檢視其詳細資訊。

AWS CLI

使用 AWS CLI 來描述所有事件時段

使用 describe-instance-event-windows 命令。

aws ec2 describe-instance-event-windows \ --region us-east-1

預期的輸出結果

{ "InstanceEventWindows": [ { "InstanceEventWindowId": "iew-0abcdef1234567890", "Name": "myEventWindowName", "CronExpression": "* 21-23 * * 2,3", "AssociationTarget": { "InstanceIds": [ "i-1234567890abcdef0", "i-0598c7d356eba48d7" ], "Tags": [], "DedicatedHostIds": [] }, "State": "active", "Tags": [] } ... ], "NextToken": "9d624e0c-388b-4862-a31e-a85c64fc1d4a" }

使用 AWS CLI 來描述所有特定事件時段

使用 describe-instance-event-windows 命令與 --instance-event-window-id 參數來描述特定事件時段。

aws ec2 describe-instance-event-windows \ --region us-east-1 \ --instance-event-window-id iew-0abcdef1234567890

使用 AWS CLI 來描述符合一個或多個篩選條件的事件時段

使用 describe-instance-event-windows 命令與 --filters 參數。在以下範例中,instance-id 篩選條件用於描述與指定執行個體相關聯的所有事件時段。

使用篩選條件時,它會執行直接比對。不過,instance-id 篩選條件是不同的。如果執行個體 ID 沒有直接匹配項,則會返回到與事件時段的間接關聯,例如執行個體的標籤或專用執行個體 ID (如果執行個體位於專用執行個體上)。

如需支援的篩選條件清單,請參閱 AWS CLI 參考中的 describe-instance-event-windows

aws ec2 describe-instance-event-windows \ --region us-east-1 \ --filters Name=instance-id,Values=i-1234567890abcdef0 \ --max-results 100 \ --next-token <next-token-value>

預期的輸出結果

在下列範例中,執行個體位於與事件時段相關聯的專用執行個體上。

{ "InstanceEventWindows": [ { "InstanceEventWindowId": "iew-0dbc0adb66f235982", "TimeRanges": [ { "StartWeekDay": "sunday", "StartHour": 2, "EndWeekDay": "sunday", "EndHour": 8 } ], "Name": "myEventWindowName", "AssociationTarget": { "InstanceIds": [], "Tags": [], "DedicatedHostIds": [ "h-0140d9a7ecbd102dd" ] }, "State": "active", "Tags": [] } ] }

建立事件時段

您可以建立一或多個事件時段。對於每個事件時段,您可以指定一個或多個時間段。例如,您可以建立一個事件時段,其時間段為每天凌晨 4 點開始,持續 2 小時。或者,您可以建立一個事件時段,其時間段為星期日凌晨 2 點到凌晨 4 點和星期三凌晨 3 點到凌晨 5 點。

如需事件時段限制,請參閱本主題前面的考量

事件時段會每週重複出現,直到您刪除為止。

使用下列其中一種方法來建立事件時段。

Console

使用主控台建立事件時段

  1. https://console.aws.amazon.com/ec2/ 開啟 Amazon EC2 主控台。

  2. 在導覽窗格中,選擇 Events (事件)。

  3. 選擇 Create instance event window (建立執行個體事件時段)。

  4. 對於 Event window name (事件時段名稱),輸入事件時段的描述性名稱。

  5. 對於 Event window schedule (事件時段排程),透過使用 cron 排程建置器或指定時間範圍,進行選擇以在事件時段中指定時間段。

    • 如果選擇 Cron schedule builder (Cron 排程建置器),請指定以下內容:

      1. 對於 Days (UTC) (天 (UTC)),指定事件時段發生的星期日。

      2. 對於 Start time (UTC) (開始時間 (UTC)),指定事件時段開始的時間。

      3. 對於 Duration (持續時間),在事件時段中指定時間段的持續時間。每個時間段的最短持續時間為 2 小時。事件時段的最短持續時間總計必須等於或超過 4 小時。所有時間均以 UTC 表示。

    • 如果選擇 Time ranges (時間範圍),請選擇 Add new time range (新增時間範圍),然後指定開始日期和時間以及結束日期和時間。對每個時間範圍重複此步驟。每個時間範圍的最短持續時間為 2 小時。所有時間範圍合併的最小持續時間總計必須等於或超過 4 小時。

  6. (選用) 對於 Target details (目標詳細資訊),請將一個或多個執行個體與事件時段關聯,如果執行個體已排程進行維護,則排程的事件會在關聯的事件時段中發生。您可以使用執行個體 ID 或執行個體標籤,將一個或多個執行個體與事件時段關聯。您可以使用主機 ID,將專用執行個體與事件時段關聯。

    請注意,您可以建立事件時段,而無需將目標與時段建立關聯。稍後,您可以修改時段以關聯一個或多個目標。

  7. (選用) 對於 Event window tags (事件時段標籤),選擇 Add tag (新增標籤),然後輸入標籤的金鑰和值。針對每個標籤,重複執行上述動作。

  8. 選擇 Create event window (建立事件時段)。

AWS CLI

若要使用 AWS CLI 來建立事件時段,請先建立事件時段,然後將一個或多個目標與事件時段關聯。

建立事件時段

您可以在建立事件時段時定義一組時間範圍或 cron 表達式,但不能同時定義兩者。

使用 AWS CLI 建立具有時間範圍的事件時段

使用 create-instance-event-window 命令並指定 --time-range 參數。您不能指定 --cron-expression 參數。

aws ec2 create-instance-event-window \ --region us-east-1 \ --time-range StartWeekDay=monday,StartHour=2,EndWeekDay=wednesday,EndHour=8 \ --tag-specifications "ResourceType=instance-event-window,Tags=[{Key=K1,Value=V1}]" \ --name myEventWindowName

預期的輸出結果

{ "InstanceEventWindow": { "InstanceEventWindowId": "iew-0abcdef1234567890", "TimeRanges": [ { "StartWeekDay": "monday", "StartHour": 2, "EndWeekDay": "wednesday", "EndHour": 8 } ], "Name": "myEventWindowName", "State": "creating", "Tags": [ { "Key": "K1", "Value": "V1" } ] } }

使用 AWS CLI 透過 cron 表達式建立事件時段

使用 create-instance-event-window 命令並指定 --cron-expression 參數。您不能指定 --time-range 參數。

aws ec2 create-instance-event-window \ --region us-east-1 \ --cron-expression "* 21-23 * * 2,3" \ --tag-specifications "ResourceType=instance-event-window,Tags=[{Key=K1,Value=V1}]" \ --name myEventWindowName

預期的輸出結果

{ "InstanceEventWindow": { "InstanceEventWindowId": "iew-0abcdef1234567890", "Name": "myEventWindowName", "CronExpression": "* 21-23 * * 2,3", "State": "creating", "Tags": [ { "Key": "K1", "Value": "V1" } ] } }

將目標與事件時段關聯

您只能將一種目標類型 (執行個體 ID、專用執行個體 ID 或執行個體標籤) 與事件時段關聯。

使用 AWS CLI 將執行個體標籤與事件時段關聯

使用 associate-instance-event-window 命令並指定 instance-event-window-id 參數來指定事件時段。若要關聯執行個體標籤,請指定 --association-target 參數,並針對參數值指定一個或多個標籤。

aws ec2 associate-instance-event-window \ --region us-east-1 \ --instance-event-window-id iew-0abcdef1234567890 \ --association-target "InstanceTags=[{Key=k2,Value=v2},{Key=k1,Value=v1}]"

預期的輸出結果

{ "InstanceEventWindow": { "InstanceEventWindowId": "iew-0abcdef1234567890", "Name": "myEventWindowName", "CronExpression": "* 21-23 * * 2,3", "AssociationTarget": { "InstanceIds": [], "Tags": [ { "Key": "k2", "Value": "v2" }, { "Key": "k1", "Value": "v1" } ], "DedicatedHostIds": [] }, "State": "creating" } }

使用 AWS CLI 將一個或多個執行個體與事件時段關聯

使用 associate-instance-event-window 命令並指定 instance-event-window-id 參數來指定事件時段。若要關聯執行個體,請指定 --association-target 參數,並針對參數值指定一個或多個執行個體 ID。

aws ec2 associate-instance-event-window \ --region us-east-1 \ --instance-event-window-id iew-0abcdef1234567890 \ --association-target "InstanceIds=i-1234567890abcdef0,i-0598c7d356eba48d7"

預期的輸出結果

{ "InstanceEventWindow": { "InstanceEventWindowId": "iew-0abcdef1234567890", "Name": "myEventWindowName", "CronExpression": "* 21-23 * * 2,3", "AssociationTarget": { "InstanceIds": [ "i-1234567890abcdef0", "i-0598c7d356eba48d7" ], "Tags": [], "DedicatedHostIds": [] }, "State": "creating" } }

使用 AWS CLI 將專用執行個體與事件時段關聯

使用 associate-instance-event-window 命令並指定 instance-event-window-id 參數來指定事件時段。若要關聯專用執行個體,請指定 --association-target 參數,並針對參數值指定一個或多個專用執行個體 ID。

aws ec2 associate-instance-event-window \ --region us-east-1 \ --instance-event-window-id iew-0abcdef1234567890 \ --association-target "DedicatedHostIds=h-029fa35a02b99801d"

預期的輸出結果

{ "InstanceEventWindow": { "InstanceEventWindowId": "iew-0abcdef1234567890", "Name": "myEventWindowName", "CronExpression": "* 21-23 * * 2,3", "AssociationTarget": { "InstanceIds": [], "Tags": [], "DedicatedHostIds": [ "h-029fa35a02b99801d" ] }, "State": "creating" } }

修改事件時段

您可以修改事件時段的所有欄位,但其 ID 除外。例如,當日光節約時間開始時,您可能想要修改事件時段排程。對於現有事件時段,您可能會想要新增或移除目標。

使用下列其中一種方法來修改事件時段。

Console

使用主控台來修改事件時段

  1. https://console.aws.amazon.com/ec2/ 開啟 Amazon EC2 主控台。

  2. 在導覽窗格中,選擇 Events (事件)。

  3. 選擇 Actions (動作)、Manage event windows (管理事件時段)。

  4. 選取要修改的事件時段,然後選擇 Actions (動作)、Modify instance event window (修改執行個體事件時段)。

  5. 修改事件時段中的欄位,然後選擇 Modify event window (修改事件時段)。

AWS CLI

若要使用 AWS CLI 來修改事件時段,您可以修改時間範圍或 cron 表達式,並將一個或多個目標與事件時段產生關聯或解除關聯。

修改事件時段時間

您可以在修改事件時段時修改時間範圍或 cron 表達式,但不能同時修改兩者。

使用 AWS CLI 修改事件時段的時間範圍

使用 modify-instance-event-window 命令,然後指定要修改的事件時段。指定 --time-range 參數來修改時間範圍。您不能指定 --cron-expression 參數。

aws ec2 modify-instance-event-window \ --region us-east-1 \ --instance-event-window-id iew-0abcdef1234567890 --time-range StartWeekDay=monday,StartHour=2,EndWeekDay=wednesday,EndHour=8

預期的輸出結果

{ "InstanceEventWindow": { "InstanceEventWindowId": "iew-0abcdef1234567890", "TimeRanges": [ { "StartWeekDay": "monday", "StartHour": 2, "EndWeekDay": "wednesday", "EndHour": 8 } ], "Name": "myEventWindowName", "AssociationTarget": { "InstanceIds": [ "i-0abcdef1234567890", "i-0be35f9acb8ba01f0" ], "Tags": [], "DedicatedHostIds": [] }, "State": "creating", "Tags": [ { "Key": "K1", "Value": "V1" } ] } }

使用 AWS CLI 修改事件時段的一組時間範圍

使用 modify-instance-event-window 命令,然後指定要修改的事件時段。指定 --time-range 參數來修改時間範圍。您不能指定相同呼叫中的 --cron-expression 參數。

aws ec2 modify-instance-event-window \ --region us-east-1 \ --instance-event-window-id iew-0abcdef1234567890 \ --time-range '[{"StartWeekDay": "monday", "StartHour": 2, "EndWeekDay": "wednesday", "EndHour": 8}, {"StartWeekDay": "thursday", "StartHour": 2, "EndWeekDay": "friday", "EndHour": 8}]'

預期的輸出結果

{ "InstanceEventWindow": { "InstanceEventWindowId": "iew-0abcdef1234567890", "TimeRanges": [ { "StartWeekDay": "monday", "StartHour": 2, "EndWeekDay": "wednesday", "EndHour": 8 }, { "StartWeekDay": "thursday", "StartHour": 2, "EndWeekDay": "friday", "EndHour": 8 } ], "Name": "myEventWindowName", "AssociationTarget": { "InstanceIds": [ "i-0abcdef1234567890", "i-0be35f9acb8ba01f0" ], "Tags": [], "DedicatedHostIds": [] }, "State": "creating", "Tags": [ { "Key": "K1", "Value": "V1" } ] } }

使用 AWS CLI 修改事件時段的 cron 表達式

使用 modify-instance-event-window 命令,然後指定要修改的事件時段。指定 --cron-expression 參數來修改 cron 表達式。您不能指定 --time-range 參數。

aws ec2 modify-instance-event-window \ --region us-east-1 \ --instance-event-window-id iew-0abcdef1234567890 \ --cron-expression "* 21-23 * * 2,3"

預期的輸出結果

{ "InstanceEventWindow": { "InstanceEventWindowId": "iew-0abcdef1234567890", "Name": "myEventWindowName", "CronExpression": "* 21-23 * * 2,3", "AssociationTarget": { "InstanceIds": [ "i-0abcdef1234567890", "i-0be35f9acb8ba01f0" ], "Tags": [], "DedicatedHostIds": [] }, "State": "creating", "Tags": [ { "Key": "K1", "Value": "V1" } ] } }

修改與事件時段相關聯的目標

您可以將其他目標與事件時段關聯。您也可以取消現有目標與事件時段的關聯。但是,只有一種目標類型 (執行個體 ID、專用執行個體 ID 或執行個體標籤) 可以與事件時段相關聯。

將其他目標與事件時段關聯

如需如何將目標與事件時段產生關聯的指示,請參閱Associate a target with an event window

使用 AWS CLI 解除執行個體標籤與事件時段的關聯

使用 disassociate-instance-event-window 命令並指定 instance-event-window-id 參數來指定事件時段。若要解除執行個體標籤的關聯,請指定 --association-target 參數,並針對參數值指定一個或多個標籤。

aws ec2 disassociate-instance-event-window \ --region us-east-1 \ --instance-event-window-id iew-0abcdef1234567890 \ --association-target "InstanceTags=[{Key=k2,Value=v2},{Key=k1,Value=v1}]"

預期的輸出結果

{ "InstanceEventWindow": { "InstanceEventWindowId": "iew-0abcdef1234567890", "Name": "myEventWindowName", "CronExpression": "* 21-23 * * 2,3", "AssociationTarget": { "InstanceIds": [], "Tags": [], "DedicatedHostIds": [] }, "State": "creating" } }

使用 AWS CLI 解除一個或多個執行個體與事件時段的關聯

使用 disassociate-instance-event-window 命令並指定 instance-event-window-id 參數來指定事件時段。若要解除執行個體的關聯,請指定 --association-target 參數,並針對參數值指定一個或多個執行個體 ID。

aws ec2 disassociate-instance-event-window \ --region us-east-1 \ --instance-event-window-id iew-0abcdef1234567890 \ --association-target "InstanceIds=i-1234567890abcdef0,i-0598c7d356eba48d7"

預期的輸出結果

{ "InstanceEventWindow": { "InstanceEventWindowId": "iew-0abcdef1234567890", "Name": "myEventWindowName", "CronExpression": "* 21-23 * * 2,3", "AssociationTarget": { "InstanceIds": [], "Tags": [], "DedicatedHostIds": [] }, "State": "creating" } }

使用 AWS CLI 解除專用執行個體與事件時段的關聯

使用 disassociate-instance-event-window 命令並指定 instance-event-window-id 參數來指定事件時段。若要解除專用執行個體的關聯,請指定 --association-target 參數,並針對參數值指定一個或多個專用執行個體 ID。

aws ec2 disassociate-instance-event-window \ --region us-east-1 \ --instance-event-window-id iew-0abcdef1234567890 \ --association-target DedicatedHostIds=h-029fa35a02b99801d

預期的輸出結果

{ "InstanceEventWindow": { "InstanceEventWindowId": "iew-0abcdef1234567890", "Name": "myEventWindowName", "CronExpression": "* 21-23 * * 2,3", "AssociationTarget": { "InstanceIds": [], "Tags": [], "DedicatedHostIds": [] }, "State": "creating" } }

刪除事件時段

您可以使用下列其中一種方法,一次刪除一個事件時段。

Console

使用主控台刪除事件時段

  1. https://console.aws.amazon.com/ec2/ 開啟 Amazon EC2 主控台。

  2. 在導覽窗格中,選擇 Events (事件)。

  3. 選擇 Actions (動作)、Manage event windows (管理事件時段)。

  4. 選取要刪除的事件時段,然後選擇 Actions (動作)、Delete instance event window (刪除執行個體事件時段)。

  5. 當出現提示時,輸入 delete,然後選擇 Delete (刪除)

AWS CLI

使用 AWS CLI 刪除事件時段

使用 delete-instance-event-window 命令,然後指定要刪除的事件時段。

aws ec2 delete-instance-event-window \ --region us-east-1 \ --instance-event-window-id iew-0abcdef1234567890

使用 AWS CLI 強制刪除事件時段

使用 --force-delete 參數 (如果事件時段目前與目標相關聯)。

aws ec2 delete-instance-event-window \ --region us-east-1 \ --instance-event-window-id iew-0abcdef1234567890 \ --force-delete

預期的輸出結果

{ "InstanceEventWindowState": { "InstanceEventWindowId": "iew-0abcdef1234567890", "State": "deleting" } }

標記事件時段

您可以在建立事件時段時或之後對其進行標記。

若要在建立事件時段時進行標記,請參閱建立事件時段

使用下列其中一種方法來標記事件時段。

Console

使用主控台來標記現有事件時段

  1. https://console.aws.amazon.com/ec2/ 開啟 Amazon EC2 主控台。

  2. 在導覽窗格中,選擇 Events (事件)。

  3. 選擇 Actions (動作)、Manage event windows (管理事件時段)。

  4. 選取要標記的事件時段,然後選擇 Actions (動作)、Manage instance event window tags (管理執行個體事件時段標籤)。

  5. 選擇 Add tag (新增標籤) 以新增標籤。針對每個標籤,重複執行上述動作。

  6. 選擇 Save (儲存)。

AWS CLI

使用 AWS CLI 來標記現有事件時段

使用建立標籤命令來標記現有資源。在下面的例子中,現有事件時段標記為 Key=purpose 和 Value=test。

aws ec2 create-tags \ --resources iew-0abcdef1234567890 \ --tags Key=purpose,Value=test