翻訳は機械翻訳により提供されています。提供された翻訳内容と英語版の間で齟齬、不一致または矛盾がある場合、英語版が優先します。
Amazon AppStream 2.0 の AWS CLI を使用したフリートスケーリングの管理
AWS Command Line Interface (AWS CLI) を使用してフリートスケーリングを設定および管理できます。複数のスケーリングポリシーの設定やスケールインおよびスケールアウトのクールダウン時間の設定など、より高度な機能については、 CLI AWS を使用します。スケーリングポリシーコマンドを実行する前に、フリートをスケーラブルなターゲットとして登録する必要があります。これを行うには、以下の 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 アラームを設定します。該当する名前、リージョン、アカウント番号、およびポリシー識別子を使用します。前のコマンドで返されたポリシー ARN を --alarm-actions
パラメータに使用できます。
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 アラームを設定します。該当する名前、リージョン、アカウント番号、およびポリシー識別子を使用します。前のコマンドで返されたポリシー ARN を --alarm-actions
パラメータに使用できます。
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 アラームを設定します。該当する名前、リージョン、アカウント番号、およびポリシー識別子を使用します。前のコマンドで返されたポリシー ARN を --alarm-actions
パラメータに使用できます。
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 PutScheduledAction API アクションまたは 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
コマンドを使用してフリートの容量を変更するスケジュールされたアクションを作成します。たとえば、次のコマンドでは、毎日午前 9:00 時 (UTC) に最小容量を 3 に変更し、最大容量を 5 に変更します。
注記
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"
}
]
}
詳細については、「Application Auto Scaling ユーザーガイド」の「スケジュールされたスケーリング」を参照してください。
例 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"
}
]
}
詳細については、Application Auto Scaling ユーザーガイドの「ターゲット追跡スケーリングポリシー」を参照してください。