AWSPremiumSupport-ResizeNitroInstance - AWS Systems Manager Referensi buku runbook otomatisasi

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

AWSPremiumSupport-ResizeNitroInstance

Deskripsi

AWSPremiumSupport-ResizeNitroInstanceRunbook ini menyediakan solusi otomatis untuk mengubah ukuran instans Amazon Elastic Compute Cloud (Amazon EC2) yang dibangun di Sistem Nitro.

Untuk mengurangi potensi risiko kehilangan data dan downtime, runbook memverifikasi hal-hal berikut:

  • Perilaku berhenti contoh.

  • Jika instans adalah bagian dari grup EC2 Auto Scaling Amazon, dan dalam standby mode.

  • Status instans dan sewa.

  • Jenis instans yang ingin Anda ubah untuk mendukung jumlah antarmuka jaringan yang saat ini dilampirkan ke instance Anda.

  • Arsitektur prosesor dan jenis virtualisasi untuk tipe instans saat ini dan target adalah sama.

  • Jika instance sedang berjalan, itu melewati semua pemeriksaan status.

  • Jenis instans yang ingin Anda ubah tersedia di Availability Zone yang sama.

Jika Amazon EC2 tidak lulus pemeriksaan status setelah mengubah jenis instance, runbook secara otomatis memutar kembali ke jenis instance sebelumnya.

Secara default, runbook ini tidak akan mengubah jenis instance jika sedang berjalan dan volume penyimpanan instance dilampirkan. Runbook juga tidak akan mengubah jenis instance jika instance adalah bagian dari AWS CloudFormation tumpukan. Jika Anda ingin mengubah salah satu dari perilaku ini, yes tentukan AllowCloudFormationInstances parameter AllowInstanceStoreInstances dan.

Runbook menyediakan dua cara berbeda untuk menentukan jenis instance yang ingin Anda ubah:

  • Untuk otomatisasi sederhana yang menargetkan satu instance, tentukan jenis instance yang ingin Anda ubah menggunakan parameter. TargetInstanceTypeFromParameter

  • Untuk menjalankan otomatisasi pada skala untuk mengubah jenis instance dari beberapa instance, tentukan jenis instance menggunakan parameter. TargetInstanceTypeFromTagValue Untuk informasi tentang menjalankan otomatisasi dalam skala besar, lihat Menjalankan otomatisasi dalam skala besar.

Jika Anda tidak menentukan nilai untuk salah satu parameter, otomatisasi gagal.

penting

Akses ke AWSPremiumSupport-* runbook memerlukan Langganan Enterprise atau Business Support. Untuk informasi selengkapnya, lihat Bandingkan Dukungan Paket.

Pertimbangan-pertimbangan

  • Kami merekomendasikan untuk membuat cadangan instance Anda sebelum menggunakan runbook ini.

  • Untuk informasi tentang kompatibilitas untuk mengubah jenis instance, lihat Kompatibilitas untuk mengubah jenis instance.

  • Jika otomatisasi gagal dan kembali ke jenis instans asli, lihat Memecahkan masalah mengubah jenis instance.

  • Mengubah jenis instance membutuhkan runbook untuk menghentikan instance Anda. Ketika sebuah instance dihentikan, data apa pun yang disimpan dalam memori atau pada volume penyimpanan instance hilang. Juga, setiap IPv4 alamat publik yang ditetapkan secara otomatis akan dirilis. Untuk informasi selengkapnya tentang apa yang terjadi ketika Anda menghentikan sebuah instans, lihat Berhenti dan mulai instance Anda.

  • Dengan menggunakan SkipInstancesWithTagKey parameter, Anda dapat melewati instance yang memiliki kunci EC2 tag Amazon tertentu yang diterapkan.

Jalankan Otomasi ini (konsol)

Jenis dokumen

Otomatisasi

Pemilik

Amazon

Platform

Linux, Windows

Parameter

  • AutomationAssumeRole

    Tipe: String

    Deskripsi: (Opsional) Nama Sumber Daya Amazon (ARN) peran AWS Identity and Access Management (IAM) yang memungkinkan Otomasi Systems Manager untuk melakukan tindakan atas nama Anda. Jika tidak ada peran yang ditentukan, Systems Manager Automation menggunakan izin pengguna yang memulai runbook ini.

  • Akui

    Tipe: String

    Deskripsi: (Wajib) Enter yes untuk mengetahui bahwa instans Anda akan dihentikan jika sedang berjalan.

  • AllowInstanceStoreInstances

    Tipe: String

    Nilai yang valid: tidak | ya

    Default: no

    Deskripsi: (Opsional) Jika Anda menentukanyes, Anda mengizinkan runbook berjalan pada instance yang memiliki volume penyimpanan instans yang dilampirkan.

  • AllowCloudFormationInstances

    Tipe: String

    Nilai yang valid: tidak | ya

    Default: no

    Deskripsi: (Opsional) Jika Anda menentukanyes, runbook berjalan pada instance yang merupakan bagian dari tumpukan. AWS CloudFormation

  • DryRun

    Tipe: String

    Nilai yang valid: tidak | ya

    Default: no

    Deskripsi: (Opsional) Jika Anda menentukanyes, buku runbook memvalidasi persyaratan pengubahan ukuran tanpa membuat perubahan pada jenis instance.

  • InstanceId

    Tipe: String

    Deskripsi: (Wajib) ID EC2 instance Amazon yang tipenya ingin Anda ubah.

  • SkipInstancesWithTagKey

    Tipe: String

    Deskripsi: (Opsional) Otomatisasi melewatkan instance target jika kunci tag yang Anda tentukan diterapkan ke instance.

  • SleepTime

    Tipe: String

    Default: 3

    Deskripsi: (Opsional) Jumlah detik runbook ini harus tidur setelah selesai.

  • TagInstance

    Tipe: String

    Deskripsi: (Opsional) Tandai instance dengan kunci dan nilai pilihan Anda menggunakan format berikut:Key=ChangingType,Value=True. Opsi ini memungkinkan Anda untuk melacak instance yang telah ditargetkan oleh runbook ini. Kunci dan nilai tanda peka huruf besar-kecil.

  • TargetInstanceTypeFromParameter

    Tipe: String

    Deskripsi: (Opsional) Jenis instans yang ingin Anda ubah instans Anda. Biarkan parameter ini kosong jika Anda ingin menggunakan nilai kunci tag yang disediakan dalam TargetInstanceTypeFromTagValue parameter.

  • TargetInstanceTypeFromTagValue

    Tipe: String

    Deskripsi: (Opsional) Kunci tag diterapkan ke instance target Anda yang nilainya berisi jenis instance yang ingin Anda ubah. Jika Anda menentukan nilai untuk TargetInstanceTypeFromParameter parameter, itu akan mengganti nilai apa pun yang Anda tentukan untuk parameter ini.

Izin IAM yang diperlukan

AutomationAssumeRoleParameter memerlukan tindakan berikut untuk menggunakan runbook dengan sukses.

  • autoscaling:DescribeAutoScalingInstances

  • cloudformation:DescribeStackResources

  • ssm:GetAutomationExecution

  • ssm:DescribeAutomationExecutions

  • ec2:DescribeInstanceAttribute

  • ec2:DescribeInstances

  • ec2:DescribeInstanceStatus

  • ec2:DescribeInstanceTypeOfferings

  • ec2:DescribeInstanceTypes

  • ec2:DescribeTags

  • ec2:ModifyInstanceAttribute

  • ec2:StartInstances

  • ec2:StopInstances

Langkah Dokumen

  1. aws:assertAwsResourceProperty: Memastikan EC2 instance Amazon tidak ditandai dengan kunci tag sumber daya yang ditentukan dalam SkipInstancesWithTagKey parameter. Jika kunci tag ditemukan diterapkan ke instance, langkah gagal dan otomatisasi berakhir.

  2. aws:assertAwsResourceProperty: Mengonfirmasi status EC2 instans Amazon target adalahrunning,pending,stopped, ataustopping. Jika tidak, otomatisasi berakhir.

  3. aws:executeAwsApi: Mengumpulkan properti dari EC2 instance Amazon.

  4. aws:executeAwsApi: Mengumpulkan detail tentang jenis EC2 instans Amazon saat ini.

  5. aws:branch: Memeriksa apakah jenis instance saat ini dan jenis instance yang ditentukan dalam TargetInstanceTypeFromParameter parameter adalah sama. Jika ya, otomatisasi berakhir.

  6. aws:assertAwsResourceProperty: Memastikan instance berjalan pada Sistem Nitro.

  7. aws:branch: Memastikan jenis volume root EC2 instans Amazon adalah volume Amazon Elastic Block Store (Amazon EBS).

  8. aws:assertAwsResourceProperty: Mengonfirmasi perilaku shutdown instance stop dan tidakterminate.

  9. aws:branch: Memastikan EC2 instans Amazon bukan instance Spot.

  10. aws:branch: Memastikan penyewaan EC2 instans Amazon adalah default dan bukan host khusus, atau instance khusus.

  11. aws:executeScript: Mengonfirmasi hanya ada satu otomatisasi runbook ini yang menargetkan ID instance saat ini. Jika otomatisasi lain sedang berlangsung dengan menargetkan instance yang sama, otomatisasi mengembalikan kesalahan dan berakhir.

  12. aws:branch: Memcabangkan otomatisasi berdasarkan status EC2 instans Amazon.

    1. Jika stopped ataustopping, otomatisasi berjalan aws:waitForAwsResourceProperty hingga EC2 instans Amazon sepenuhnya dihentikan.

    2. Jika running ataupending, otomatisasi berjalan aws:waitForAwsResourceProperty hingga EC2 instans Amazon melewati pemeriksaan status.

  13. aws:assertAwsResourceProperty: Mengonfirmasi bahwa EC2 instans Amazon bukan bagian dari grup Auto Scaling dengan memanggil operasi DescribeAutoScalingInstances API. Jika instance merupakan bagian dari grup Auto Scaling, pastikan EC2 instans Amazon dalam standby mode.

  14. aws:branch: Memcabangkan otomatisasi tergantung pada apakah Anda ingin otomatisasi memeriksa apakah EC2 instans Amazon adalah bagian dari AWS CloudFormation tumpukan:

    1. aws:executeScriptMemastikan EC2 instans Amazon bukan bagian dari AWS CloudFormation tumpukan dengan memanggil operasi DescribeStackResources API.

  15. aws:executeAwsApi: Mengembalikan daftar tipe instance dengan tipe arsitektur prosesor yang sama, tipe virtulization, dan yang mendukung jumlah antarmuka jaringan yang saat ini dilampirkan ke instance target.

  16. aws:executeAwsApi: Mendapat nilai tipe instance target dari kunci tag yang ditentukan dalam TargetInstanceTypeFromTagValue parameter.

  17. aws:executeScript: Mengonfirmasi bahwa jenis instance saat ini dan target kompatibel. Memastikan bahwa jenis instance target tersedia di subnet yang sama. Memverifikasi kepala sekolah yang memulai runbook memiliki izin untuk mengubah jenis instance, dan menghentikan dan memulai instance jika sedang berjalan.

  18. aws:branch: Memcabangkan otomatisasi berdasarkan apakah nilai DryRun parameter disetel keyes. Jikayes, otomatisasi berakhir.

  19. aws:branch: Memeriksa apakah jenis instans asli dan target sama. Jika mereka sama, otomatisasi berakhir.

  20. aws:executeAwsApi: Mendapat status instance saat ini.

  21. aws:changeInstanceState: Menghentikan EC2 instance Amazon.

  22. aws:changeInstanceState: Memaksa instance untuk berhenti jika macet di stopping negara bagian.

  23. aws:executeAwsApi: Mengubah jenis instance ke tipe instance target.

  24. aws:sleep: Menunggu 3 detik setelah mengubah jenis instance untuk konsistensi akhirnya.

  25. aws:branch: Memcabangkan otomatisasi berdasarkan status instance sebelumnya. Jika yarunning, instance dimulai.

    1. aws:changeInstanceState: Memulai EC2 instance Amazon jika dijalankan sebelum mengubah jenis instance.

    2. aws:waitForAwsResourceProperty: Menunggu EC2 instans Amazon untuk lulus pemeriksaan status. Jika instance tidak lulus pemeriksaan status, instance diubah kembali ke tipe instans aslinya.

      1. aws:changeInstanceState: Menghentikan EC2 instans Amazon sebelum mengubahnya ke jenis instans aslinya.

      2. aws:changeInstanceState: Memaksa EC2 instans Amazon untuk berhenti sebelum mengubahnya ke jenis instans aslinya jika macet dalam keadaan berhenti.

      3. aws:executeAwsApi: Mengubah EC2 instans Amazon ke tipe aslinya.

      4. aws:sleep: Menunggu 3 detik setelah mengubah jenis instance untuk konsistensi akhirnya.

      5. aws:changeInstanceState: Memulai EC2 instance Amazon jika dijalankan sebelum mengubah jenis instance.

      6. aws:waitForAwsResourceProperty: Menunggu EC2 instans Amazon untuk lulus pemeriksaan status.

  26. aws:sleep: Menunggu sebelum mengakhiri runbook.