Mengelola Penskalaan Armada Menggunakan AWS CLI untuk Amazon 2.0 AppStream - Amazon AppStream 2.0

Terjemahan disediakan oleh mesin penerjemah. Jika konten terjemahan yang diberikan bertentangan dengan versi bahasa Inggris aslinya, utamakan versi bahasa Inggris.

Mengelola Penskalaan Armada Menggunakan AWS CLI untuk Amazon 2.0 AppStream

Anda dapat mengatur dan mengelola penskalaan armada dengan menggunakan AWS Command Line Interface (AWS CLI). Untuk fitur yang lebih canggih seperti menyiapkan beberapa kebijakan penskalaan atau menyetel waktu cooldown scale-in dan scale-out, gunakan. AWS CLI Sebelum menjalankan perintah kebijakan penskalaan, Anda harus mendaftarkan armada Anda sebagai target yang dapat diskalakan. Untuk melakukannya, gunakan register-scalable-targetperintah berikut:

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

Contoh 1: Menerapkan Kebijakan Penskalaan Berdasarkan Pemanfaatan Kapasitas

AWS CLIContoh ini menetapkan kebijakan penskalaan yang menskalakan armada sebesar 25% jika Pemanfaatan >= 75%.

put-scaling-policyPerintah berikut mendefinisikan kebijakan penskalaan berbasis pemanfaatan:

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

Isi file scale-out-utilization.json adalah sebagai berikut:

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

Jika perintah berhasil, outputnya mirip dengan yang berikut ini, meskipun beberapa detail unik untuk akun dan Wilayah Anda. Dalam contoh ini, pengidentifikasi kebijakan adalahe3425d21-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"}

Sekarang, siapkan CloudWatch alarm untuk kebijakan ini. Gunakan nama, Wilayah, nomor akun, dan pengenal kebijakan yang berlaku untuk Anda. Anda dapat menggunakan kebijakan yang ARN ditampilkan oleh perintah sebelumnya untuk --alarm-actions parameter.

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"

Contoh 2: Menerapkan Kebijakan Penskalaan Berdasarkan Kesalahan Kapasitas yang Tidak Cukup

AWS CLIContoh ini menetapkan kebijakan penskalaan yang menskalakan armada sebanyak 1 jika armada mengembalikan InsufficientCapacityError kesalahan.

Perintah berikut mendefinisikan kebijakan penskalaan berbasis kapasitas yang tidak memadai:

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

Isi file scale-out-capacity.json adalah sebagai berikut:

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

Jika perintah berhasil, outputnya mirip dengan yang berikut ini, meskipun beberapa detail unik untuk akun dan Wilayah Anda. Dalam contoh ini, pengidentifikasi kebijakan adalahf4495f21-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"}

Sekarang, siapkan CloudWatch alarm untuk kebijakan ini. Gunakan nama, Wilayah, nomor akun, dan pengenal kebijakan yang berlaku untuk Anda. Anda dapat menggunakan kebijakan yang ARN ditampilkan oleh perintah sebelumnya untuk --alarm-actions parameter.

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"

Contoh 3: Menerapkan Kebijakan Penskalaan Berdasarkan Pemanfaatan Kapasitas Rendah

AWS CLI Contoh ini menetapkan kebijakan penskalaan yang menskalakan armada untuk mengurangi kapasitas aktual saat CapacityUtilization rendah.

Perintah berikut mendefinisikan kebijakan penskalaan berbasis kapasitas berlebih:

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

Isi file scale-in-capacity.json adalah sebagai berikut:

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

Jika perintah berhasil, outputnya mirip dengan yang berikut ini, meskipun beberapa detail unik untuk akun dan Wilayah Anda. Dalam contoh ini, pengidentifikasi kebijakan adalah12ab3c4d-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"}

Sekarang, siapkan CloudWatch alarm untuk kebijakan ini. Gunakan nama, Wilayah, nomor akun, dan pengenal kebijakan yang berlaku untuk Anda. Anda dapat menggunakan kebijakan yang ARN ditampilkan oleh perintah sebelumnya untuk --alarm-actions parameter.

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"

Contoh 4: Ubah Kapasitas Armada Berdasarkan Jadwal

Mengubah kapasitas armada berdasarkan jadwal memungkinkan Anda menskalakan kapasitas armada Anda dalam menanggapi perubahan permintaan yang dapat diprediksi. Misalnya, pada awal hari kerja, Anda mungkin mengharapkan sejumlah pengguna untuk meminta koneksi streaming pada satu waktu. Untuk mengubah kapasitas armada berdasarkan jadwal, Anda dapat menggunakan PutScheduledActionAPItindakan Application Auto Scaling atau perintah. put-scheduled-action AWS CLI

Sebelum mengubah kapasitas armada Anda, Anda dapat membuat daftar kapasitas armada Anda saat ini dengan menggunakan perintah AppStream 2.0 AWS CLIdescribe-fleet.

aws appstream describe-fleets --name fleetname

Kapasitas armada saat ini akan tampak mirip dengan output berikut (ditunjukkan dalam JSON format):

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

Kemudian, gunakan put-scheduled-action perintah untuk membuat tindakan terjadwal untuk mengubah kapasitas armada Anda. Misalnya, perintah berikut mengubah kapasitas minimum menjadi 3 dan kapasitas maksimum menjadi 5 setiap hari pada pukul 9:00 pagiUTC.

catatan

Untuk ekspresi cron, tentukan kapan harus melakukan tindakan diUTC. Untuk informasi selengkapnya, lihat Ekspresi 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

Untuk mengonfirmasi bahwa tindakan terjadwal untuk mengubah kapasitas armada Anda berhasil dibuat, jalankan describe-scheduled-actionsperintah.

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

Jika tindakan terjadwal berhasil dibuat, output muncul mirip dengan berikut ini.

{ "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" } ] }

Untuk informasi selengkapnya, lihat Penskalaan Terjadwal di Panduan Pengguna Application Auto Scaling.

Contoh 5: Menerapkan Kebijakan Penskalaan Pelacakan Target

Dengan penskalaan pelacakan target, Anda dapat menentukan tingkat pemanfaatan kapasitas untuk armada Anda.

Saat Anda membuat kebijakan penskalaan pelacakan target, Application Auto Scaling secara otomatis membuat dan CloudWatch mengelola alarm yang memicu kebijakan penskalaan. Kebijakan penskalaan menambah atau menghapus kapasitas yang diperlukan untuk menjaga pemanfaatan kapasitas pada, atau mendekati, nilai target yang ditentukan. Untuk memastikan ketersediaan aplikasi, armada Anda menskalakan secara proporsional dengan metrik secepat mungkin, tetapi skala lebih bertahap.

put-scaling-policyPerintah berikut mendefinisikan kebijakan penskalaan pelacakan target yang mencoba mempertahankan pemanfaatan kapasitas 75% untuk armada 2.0. AppStream

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

Isi file config.json adalah sebagai berikut:

{ "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 } }

Jika perintah berhasil, outputnya mirip dengan yang berikut ini, meskipun beberapa detail unik untuk akun dan Wilayah Anda. Dalam contoh ini, pengidentifikasi kebijakan adalah 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" } ] }

Untuk informasi selengkapnya, lihat Kebijakan Penskalaan Pelacakan Target di Panduan Pengguna Application Auto Scaling.