View a markdown version of this page

AWSSupport-CloneXenEC2InstanceAndMigrateToNitro - AWS Systems Manager Referensi 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-CloneXenEC2InstanceAndMigrateToNitroRunbook mengkloning, menyiapkan, dan memigrasikan instans Linux Amazon Elastic Compute Cloud (Amazon EC2) yang dikloning, yang saat ini berjalan di platform Amazon EC2 Xen, untuk dijalankan di platform Amazon EC2 Nitro. https://docs.aws.amazon.com/AWSEC2/latest/UserGuide/instance-types.html#ec2-nitro-instances Otomatisasi ini dibagi menjadi tiga cabang yang berbeda:

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

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

  • CloneAndMigrate: Membuat tiruan 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 instans ditutup dengan lancar. Jika instans Amazon EC2 tidak memiliki alamat IP Elastic yang terkait, alamat IPv4 publik otomatis akan berubah setelah instans dihentikan dan dimulai.

penting

Penafi an: Menjalankan runbook ini dapat dikenakan biaya tambahan ke akun Anda untuk instans Amazon EC2, Amazon EBS Volumes & s. AMI Silakan lihat Harga Amazon EC2 & harga Amazon EBS untuk detail selengkapnya.

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 unzip menggunakan manajer paket jika diperlukan.

Sistem Operasi yang Didukung

  • Red Hat Enterprise Linux (RHEL) 8 dan 9

  • Amazon Linux 2 dan AL2023

  • Ubuntu Server 18.04 LTS, 20.04 dan 22.04

  • Debian 11 dan 12 (hanya AWS partisi)

  • SUSE12SP5 dan SUSE15SP (5,6)

Bagaimana cara kerjanya?

Runbook melakukan langkah-langkah tingkat tinggi berikut:

  • Memvalidasi prasyarat dan memeriksa apakah instance cocok untuk migrasi.

  • Membuat dan menguji sebuah AMI untuk memastikan migrasi akan berhasil.

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

  • Memverifikasi dan mengonfigurasi modul NVMe di initramfs.

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

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

  • Mengubah tipe instance kloning ke tipe Nitro yang diinginkan.

  • Membuat final AMI yang dapat digunakan sebagai Gambar Emas untuk meluncurkan instance Nitro.

Jalankan Otomatisasi 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 mengkonfigurasi otomatisasi:

  1. Arahkan ke AWSSupport-CloneXenEC2InstanceAndMigrateToNitro dalam Manajer Sistem di bawah Dokumen.

  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 Otomasi Manajer Sistem untuk melakukan tindakan atas nama Anda. Jika tidak ada peran yang ditentukan, Sistem Manajer Otomasi menggunakan izin pengguna yang memulai runbook ini.

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

    • TargetInstanceId (Diperlukan):

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

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

    • NitroInstanceType (Opsional):

      • Deskripsi: (Opsional) Masukkan jenis instance Nitro tujuan. Hanya instance Nitro M5, M6, C5, C6, R5, R6 dan T3 yang didukung (misalnya t3.small). Standar: 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: (Diperlukan) 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: (Diperlukan) Berikan daftar AWS prinsipal yang diautentikasi yang dapat menyetujui atau menolak tindakan. 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. Standar: 1.

      • Jenis: Integer

      • Default: 1

    • DeleteResourcesOnFailure (Opsional):

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

      • Tipe: Boolean

      • Nilai yang Diizinkan: [true, false]

      • Default: true

    • Pengakuan (Diperlukan):

      • Deskripsi: (Diperlukan) Harap baca detail lengkap dari 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 instans yang memiliki volume penyimpanan instans terlampir. Peringatan: data dalam volume penyimpanan instans hilang saat instance dihentikan. Parameter ini membantu menghindari kehilangan data yang tidak disengaja.

      • Tipe: Boolean

      • Nilai yang Diizinkan: [yes, no]

      • Default: no

  4. Pilih J alankan.

  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 target Amazon EC2.

    • checkIfNitroInstanceTypeIsSupportedInAZ:

      Menentukan apakah jenis instans Nitro target didukung di Zona Ketersediaan yang sama dengan instans Amazon EC2 target.

    • createTestImage:

      Membuat pengujian AMI dari instance yang disediakan.

    • launchTestInstanceInSameSubnet:

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

    • approvalToStopTargetInstance:

      Menunggu persetujuan prinsipal yang ditunjuk untuk menghentikan instance target.

    • createBackupImage:

      Membuat sebuah AMI dari instance yang disediakan untuk cadangan.

    • launchInstanceInSameSubnet:

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

    • checkAndInstallENADrivers:

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

    • checkAndAddNVMEDrivers:

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

    • checkAndModifyFSTABEntries:

      Menentukan apakah nama perangkat digunakan /etc/fstab dan menggantinya dengan UUID mereka, 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 di-boot di platform Nitro.

    • createImageAfterDriversInstallation:

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

  7. Setelah selesai, tinjau bagian Out put untuk hasil terperinci dari eksekusi.

Referensi

AWS Systems Manager Otomatisasi