使用適用於 Amazon AppStream 2.0 的 AWS CLI 管理機群擴展 - Amazon AppStream 2.0

本文為英文版的機器翻譯版本,如內容有任何歧義或不一致之處,概以英文版為準。

使用適用於 Amazon AppStream 2.0 的 AWS CLI 管理機群擴展

您可以使用 AWS Command Line Interface () 設定和管理機群擴展AWS CLI。如需設定多個擴展政策或設定縮減和縮減冷卻時間等更進階的功能,請使用 AWS CLI。在執行調整規模政策命令前,您必須先將您的機群註冊為可調整規模的目標。若要這麼做,請使用下列register-scalable-target命令:

aws application-autoscaling register-scalable-target --service-namespace appstream \ --resource-id fleet/fleetname \ --scalable-dimension appstream:fleet:DesiredCapacity \ --min-capacity 1 --max-capacity 5

範例 1:根據容量使用率套用調整規模政策

如果 AWS CLI使用率 >= 75%,此範例會設定擴展政策,將機群擴展 25%。

下列put-scaling-policy命令定義以使用率為基礎的擴展政策:

aws application-autoscaling put-scaling-policy --cli-input-json file://scale-out-utilization.json

scale-out-utilization.json 檔案的內容如下:

{ "PolicyName": "policyname", "ServiceNamespace": "appstream", "ResourceId": "fleet/fleetname", "ScalableDimension": "appstream:fleet:DesiredCapacity", "PolicyType": "StepScaling", "StepScalingPolicyConfiguration": { "AdjustmentType": "PercentChangeInCapacity", "StepAdjustments": [ { "MetricIntervalLowerBound": 0, "ScalingAdjustment": 25 } ], "Cooldown": 120 } }

若命令成功,則輸出類似以下內容,雖然有些詳細資訊會因您的帳戶和區域而有所不同。在此範例中,政策識別符是 e3425d21-16f0-d701-89fb-12f98dac64af

{"PolicyARN": "arn:aws:autoscaling:us-west-2:123456789012:scalingPolicy:e3425d21-16f0-d701-89fb-12f98dac64af:resource/appstream/fleet/SampleFleetName:policyName/scale-out-utilization-policy"}

現在,設定此政策的 CloudWatch 警示。使用適用於您的名稱、區域、帳號和政策識別符。您可以使用先前命令針對 --alarm-actions 參數ARN傳回的政策。

aws cloudwatch put-metric-alarm --alarm-name alarmname \ --alarm-description "Alarm when Capacity Utilization exceeds 75 percent" \ --metric-name CapacityUtilization \ --namespace AWS/AppStream \ --statistic Average \ --period 300 \ --threshold 75 \ --comparison-operator GreaterThanOrEqualToThreshold \ --dimensions "Name=Fleet,Value=fleetname" \ --evaluation-periods 1 --unit Percent \ --alarm-actions "arn:aws:autoscaling:your-region-code:account-number-without-hyphens:scalingPolicy:policyid:resource/appstream/fleet/fleetname:policyName/policyname"

範例 2:根據容量不足錯誤套用調整規模政策

如果 AWS CLI機群傳回InsufficientCapacityError錯誤,此範例會設定擴展政策,將機群擴展為 1。

以下命令會定義容量不足類型的調整規模政策:

aws application-autoscaling put-scaling-policy --cli-input-json file://scale-out-capacity.json

scale-out-capacity.json 檔案的內容如下:

{ "PolicyName": "policyname", "ServiceNamespace": "appstream", "ResourceId": "fleet/fleetname", "ScalableDimension": "appstream:fleet:DesiredCapacity", "PolicyType": "StepScaling", "StepScalingPolicyConfiguration": { "AdjustmentType": "ChangeInCapacity", "StepAdjustments": [ { "MetricIntervalLowerBound": 0, "ScalingAdjustment": 1 } ], "Cooldown": 120 } }

若命令成功,則輸出類似以下內容,雖然有些詳細資訊會因您的帳戶和區域而有所不同。在此範例中,政策識別符是 f4495f21-0650-470c-88e6-0f393adb64fc

{"PolicyARN": "arn:aws:autoscaling:us-west-2:123456789012:scalingPolicy:f4495f21-0650-470c-88e6-0f393adb64fc:resource/appstream/fleet/SampleFleetName:policyName/scale-out-insufficient-capacity-policy"}

現在,設定此政策的 CloudWatch 警示。使用適用於您的名稱、區域、帳號和政策識別符。您可以使用先前命令針對 --alarm-actions 參數ARN傳回的政策。

aws cloudwatch put-metric-alarm --alarm-name alarmname \ --alarm-description "Alarm when out of capacity is > 0" \ --metric-name InsufficientCapacityError \ --namespace AWS/AppStream \ --statistic Maximum \ --period 300 \ --threshold 0 \ --comparison-operator GreaterThanThreshold \ --dimensions "Name=Fleet,Value=fleetname" \ --evaluation-periods 1 --unit Count \ --alarm-actions "arn:aws:autoscaling:your-region-code:account-number-without-hyphens:scalingPolicy:policyid:resource/appstream/fleet/fleetname:policyName/policyname"

範例 3:根據低容量使用率套用調整規模政策

此 AWS CLI 範例會設定擴展政策,在CapacityUtilization低時擴展機群,以減少實際容量。

以下命令會定義容量超過類型的調整規模政策:

aws application-autoscaling put-scaling-policy --cli-input-json file://scale-in-capacity.json

scale-in-capacity.json 檔案的內容如下:

{ "PolicyName": "policyname", "ServiceNamespace": "appstream", "ResourceId": "fleet/fleetname", "ScalableDimension": "appstream:fleet:DesiredCapacity", "PolicyType": "StepScaling", "StepScalingPolicyConfiguration": { "AdjustmentType": "PercentChangeInCapacity", "StepAdjustments": [ { "MetricIntervalUpperBound": 0, "ScalingAdjustment": -25 } ], "Cooldown": 360 } }

若命令成功,則輸出類似以下內容,雖然有些詳細資訊會因您的帳戶和區域而有所不同。在此範例中,政策識別符是 12ab3c4d-56789-0ef1-2345-6ghi7jk8lm90

{"PolicyARN": "arn:aws:autoscaling:us-west-2:123456789012:scalingPolicy:12ab3c4d-56789-0ef1-2345-6ghi7jk8lm90:resource/appstream/fleet/SampleFleetName:policyName/scale-in-utilization-policy"}

現在,設定此政策的 CloudWatch 警示。使用適用於您的名稱、區域、帳號和政策識別符。您可以使用先前命令針對 --alarm-actions 參數ARN傳回的政策。

aws cloudwatch put-metric-alarm --alarm-name alarmname \ --alarm-description "Alarm when Capacity Utilization is less than or equal to 25 percent" \ --metric-name CapacityUtilization \ --namespace AWS/AppStream \ --statistic Average \ --period 120 \ --threshold 25 \ --comparison-operator LessThanOrEqualToThreshold \ --dimensions "Name=Fleet,Value=fleetname" \ --evaluation-periods 10 --unit Percent \ --alarm-actions "arn:aws:autoscaling:your-region-code:account-number-without-hyphens:scalingPolicy:policyid:resource/appstream/fleet/fleetname:policyName/policyname"

範例 4:根據排程變更機群容量

根據排程變更您的機群容量,可讓您針對可預期的需求變更調整機群容量規模以進行回應。例如,在工作天的一開始,您可能預期會有特定數量的使用者同時請求串流連線。若要根據排程變更機群容量,您可以使用 Application Auto Scaling PutScheduledActionAPI動作或 put-scheduled-action AWS CLI命令。

在變更機群容量之前,您可以使用 AppStream 2.0 describe-fleets AWS CLI 命令列出目前的機群容量。

aws appstream describe-fleets --name fleetname

目前的機群容量會與下列輸出類似 (以 JSON 格式顯示):

{ { "ComputeCapacityStatus": { "Available": 1, "Desired": 1, "Running": 1, "InUse": 0 }, }

然後,使用 put-scheduled-action 命令建立排程動作來變更您的機群容量。例如,下列命令會將最小容量變更為 3,並在每天上午 9:00 將最大容量變更為 5UTC。

注意

對於 cron 表達式,指定何時在 中執行動作UTC。如需詳細資訊,請參閱 Cron 表達式

aws application-autoscaling put-scheduled-action --service-namespace appstream \ --resource-id fleet/fleetname \ --schedule="cron(0 9 * * ? *)" \ --scalable-target-action MinCapacity=3,MaxCapacity=5 \ --scheduled-action-name ExampleScheduledAction \ --scalable-dimension appstream:fleet:DesiredCapacity

若要確認變更機群容量的排程動作已成功建立,請執行 describe-scheduled-actions命令。

aws application-autoscaling describe-scheduled-actions --service-namespace appstream --resource-id fleet/fleetname

若排程動作已成功建立,則會顯示與以下內容相似的輸出。

{ "ScheduledActions": [ { "ScalableDimension": "appstream:fleet:DesiredCapacity", "Schedule": "cron(0 9 * * ? *)", "ResourceId": "fleet/ExampleFleet", "CreationTime": 1518651232.886, "ScheduledActionARN": "<arn>", "ScalableTargetAction": { "MinCapacity": 3, "MaxCapacity": 5 }, "ScheduledActionName": "ExampleScheduledAction", "ServiceNamespace": "appstream" } ] }

如需詳細資訊,請參閱《應用程式自動擴展使用者指南》中的排程擴展

範例 5:套用目標追蹤調整規模政策

透過目標追蹤調整規模,您可以為機群指定容量使用率層級。

當您建立目標追蹤擴展政策時,Application Auto Scaling 會自動建立和管理觸發擴展政策的 CloudWatch 警示。調整規模政策會視需要新增或移除容量,以讓容量使用率保持在等於或接近指定目標值。為了確保應用程式的可用性,您的機群可以配合指標按比例快速地擴展規模,但是以更漸進的方式縮減規模。

下列put-scaling-policy命令定義目標追蹤擴展政策,嘗試維持 AppStream 2.0 機群 75% 的容量使用率。

aws application-autoscaling put-scaling-policy --cli-input-json file://config.json

config.json 檔案的內容如下:

{ "PolicyName":"target-tracking-scaling-policy", "ServiceNamespace":"appstream", "ResourceId":"fleet/fleetname", "ScalableDimension":"appstream:fleet:DesiredCapacity", "PolicyType":"TargetTrackingScaling", "TargetTrackingScalingPolicyConfiguration":{ "TargetValue":75.0, "PredefinedMetricSpecification":{ "PredefinedMetricType":"AppStreamAverageCapacityUtilization" }, "ScaleOutCooldown":300, "ScaleInCooldown":300 } }

若命令成功,則輸出類似以下內容,雖然有些詳細資訊會因您的帳戶和區域而有所不同。在此範例中,政策識別符為 6d8972f3-efc8-437c-92d1-6270f29a66e7。

{ "PolicyARN": "arn:aws:autoscaling:us-west-2:123456789012:scalingPolicy:6d8972f3-efc8-437c-92d1-6270f29a66e7:resource/appstream/fleet/fleetname:policyName/target-tracking-scaling-policy", "Alarms": [ { "AlarmARN": "arn:aws:cloudwatch:us-west-2:123456789012:alarm:TargetTracking-fleet/fleetname-AlarmHigh-d4f0770c-b46e-434a-a60f-3b36d653feca", "AlarmName": "TargetTracking-fleet/fleetname-AlarmHigh-d4f0770c-b46e-434a-a60f-3b36d653feca" }, { "AlarmARN": "arn:aws:cloudwatch:us-west-2:123456789012:alarm:TargetTracking-fleet/fleetname-AlarmLow-1b437334-d19b-4a63-a812-6c67aaf2910d", "AlarmName": "TargetTracking-fleet/fleetname-AlarmLow-1b437334-d19b-4a63-a812-6c67aaf2910d" } ] }

如需詳細資訊,請參閱《應用程式自動擴展使用者指南》中的目標追蹤擴展政策