Penskalaan otomatis untuk Pools WorkSpaces - Amazon WorkSpaces

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

Penskalaan otomatis untuk Pools WorkSpaces

Auto Scaling memungkinkan Anda mengubah ukuran WorkSpaces pool secara otomatis agar sesuai dengan pasokan instans yang tersedia dengan permintaan pengguna. Ukuran pool Anda menentukan jumlah pengguna yang dapat melakukan streaming secara bersamaan. Satu contoh diperlukan untuk setiap sesi pengguna. Anda dapat menentukan kapasitas kumpulan Anda dalam hal instance. Berdasarkan konfigurasi kumpulan dan kebijakan penskalaan otomatis, jumlah instans yang diperlukan akan tersedia. Anda dapat menentukan kebijakan penskalaan yang menyesuaikan ukuran kumpulan Anda secara otomatis berdasarkan berbagai metrik pemanfaatan, dan mengoptimalkan jumlah instans yang tersedia agar sesuai dengan permintaan pengguna. Anda juga dapat memilih untuk mematikan penskalaan otomatis dan membuat kolam berjalan pada ukuran tetap.

catatan
  • Saat Anda mengembangkan rencana untuk penskalaan WorkSpaces Pools, pastikan konfigurasi jaringan Anda memenuhi persyaratan Anda.

  • Saat Anda menggunakan penskalaan, Anda bekerja dengan Application Auto API Scaling. Agar Auto Scaling WorkSpaces Pools berfungsi dengan benar, Application Auto Scaling memerlukan izin untuk mendeskripsikan dan memperbarui Pools WorkSpaces Anda serta menjelaskan alarm CloudWatch Amazon Anda, serta izin untuk mengubah kapasitas kumpulan Anda atas nama Anda.

Topik berikut memberikan informasi untuk membantu Anda memahami dan menggunakan Auto Scaling WorkSpaces Pools.

Konsep penskalaan

WorkSpaces Penskalaan kolam disediakan oleh Application Auto Scaling. Untuk informasi selengkapnya, lihat Referensi Application Auto Scaling. API

Untuk menggunakan WorkSpaces Pools Auto Scaling secara efektif, Anda harus memahami istilah dan konsep berikut.

Kapasitas minimum/sesi pengguna minimum untuk kolam

Jumlah minimum instance. Jumlah instans tidak boleh di bawah nilai ini, dan kebijakan penskalaan tidak akan menskalakan kumpulan Anda di bawah nilai ini. Misalnya, jika Anda mengatur kapasitas minimum untuk kolam menjadi 2, kolam Anda tidak akan pernah memiliki kurang dari 2 instance.

Kapasitas maksimum/sesi pengguna maksimum untuk kolam

Jumlah maksimum instance. Jumlah instans tidak dapat melebihi nilai ini, dan kebijakan penskalaan tidak akan menskalakan kumpulan Anda di atas nilai ini. Misalnya, jika Anda mengatur kapasitas maksimum untuk kolam menjadi 10, kolam Anda tidak akan pernah memiliki lebih dari 10 instance.

Kapasitas yang diinginkan

Jumlah total instance yang berjalan atau tertunda. Nilai ini mewakili jumlah total sesi streaming bersamaan yang dapat didukung oleh pool Anda dalam kondisi mapan.

Tindakan kebijakan penskalaan

Tindakan yang dilakukan kebijakan penskalaan di kumpulan Anda saat Kondisi Kebijakan Penskalaan terpenuhi. Anda dapat memilih tindakan berdasarkan kapasitas% atau jumlah instans. Misalnya, jika Kapasitas yang Diinginkan adalah 4 dan Tindakan Kebijakan Penskalaan diatur ke “Tambahkan 25% kapasitas”, Kapasitas yang Diinginkan ditingkatkan sebesar 25% menjadi 5 saat Kondisi Kebijakan Penskalaan terpenuhi.

Kondisi kebijakan penskalaan

Kondisi yang memicu tindakan yang ditetapkan dalam Tindakan Kebijakan Penskalaan. Kondisi ini mencakup metrik kebijakan penskalaan, operator perbandingan, dan ambang batas. Misalnya, untuk menskalakan kolam jika pemanfaatan kolam lebih besar dari 50%, kondisi kebijakan penskalaan Anda harus “Jika Pemanfaatan Kapasitas > 50%”.

Metrik kebijakan penskalaan

Kebijakan penskalaan Anda didasarkan pada metrik ini. Metrik berikut tersedia untuk kebijakan penskalaan:

Pemanfaatan Kapasitas

Persentase contoh di kolam yang sedang digunakan. Anda dapat menggunakan metrik ini untuk menskalakan kolam Anda berdasarkan penggunaan kolam. Misalnya, Kondisi Kebijakan Penskalaan: “Jika Pemanfaatan Kapasitas < 25%" melakukan Tindakan Kebijakan Penskalaan: “Hapus kapasitas 25%”.

Kapasitas yang tersedia

Jumlah instance di kolam Anda yang tersedia untuk pengguna. Anda dapat menggunakan metrik ini untuk mempertahankan buffer dalam kapasitas Anda yang tersedia bagi pengguna untuk memulai sesi streaming. Misalnya, Kondisi Kebijakan Penskalaan: “Jika Kapasitas Tersedia < 5" melakukan Tindakan Kebijakan Penskalaan: “Tambahkan 5 instans”.

Kesalahan kapasitas tidak mencukupi

Jumlah permintaan sesi ditolak karena kurangnya kapasitas. Anda dapat menggunakan metrik ini untuk menyediakan instans baru bagi pengguna yang tidak dapat memulai sesi streaming karena kurangnya kapasitas. Misalnya, Kondisi Kebijakan Penskalaan: “Jika Kesalahan Kapasitas Tidak Cukup > 0" lakukan Tindakan Kebijakan Penskalaan: “Tambahkan 1 instans”.

Mengelola penskalaan kumpulan menggunakan konsol

Anda dapat mengatur dan mengelola penskalaan menggunakan konsol WorkSpaces Pools dengan salah satu dari dua cara berikut: Selama pembuatan pool, atau kapan saja, dengan menggunakan tab Pools. Setelah Anda membuat kumpulan, buka tab Kebijakan Penskalaan untuk menambahkan kebijakan penskalaan baru untuk kumpulan Anda. Untuk informasi selengkapnya, lihat Buat WorkSpaces Pool.

Untuk lingkungan pengguna yang jumlahnya bervariasi, tentukan kebijakan penskalaan untuk mengontrol bagaimana penskalaan merespons permintaan. Jika Anda mengharapkan jumlah pengguna tetap atau memiliki alasan lain untuk menonaktifkan penskalaan, Anda dapat mengatur kumpulan Anda dengan jumlah instans tetap untuk sesi pengguna.

Untuk menyetel kebijakan penskalaan kumpulan menggunakan konsol
  1. Buka WorkSpaces konsol di https://console.aws.amazon.com/workspaces/.

  2. Di panel navigasi, pilih Pools.

  3. Pilih kolam renang.

  4. Di halaman kolam itu, gulir ke bawah ke kapasitas dan penskalaan.

  5. Pilih Edit.

  6. Edit kebijakan yang ada dan tetapkan nilai yang diinginkan di bidangnya dan pilih Simpan. Perubahan kebijakan mulai berlaku dalam beberapa menit.

  7. Anda juga dapat menambahkan kebijakan kapasitas dan penskalaan baru dengan memilih Tambahkan kapasitas jadwal baru, Menambahkan kebijakan penskalaan baru, atau Tambahkan skala baru dalam kebijakan.

Berikut ini adalah contoh grafik penggunaan aktivitas penskalaan ketika lima pengguna terhubung ke pool dan kemudian memutuskan sambungan. Contoh ini berasal dari kumpulan menggunakan nilai kebijakan penskalaan berikut:

  • Kapasitas minimum = 10

  • Kapasitas maksimum = 50

  • Scale out = Jika Pemanfaatan Kapasitas kolam saya Lebih Besar dari 75% maka tambahkan 5 instance

  • Skala dalam = Jika Pemanfaatan Kapasitas kolam saya Kurang dari 25% maka hapus 6 instance

    catatan

    Selama sesi, 5 instans baru akan diluncurkan selama acara skala keluar, dan 4 instance akan direklamasi selama acara penurunan skala. Selama skala dalam acara, layanan akan merebut kembali roundup (menghapus 6 sesi pengguna/sesi maksimum per instance 4) = 2 instance. Instans dengan sesi pengguna yang sedang berjalan tidak akan direklamasi. Hanya instance tanpa sesi pengguna yang berjalan yang akan direklamasi.

Mengelola penskalaan kolam Menggunakan AWS CLI

Anda dapat mengatur dan mengelola penskalaan kumpulan 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 kumpulan Anda sebagai target yang dapat diskalakan. Untuk melakukannya, gunakan register-scalable-targetperintah berikut:

aws application-autoscaling register-scalable-target --service-namespace workspaces \ --resource-id workspacespool/PoolId \ --scalable-dimension workspaces:workspacespool:DesiredCapacity \ --min-capacity 1 --max-capacity 5

Contoh 1: Menerapkan kebijakan penskalaan berdasarkan pemanfaatan kapasitas

AWS CLIContoh ini menetapkan kebijakan penskalaan yang menskalakan kumpulan 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": "workspaces", "ResourceId": "workspacespool/PoolId", "ScalableDimension": "workspaces:workspacespool: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/workspaces/workspacespool/PoolId: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/WorkSpaces \ --statistic Average \ --period 300 \ --threshold 75 \ --comparison-operator GreaterThanOrEqualToThreshold \ --dimensions "Name=Pool,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"

Contoh 2: Menerapkan kebijakan penskalaan berdasarkan kesalahan kapasitas yang tidak mencukupi

AWS CLIContoh ini menetapkan kebijakan penskalaan yang menskalakan kumpulan sebanyak 1 jika kumpulan 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": "workspaces", "ResourceId": "workspacespool/PoolId", "ScalableDimension": "workspaces:workspacespool: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/workspaces/workspacespool/PoolId: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/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"

Contoh 3: Menerapkan kebijakan penskalaan berdasarkan pemanfaatan kapasitas rendah

AWS CLI Contoh ini menetapkan kebijakan penskalaan yang menskalakan di kolam 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": "workspaces", "ResourceId": "workspacespool/PoolId", "ScalableDimension": "workspaces:workspacespool: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/workspaces/workspacespool/PoolId: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/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"

Contoh 4: Ubah kapasitas kolam berdasarkan jadwal

Mengubah kapasitas kolam berdasarkan jadwal memungkinkan Anda menskalakan kapasitas kolam Anda sebagai respons terhadap 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 pool berdasarkan jadwal, Anda dapat menggunakan PutScheduledActionAPItindakan Application Auto Scaling atau perintah. put-scheduled-action AWS CLI

Sebelum mengubah kapasitas pool, Anda dapat membuat daftar kapasitas pool Anda saat ini dengan menggunakan describe-workspaces-pools AWS CLIperintah WorkSpaces Pools.

aws workspaces describe-workspaces-pools --name PoolId

Kapasitas pool saat ini akan tampak mirip dengan output berikut (ditampilkan 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 kumpulan 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 workspaces \ --resource-id workspacespool/PoolId \ --schedule="cron(0 9 * * ? *)" \ --scalable-target-action MinCapacity=3,MaxCapacity=5 \ --scheduled-action-name ExampleScheduledAction \ --scalable-dimension workspaces:workspacespool:DesiredCapacity

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

aws application-autoscaling describe-scheduled-actions --service-namespace workspaces --resource-id workspacespool/PoolId

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

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

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 kumpulan 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, kumpulan 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 Pools. WorkSpaces

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":"workspaces", "ResourceId":"workspacespool/PoolId", "ScalableDimension":"workspaces:workspacespool:DesiredCapacity", "PolicyType":"TargetTrackingScaling", "TargetTrackingScalingPolicyConfiguration":{ "TargetValue":75.0, "PredefinedMetricSpecification":{ "PredefinedMetricType":"WorkSpacesAverageCapacityUtilization" }, "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/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" } ] }

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

Sumber daya tambahan

Untuk mempelajari lebih lanjut tentang menggunakan AWS CLI perintah atau API tindakan Application Auto Scaling, lihat sumber daya berikut: