View a markdown version of this page

AWSSupport-CloneXenEC2InstanceAndMigrateToNitro - AWS Systems Manager Referensi Buku Runbook Otomasi

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

AWSSupport-CloneXenEC2InstanceAndMigrateToNitro

Deskripsi

AWSSupport-CloneXenEC2 InstanceAndMigrateToNitro runbook mengkloning, menyiapkan, dan memigrasikan instans Linux Amazon Elastic Compute Cloud (Amazon EC2) yang dikloning, yang saat ini berjalan di platform Amazon EC2 Xen, untuk berjalan di platform Amazon EC2 Nitro. Otomatisasi ini dibagi menjadi tiga cabang berbeda:

  • Pemeriksaan Awal: Mengevaluasi semua prasyarat untuk melanjutkan migrasi termasuk memeriksa apakah instans Amazon EC2 target sudah berjalan di platform Nitro, menentukan status siklus hidup, memvalidasi sistem operasi, dan memverifikasi konektivitas Systems Manager.

  • Pengujian: Membuat pengujian AMI dari instans Amazon EC2 target dan meluncurkan instance Amazon EC2 pengujian untuk memvalidasi proses migrasi sebelum melanjutkan.

  • CloneAndMigrate: Membuat tiruan dari instans Amazon EC2 target, menginstal driver yang diperlukan, mengonfigurasi sistem untuk platform Nitro, dan mengubah jenis instans ke tipe Nitro yang diinginkan.

penting

Sebelum memberikan persetujuan untuk menghentikan instans Amazon EC2 target, pastikan semua aplikasi yang berjalan pada instance ditutup dengan baik. Jika instans Amazon EC2 tidak memiliki alamat IP Elastis yang terkait, IPv4 alamat publik otomatis akan berubah setelah instans dihentikan dan dimulai.

penting

Penafian: Menjalankan runbook ini dapat dikenakan biaya tambahan ke akun Anda untuk instans Amazon EC2, Amazon EBS Volume & s. AMI Silakan lihat Harga Amazon EC2 & harga Amazon EBS untuk lebih jelasnya.

penting

Prasyarat

Instans Amazon EC2 target memerlukan akses keluar ke repositori untuk menginstal driver dan dependensi sepertikernel-devel,,,,,,,, gcc patch rpm-build wget dracut makelinux-headers, dan menggunakan manajer paket jika diperlukan. unzip

Sistem Operasi yang Didukung

  • Red Hat Enterprise Linux (RHEL) 8 dan 9

  • Amazon Linux 2 dan AL2023

  • Server Ubuntu 18.04 LTS, 20.04 dan 22.04

  • Debian 11 dan 12 (hanya AWS partisi)

  • SUSE12SP5 dan SUSE15 SP (5,6)

Bagaimana cara kerjanya?

Runbook melakukan langkah-langkah tingkat tinggi berikut:

  • Memvalidasi prasyarat dan memeriksa apakah instance cocok untuk migrasi.

  • Membuat dan menguji AMI untuk memastikan migrasi akan berhasil.

  • Mengaktifkan atribut Enhanced networking (ENA) dan menginstal driver ENA terbaru.

  • Memverifikasi dan mengonfigurasi NVMe modul di initramfs.

  • Menganalisis dan memodifikasi /etc/fstab untuk mengganti nama perangkat dengan. UUIDs

  • Menonaktifkan penamaan antarmuka yang dapat diprediksi dan menghapus aturan jaringan yang persisten.

  • Mengubah jenis instance kloning ke tipe Nitro yang diinginkan.

  • Membuat final AMI yang dapat digunakan sebagai Golden Image untuk meluncurkan instance Nitro.

Jalankan Otomasi ini (konsol)

Jenis dokumen

Otomatisasi

Pemilik

Amazon

Platform

Linux

Parameter

Izin IAM yang diperlukan

AutomationAssumeRoleParameter memerlukan tindakan berikut untuk menggunakan runbook dengan sukses.

  • autoscaling:DescribeAutoScalingInstances

  • ec2:CreateImage

  • ec2:CreateTags

  • ec2:DescribeImages

  • ec2:DescribeInstanceAttribute

  • ec2:DescribeInstances

  • ec2:DescribeInstanceStatus

  • ec2:DescribeInstanceTypeOfferings

  • ec2:DescribeInstanceTypes

  • ec2:DeregisterImage

  • ec2:ModifyInstanceAttribute

  • ec2:RunInstances

  • ec2:StartInstances

  • ec2:StopInstances

  • ec2:TerminateInstances

  • iam:PassRole

  • sns:Publish

  • ssm:DescribeAutomationExecutions

  • ssm:DescribeInstanceInformation

  • ssm:SendCommand

Contoh kebijakan IAM:

{ "Version": "2012-10-17", "Statement": [ { "Effect": "Allow", "Action": [ "autoscaling:DescribeAutoScalingInstances", "ec2:CreateImage", "ec2:CreateTags", "ec2:DescribeImages", :ec2:DescribeInstanceAttribute:, "ec2:DescribeInstances", "ec2:DescribeInstanceStatus", "ec2:DescribeInstanceTypes", "ec2:DeregisterImage", "ec2:ModifyInstanceAttribute", "ec2:RunInstances", "ec2:StartInstances", "ec2:StopInstances", "ec2:TerminateInstances", "iam:PassRole", "ssm:DescribeAutomationExecutions", "ssm:DescribeInstanceInformation", "ssm:SendCommand" ], "Resource": "*" } ] }

Instruksi

Ikuti langkah-langkah ini untuk mengonfigurasi otomatisasi:

  1. Arahkan ke AWSSupport-CloneXenEC2InstanceAndMigrateToNitroSystems Manager di bawah Documents.

  2. Pilih Execute automation.

  3. Untuk parameter input, masukkan yang berikut ini:

    • AutomationAssumeRole (Opsional):

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

      • Tipe: AWS::IAM::Role::Arn

    • TargetInstanceId (Diperlukan):

      • Deskripsi: (Wajib) ID Instance instans Amazon EC2 target yang ingin Anda migrasikan ke platform Nitro.

      • Tipe: AWS::EC2::Instance::Id

    • NitroInstanceType (Opsional):

      • Deskripsi: (Opsional) Masukkan jenis instans Nitro tujuan. Hanya instans Nitro M5, M6, C5, C6, R5, R6 dan T3 yang didukung (misalnya t3.small). Default: m5.xlarge.

      • Tipe: String

      • Pola yang Diizinkan: ^(m5a?z?d?n?|c5a?d?n?|r5a?d?n?b?|(c|m|r)6(a|i)?d?)\\.(2|4|8|12|16|24|32)?xlarge$|^t3a?\\.((x|2x)?large|nano|micro|small|medium)$

      • Default: m5.xlarge

    • SNSTopicArn (Diperlukan):

      • Deskripsi: (Wajib) Berikan ARN Topik Amazon SNS untuk pemberitahuan persetujuan. Topik Amazon SNS ini digunakan untuk mengirim pemberitahuan persetujuan selama eksekusi otomatisasi.

      • Tipe: String

      • Pola yang Diizinkan: ^arn:(aws|aws-cn|aws-us-gov|aws-iso(-[a-z])?):sns:(us(-gov|-isob?)?|ap|ca|af|me|cn|eu|sa)-(central|(north|south)?(east|west)?)-\\d:\\d{12}:[a-zA-Z0-9_.-]{1,256}$

    • ApproverIam (Diperlukan):

      • Deskripsi: (Wajib) Berikan daftar kepala sekolah AWS yang diautentikasi yang dapat menyetujui atau menolak tindakan tersebut. Jumlah maksimum pemberi persetujuan adalah 10.

      • Tipe: StringList

      • Pola yang Diizinkan: ^[a-zA-Z0-9_+=,.@\\-\/]{1,128}$|^arn:(aws|aws-cn|aws-us-gov|aws-iso(-[a-z])?):(sts|iam)::[0-9]{12}:[a-zA-Z0-9_+=,.@\\-\/]{1,256}$

    • MinimumRequiredApprovals (Opsional):

      • Deskripsi: (Opsional) Jumlah minimum persetujuan yang diperlukan untuk melanjutkan otomatisasi. Default: 1.

      • Jenis: Integer

      • Default: 1

    • DeleteResourcesOnFailure (Opsional):

      • Deskripsi: (Opsional) Apakah akan menghentikan instans Amazon EC2 yang dikloning AMI dan jika otomatisasi gagal.

      • Tipe: Boolean

      • Nilai yang Diizinkan: [true, false]

      • Default: true

    • Pengakuan (Diperlukan):

      • Deskripsi: (Wajib) Harap baca detail lengkap tindakan yang dilakukan oleh runbook otomatisasi ini dan tulis 'Ya, saya mengerti dan mengakui' jika Anda mengakui langkah-langkahnya.

      • Tipe: String

      • Pola yang Diizinkan: ^Yes, I understand and acknowledge$

    • AllowInstanceStoreInstances (Opsional):

      • Deskripsi: (Opsional) Jika Anda menentukanyes, runbook berjalan pada instance yang memiliki volume penyimpanan instance yang dilampirkan. Peringatan: data dalam volume penyimpanan instance hilang saat instance dihentikan. Parameter ini membantu menghindari kehilangan data yang tidak disengaja.

      • Tipe: Boolean

      • Nilai yang Diizinkan: [yes, no]

      • Default: no

  4. Pilih Jalankan.

  5. Otomatisasi dimulai.

  6. Dokumen melakukan langkah-langkah berikut:

    • checkConcurrency:

      Memastikan hanya ada satu eksekusi runbook ini yang menargetkan instans Amazon EC2 saat ini.

    • getTargetInstanceProperties:

      Mengambil detail instans Amazon EC2 target.

    • checkIfNitroInstanceTypeIsSupportedInAZ:

      Menentukan apakah jenis instans Nitro target didukung di Availability Zone yang sama dengan instans Amazon EC2 target.

    • createTestImage:

      Membuat tes AMI dari contoh yang disediakan.

    • launchTestInstanceInSameSubnet:

      Meluncurkan instans Amazon EC2 pengujian dari AMI pengujian menggunakan konfigurasi yang sama dengan instans Amazon EC2 target.

    • approvalToStopTargetInstance:

      Menunggu persetujuan kepala sekolah yang ditunjuk untuk menghentikan instance target.

    • createBackupImage:

      Membuat AMI dari contoh yang disediakan untuk cadangan.

    • launchInstanceInSameSubnet:

      Meluncurkan instans Amazon EC2 baru dari AMI cadangan menggunakan konfigurasi yang sama dengan instans Amazon EC2 sumber.

    • checkAndInstallENADrivers:

      Menentukan ketersediaan driver Enhanced Networking Adapter (ENA) pada instans Amazon EC2 dan penginstalan, jika tidak ada.

    • checkAndAddNVMEDrivers:

      Menentukan ketersediaan driver NVMe pada instans Amazon EC2 yang dikloning dan menginstal, jika tidak ada.

    • checkAndModifyFSTABEntries:

      Menentukan apakah nama perangkat digunakan /etc/fstab dan menggantinya dengan mereka UUIDs, jika ditemukan.

    • setNitroInstanceTypeForClonedInstance:

      Menetapkan jenis instans Amazon EC2 target yang disediakan untuk instans Amazon EC2 yang dikloning.

    • approvalForCreatingImageAfterDriversInstallation:

      Menunggu persetujuan pengguna jika instans Amazon EC2 yang dikloning berhasil melakukan boot di platform Nitro.

    • createImageAfterDriversInstallation:

      Membuat Gambar dari instans Amazon EC2 baru hanya jika instans Amazon EC2 baru berhasil melakukan boot di Platform Nitro.

  7. Setelah selesai, tinjau bagian Output untuk hasil eksekusi yang terperinci.

Referensi

AWS Systems Manager Otomasi