翻訳は機械翻訳により提供されています。提供された翻訳内容と英語版の間で齟齬、不一致または矛盾がある場合、英語版が優先します。
WorkSpaces プールの自動スケーリング
Auto Scaling では、利用可能なインスタンスの供給をユーザーの需要に合わせて、プールのサイズを自動的に変更できます。プールのサイズによって、同時にストリーミングできるユーザーの数が決まります。ユーザーセッションごとに 1 つのインスタンスが必要です。プール容量は、 インスタンスで指定できます。プール設定と自動スケーリングポリシーに基づいて、必要な数のインスタンスが使用可能になります。さまざまな使用率メトリクスに基づいてプールのサイズを自動的に調整するスケーリングポリシーを定義し、ユーザーの需要に合わせて使用可能なインスタンスの数を最適化できます。また、自動スケーリングをオフにして、プールを固定サイズで実行することもできます。
注記
WorkSpaces プールスケーリングの計画を立てるときは、ネットワーク設定が要件を満たしていることを確認してください。
スケーリングを使用する場合は、Application Auto Scaling を使用しますAPI。Auto Scaling が WorkSpaces プールと正しく連携するには、Application Auto Scaling にプールを記述および更新し、Amazon CloudWatch アラームを記述するアクセス許可と、ユーザーに代わってプール容量を変更するアクセス許可が必要です。
以下のトピックでは、 WorkSpaces プールの Auto Scaling の理解と使用に役立つ情報を提供します。
スケーリングの概念
WorkSpaces プールのスケーリングは、Application Auto Scaling によって提供されます。詳細については、「Application Auto Scaling APIリファレンス」を参照してください。
WorkSpaces プールで Auto Scaling を効果的に使用するには、以下の用語と概念を理解する必要があります。
- プールの最小容量/最小ユーザーセッション
-
インスタンスの最小数。インスタンスの数をこの値未満にすることはできません。また、スケーリングポリシーはこの値を下回ってプールをスケーリングしません。例えば、プールの最小容量を 2 に設定すると、プールのインスタンス数が 2 未満になることはありません。
- プールの最大容量/最大ユーザーセッション
-
インスタンスの最大数。インスタンスの数はこの値を超えることはできません。また、スケーリングポリシーはこの値を超えてプールをスケーリングしません。例えば、プールの最大容量を 10 に設定すると、プールに 10 個を超えるインスタンスが発生することはありません。
- 希望するユーザーセッション容量
-
実行中または保留中のセッションの合計数。これは、プールが定常状態でサポートできる同時ストリーミングセッションの合計数を表します。
- スケーリングポリシーアクション
-
スケーリングポリシー条件が満たされたときにスケーリングポリシーがプールで実行するアクション。[% capacity] または [number of instance(s)] に基づいてアクションを選択できます。例えば、希望するユーザーセッション容量が 4 で、スケーリングポリシーアクションが「25% の容量を追加」に設定されている場合、スケーリングポリシー条件が満たされると、希望するユーザーセッション容量は 25% 増加して 5 になります。
- スケーリングポリシー条件
-
[Scaling Policy Action] で設定されたアクションをトリガーする条件。この条件は、スケーリングポリシーのメトリクス、比較演算子、しきい値を含みます。例えば、プールの使用率が 50% を超える場合にプールをスケーリングするには、スケーリングポリシー条件を「キャパシティ使用率 > 50%」にする必要があります。
- スケーリングポリシーメトリクス
-
お客様のスケーリングポリシーはこのメトリクスに基づいています。スケーリングポリシーには、次のメトリクスを使用できます。
- 容量使用率
-
プール内で使用されているインスタンスの割合。このメトリクスを使用して、プールの使用状況に基づいてプールをスケーリングできます。たとえば、[Scaling Policy Condition]: 「容量使用率 < 25%」の場合、[Scaling Policy Action]: 「25% の容量を削除」を実行します。
- 使用可能な容量
-
ユーザーが利用できるプール内のインスタンスの数。このメトリクスを使用して、ユーザーがストリーミングセッションを開始するための、使用可能なメモリ容量のバッファを維持できます。たとえば、[Scaling Policy Condition]: 「使用可能な容量 < 5」 の場合、[Scaling Policy Action]: 「5 インスタンスを追加」を実行します。
- 容量不足エラー
-
容量不足により拒否されたセッションリクエストの数。このメトリクスを使用して、容量不足のためにストリーミングセッションを開始できないユーザーの新しいインスタンスをプロビジョニングできます。たとえば、[Scaling Policy Condition]: 「容量不足エラー > 0」の場合、[Scaling Policy Action]: 「1 インスタンスを追加」を実行します。
コンソールを使用したプールスケーリングの管理
スケーリングの設定と管理は、 WorkSpaces コンソールを使用して、プールの作成中、またはプールタブを使用していつでも行うことができます。プールを作成したら、スケーリングポリシータブに移動して、プールの新しいスケーリングポリシーを追加します。詳細については、「 WorkSpaces プールを作成する」を参照してください。
ユーザーの環境はさまざまに異なるため、需要に応じてスケーリングを制御するようにスケーリングポリシーを定義します。一定数のユーザーが予想される場合や、スケーリングを無効にするその他の理由がある場合は、ユーザーセッションの一定数のインスタンスでプールを設定できます。
これを行うには、最小容量を必要なインスタンス数に設定します。最大容量を少なくとも最小容量の値に調整します。これにより、検証エラーを回避できますが、プールはスケーリングされないため、最大容量は最終的に無視されます。次に、そのプールのすべてのスケーリングポリシーを削除します。
コンソールを使用してプールスケーリングポリシーを設定するには
で WorkSpaces コンソールを開きますhttps://console.aws.amazon.com/workspaces/
。 -
ナビゲーションペインで、[プール] を選択します。
-
プールを選択します。
-
そのプールのページで、容量とスケーリングまで下にスクロールします。
-
[編集] を選択します。
-
既存のポリシーを編集し、そのフィールドに目的の値を設定し、保存 を選択します。ポリシーの変更は数分以内で有効になります。
-
新しいスケジュールキャパシティの追加、新しいスケールアウトポリシーの追加、またはポリシー の新しいスケールの追加を選択して、新しいキャパシティとスケーリングポリシーを追加することもできます。
以下は、5 人のユーザーがプールに接続してから切断した場合のスケーリングアクティビティの使用グラフの例です。この例は、次のスケーリングポリシー値を使用するプールからのものです。
-
最小容量 = 10
-
最大容量 = 50
-
スケールアウト = プールのキャパシティ使用率が 75% を超える場合は、5 つのインスタンスを追加します。
-
スケールイン = プールのキャパシティ使用率が 25% 未満の場合、6 つのインスタンスを削除する
注記
セッション中、スケールアウトイベント中に 5 つの新しいインスタンスが起動されます。スケールインイベント中に、アクティブなユーザーセッションがないインスタンスが十分で、インスタンスの総数が最小容量の 10 インスタンスを下回らない場合、6 つのインスタンスが再利用されます。ユーザーセッションが実行中であるインスタンスは再利用されません。実行中のユーザーセッションがないインスタンスのみが再利用されます。
を使用したプールスケーリングの管理 AWS CLI
を使用してプールスケーリングを設定および管理できます。 AWS Command Line Interface (AWS CLI)。スケールインやスケールアウトのクールダウン時間の設定など、より高度な機能については、 AWS CLI。スケーリングポリシーコマンドを実行する前に、プールをスケーラブルターゲットとして登録する必要があります。そのためには、次のregister-scalable-targetコマンドを使用します。
aws application-autoscaling register-scalable-target --service-namespace workspaces \ --resource-id workspacespool/
PoolId
\ --scalable-dimension workspaces:workspacespool:DesiredUserSessions \ --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": "workspaces", "ResourceId": "workspacespool/PoolId
", "ScalableDimension": "workspaces:workspacespool:DesiredUserSessions", "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/workspaces/workspacespool/PoolId:policyName/scale-out-utilization-policy"}
次に、このポリシーの CloudWatch アラームを設定します。該当する名前、リージョン、アカウント番号、およびポリシー識別子を使用します。-- alarm-actions
パラメータには、前のコマンドでARN返されたポリシーを使用できます。
aws cloudwatch put-metric-alarm --alarm-name
alarmname
\ --alarm-description "Alarm when Available User Session Capacity exceeds 75 percent" \ --metric-name AvailableUserSessionCapacity \ --namespace AWS/WorkSpaces \ --statistic Average \ --period 300 \ --threshold 75 \ --comparison-operator GreaterThanOrEqualToThreshold \ --dimensions "Name=WorkSpaces pool ID,Value=PoolId
" \ --evaluation-periods 1 --unit Percent \ --alarm-actions "arn:aws:autoscaling:your-region-code
:account-number-without-hyphens
:scalingPolicy:policyid
:resource/workspaces/workspacespool/PoolId
: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": "workspaces", "ResourceId": "workspacespool/PoolId
", "ScalableDimension": "workspaces:workspacespool:DesiredUserSessions", "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/workspaces/workspacespool/PoolId: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/WorkSpaces \ --statistic Maximum \ --period 300 \ --threshold 0 \ --comparison-operator GreaterThanThreshold \ --dimensions "Name=Pool,Value=PoolId
" \ --evaluation-periods 1 --unit Count \ --alarm-actions "arn:aws:autoscaling:your-region-code
:account-number-without-hyphens
:scalingPolicy:policyid
:resource/workspaces/workspacespool/PoolId
:policyName/policyname
"
例 3: 低容量使用率に基づくスケーリングポリシーの適用
この AWS CLI サンプルUserSessionsCapacityUtilization
は、 が低い場合に実際の容量を減らすためにプール内でスケーリングするスケーリングポリシーを設定します。
以下のコマンドは、容量超過に基づくスケーリングポリシーを定義します。
aws application-autoscaling put-scaling-policy -- cli-input-json file://scale-in-capacity.json
scale-in-capacity.json
ファイルの内容は以下のようになります。
{ "PolicyName": "
policyname
", "ServiceNamespace": "workspaces", "ResourceId": "workspacespool/PoolId
", "ScalableDimension": "workspaces:workspacespool:DesiredUserSessions", "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/workspaces/workspacespool/PoolId: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 UserSessionsCapacityUtilization \ --namespace AWS/WorkSpaces \ --statistic Average \ --period 120 \ --threshold 25 \ --comparison-operator LessThanOrEqualToThreshold \ --dimensions "Name=Pool,Value=PoolId
" \ --evaluation-periods 10 --unit Percent \ --alarm-actions "arn:aws:autoscaling:your-region-code
:account-number-without-hyphens
:scalingPolicy:policyid
:resource/workspaces/workspacespool/PoolId
:policyName/policyname
"
例 4: スケジュールに基づいてプール容量を変更する
スケジュールに基づいてプール容量を変更すると、需要の予測可能な変化に応じてプール容量をスケーリングできます。たとえば、稼働日の最初に、特定の数のユーザーが同時にストリーミング接続をリクエストすることが予期されます。スケジュールに基づいてプールの容量を変更するには、Application Auto Scaling PutScheduledActionAPIアクションまたは put-scheduled-action AWS CLI コマンド。
プール容量を変更する前に、 を使用して現在のプール容量を一覧表示できます。 WorkSpaces describe-workspaces-pools AWS CLI コマンド。
aws workspaces describe-workspaces-pools --name
PoolId
現在のプール容量は、次の出力 ( JSON 形式で表示) のようになります。
{
"CapacityStatus": {
"AvailableUserSessions": 1,
"DesiredUserSessions": 1,
"ActualUserSessions": 1,
"ActiveUserSessions": 0
},
}
次に、 put-scheduled-action
コマンドを使用して、プールの容量を変更するスケジュールされたアクションを作成します。例えば、次のコマンドは、毎日午前 9:00 に最小容量を 3 に、最大容量を 5 に変更しますUTC。
注記
cron 式の場合、 でアクションを実行するタイミングを指定しますUTC。詳細については、「Cron 式」を参照してください。
aws application-autoscaling put-scheduled-action --service-namespace workspaces \ --resource-id workspacespool/
PoolId
\ --schedule="cron(0 9 * * ? *)" \ --scalable-target-action MinCapacity=3,MaxCapacity=5 \ --scheduled-action-name ExampleScheduledAction \ --scalable-dimension workspaces:workspacespool:DesiredUserSessions
プール容量を変更するスケジュールされたアクションが正常に作成されたことを確認するには、 describe-scheduled-actions コマンドを実行します。
aws application-autoscaling describe-scheduled-actions --service-namespace workspaces --resource-id workspacespool/
PoolId
スケジュールされたアクションが正常に作成された場合、出力は次のようになります。
{
"ScheduledActions": [
{
"ScalableDimension": "workspaces:workspacespool:DesiredUserSessions",
"Schedule": "cron(0 9 * * ? *)",
"ResourceId": "workspacespool/ExamplePool",
"CreationTime": 1518651232.886,
"ScheduledActionARN": "<arn>",
"ScalableTargetAction": {
"MinCapacity": 3,
"MaxCapacity": 5
},
"ScheduledActionName": "ExampleScheduledAction",
"ServiceNamespace": "workspaces"
}
]
}
詳細については、「Application Auto Scaling ユーザーガイド」の「スケジュールされたスケーリング」を参照してください。
例 5: ターゲット追跡スケーリングポリシーの適用
ターゲット追跡スケーリングでは、プールの容量使用率レベルを指定できます。
ターゲット追跡スケーリングポリシーを作成すると、Application Auto Scaling はスケーリングポリシーをトリガーする CloudWatch アラームを自動的に作成および管理します。スケーリングポリシーは、指定されたターゲット値、またはそれに近い値に容量使用率を維持するため、必要に応じて容量を追加または削除します。アプリケーションの可用性を確保するために、プールはメトリクスに比例して可能な限り速くスケールアウトしますが、スケールインはより緩やかです。
次のput-scaling-policyコマンドは、 WorkSpaces プールの容量使用率を 75% に維持しようとするターゲット追跡スケーリングポリシーを定義します。
aws application-autoscaling put-scaling-policy -- cli-input-json file://config.json
config.json
ファイルの内容は以下のようになります。
{ "PolicyName":"target-tracking-scaling-policy", "ServiceNamespace":"workspaces", "ResourceId":"workspacespool/
PoolId
", "ScalableDimension":"workspaces:workspacespool:DesiredUserSessions", "PolicyType":"TargetTrackingScaling", "TargetTrackingScalingPolicyConfiguration":{ "TargetValue":75.0, "PredefinedMetricSpecification":{ "PredefinedMetricType":"WorkSpacesAverageUserSessionsCapacityUtilization" }, "ScaleOutCooldown":300, "ScaleInCooldown":300 } }
コマンドが成功した場合、一部の詳細はアカウントおよびリージョンで固有ですが、出力は次のようになります。この例では、ポリシー識別子は 6d8972f3-efc8-437c-92d1-6270f29a66e7 です。
{
"PolicyARN": "arn:aws:autoscaling:us-west-2:123456789012:scalingPolicy:6d8972f3-efc8-437c-92d1-6270f29a66e7:resource/workspaces/workspacespool/PoolId:policyName/target-tracking-scaling-policy",
"Alarms": [
{
"AlarmARN": "arn:aws:cloudwatch:us-west-2:123456789012:alarm:TargetTracking-workspacespool/PoolId-AlarmHigh-d4f0770c-b46e-434a-a60f-3b36d653feca",
"AlarmName": "TargetTracking-workspacespool/PoolId-AlarmHigh-d4f0770c-b46e-434a-a60f-3b36d653feca"
},
{
"AlarmARN": "arn:aws:cloudwatch:us-west-2:123456789012:alarm:TargetTracking-workspacespool/PoolId-AlarmLow-1b437334-d19b-4a63-a812-6c67aaf2910d",
"AlarmName": "TargetTracking-workspacespool/PoolId-AlarmLow-1b437334-d19b-4a63-a812-6c67aaf2910d"
}
]
}
詳細については、Application Auto Scaling ユーザーガイドの「ターゲット追跡スケーリングポリシー」を参照してください。
追加リソース
Application Auto Scaling の使用の詳細については、「」を参照してください。 AWS CLI コマンドまたはAPIアクションについては、以下のリソースを参照してください。
-
の application-autoscaling セクション AWS CLI コマンドリファレンス
-
アプリケーション Auto Scaling ユーザーガイドhttps://docs.aws.amazon.com/autoscaling/application/userguide/