本文為英文版的機器翻譯版本,如內容有任何歧義或不一致之處,概以英文版為準。
Elastic Beanstalk 環境的排程 Auto Scaling 動作
如要在可預測的尖峰流量期間最佳化您環境使用 Amazon EC2 執行個體的情況,請設定您的 Amazon EC2 Auto Scaling 群組來透過排程變更其執行個體計數。針對具備重複動作的環境,您可將其設定為每天上午進行擴展,並在夜間低流量時進行縮減。舉例來說,若您正進行的行銷活動,將在特定期間為您的網站提升流量,您可將一次性的擴展與縮減事件分別安排在活動開始與結束的時候。
每個環境至多可定義 120 個作用中的排定動作。Elastic Beanstalk 也會保留至多 150 個過期的動作,讓您可以重複使用以更新其設定。
設定排定的動作
您可以在 Elastic Beanstalk 主控台中為您環境的 Auto Scaling 群組建立排程動作。
在 Elastic Beanstalk 主控台中設定排程動作
開啟 Elastic Beanstalk 主控台
,然後在區域清單中選取您的 AWS 區域。 -
在導覽窗格中,選擇環境,然後在清單中選擇您環境的名稱。
注意
如果您有許多環境,請使用搜尋列來篩選環境清單。
在導覽窗格中,選擇 Configuration (組態)。
-
在 Capacity (容量) 組態類別中,選擇 Edit (編輯)。
-
在以 Time-based scaling (時間型擴展) 區段中,請選擇 Add scheduled action (新增排定的動作)。
-
請填寫以下排定動作設定:
-
Name (名稱) ‒ 指定唯一的名稱,至多 255 個英數字元且不含空格。
-
Instances (執行個體) ‒ 選擇欲套用至 Auto Scaling 群組的執行個體計數上下限。
-
Desired capacity (所需的容量) (選用) ‒ 設定 Auto Scaling 群組所需的初始容量。在套用排程動作後,觸發會依它們的設定調整所需的容量。
-
Occurrence (出現) ‒ 選擇 Recurring (經常性) 來重複排程上的擴展動作。
-
Start time (開始時間) ‒ 針對一次性動作,選擇執行動作的日期和時間。
對於重複動作,開始時間是選擇性的。指定此選項以選擇最早執行動作的時間。在此時間之後,動作會根據 Recurrence (重複) 表達式重複執行。
-
Recurrence (週期) ‒ 使用 Cron
表達式指定您希望排程動作發生的頻率。例如, 30 6 * * 2
會在 UTC 每週二上午 6:30 執行動作。 -
End time (結束時間) (選擇性) ‒ 重複動作的選項。如果指定此選項,動作會根據 Recurrence (重複) 表達式重複執行,並在此時間之後不再執行。
當排程的動作結束時,Auto Scaling 不會自動回到之前的設定。設定第二個排程動作,並視需要使 Auto Scaling 返回原始設定。
-
-
選擇 Add (新增)。
-
若要儲存變更,請選擇頁面底部的儲存變更。
注意
要在套用後才會儲存排程的動作。
aws:autoscaling:scheduledaction 命名空間
若您需要設定大量的排程動作,可使用組態檔案或 Elastic Beanstalk API,套用來自 YAML 或 JSON 檔案的組態選項變更。這些方法亦可讓您存取 Suspend 選項,暫時停用排定的重複動作。
注意
在主控台外使用排定的動作組態選項時,請使用 ISO 8601 時間格式,以 UTC 時間指定開始時間和結束時間。例如:2015-04-28T04:07:02Z。如需 ISO 8601 時間格式的詳細資訊,請參閱 Date and Time Formats
Elastic Beanstalk 在 aws:autoscaling:scheduledaction 命名空間中,提供了排程動作設定適用的組態選項。使用 resource_name
欄位來指定排定的動作名稱。
範例 Scheduled-scale-up-specific-time-long.config
此組態檔案會指示 Elastic Beanstalk 在 2015-12-12T00:00:00Z,從五個執行個體擴展為 10 個執行個體。
option_settings:
- namespace: aws:autoscaling:scheduledaction
resource_name: ScheduledScaleUpSpecificTime
option_name: MinSize
value: '5'
- namespace: aws:autoscaling:scheduledaction
resource_name: ScheduledScaleUpSpecificTime
option_name: MaxSize
value: '10'
- namespace: aws:autoscaling:scheduledaction
resource_name: ScheduledScaleUpSpecificTime
option_name: DesiredCapacity
value: '5'
- namespace: aws:autoscaling:scheduledaction
resource_name: ScheduledScaleUpSpecificTime
option_name: StartTime
value: '2015-12-12T00:00:00Z'
範例 Scheduled-scale-up-specific-time.config
欲搭配 EB CLI 或組態檔案使用速記語法,請在命名空間前方加上資源名稱。
option_settings:
ScheduledScaleUpSpecificTime.aws:autoscaling:scheduledaction:
MinSize: '5'
MaxSize: '10'
DesiredCapacity: '5'
StartTime: '2015-12-12T00:00:00Z'
範例 Scheduled-scale-down-specific-time.config
此組態檔案會指示 Elastic Beanstalk 在 2015-12-12T07:00:00Z 進行擴展。
option_settings:
ScheduledScaleDownSpecificTime.aws:autoscaling:scheduledaction:
MinSize: '1'
MaxSize: '1'
DesiredCapacity: '1'
StartTime: '2015-12-12T07:00:00Z'
範例 Scheduled-periodic-scale-up.config
此組態檔案會指示 Elastic Beanstalk 每天上午 9 點進行擴展。此排定的動作將於 2015 年 5 月 14 日開始,並在 2016 年 1 月 12 日結束。
option_settings:
ScheduledPeriodicScaleUp.aws:autoscaling:scheduledaction:
MinSize: '5'
MaxSize: '10'
DesiredCapacity: '5'
StartTime: '2015-05-14T07:00:00Z'
EndTime: '2016-01-12T07:00:00Z'
Recurrence: 0 9 * * *
範例 Scheduled-periodic-scale-down.config
此組態檔案會指示 Elastic Beanstalk 每天下午 6 點進行擴展至沒有任何運作中的執行個體。如果您知道您的應用程式在上班時間外都在閒置,您可以建立一個類似的排程動作。如果您的應用程式在上班時間外必須關閉,請將 MaxSize
變更為 0
。
option_settings:
ScheduledPeriodicScaleDown.aws:autoscaling:scheduledaction:
MinSize: '0'
MaxSize: '1'
DesiredCapacity: '0'
StartTime: '2015-05-14T07:00:00Z'
EndTime: '2016-01-12T07:00:00Z'
Recurrence: 0 18 * * *
範例 Scheduled-weekend-scale-down.config
此組態檔案會指示 Elastic Beanstalk 每個星期五下午 6 點進行擴展。若您知道應用程式週末接收的流量較少,您可建立類似的排定動作。
option_settings:
ScheduledWeekendScaleDown.aws:autoscaling:scheduledaction:
MinSize: '1'
MaxSize: '4'
DesiredCapacity: '1'
StartTime: '2015-12-12T07:00:00Z'
EndTime: '2016-01-12T07:00:00Z'
Recurrence: 0 18 * * 5