全部产品
Search
文档中心

CloudOps Orchestration Service:ACS-ECS-BulkyCloneInstances

更新时间:Jul 06, 2025

Nama Template

ACS-ECS-BulkyCloneInstances

Eksekusi Sekarang

Deskripsi Template

Mengkloning beberapa instance Elastic Compute Service (ECS) sekaligus. Perhatikan hal-hal berikut:

  • Sebelum mengkloning instance, pastikan semua driver yang diperlukan telah diinstal pada instance sumber. Jika tidak, instance yang dikloning mungkin gagal untuk mulai.

  • Proses kloning dilaksanakan berdasarkan gambar dan snapshot. Untuk mempertahankan semua data dari instance sumber dalam instance yang dikloning, termasuk data yang dihasilkan selama proses kloning, atur parameter IncrementSnapshot ke True. Jika tidak ingin mempertahankan data yang dihasilkan selama proses kloning, atur parameter IncrementSnapshot ke False. Kami menyarankan Anda untuk mengatur IncrementSnapshot ke False terlebih dahulu dan menguji apakah bisnis Anda dapat berjalan seperti yang diharapkan pada instance yang dikloning. Jika bisnis Anda berjalan dengan baik, Anda dapat mengatur parameter IncrementSnapshot ke True untuk memigrasi semua data.

  • Waktu yang diperlukan untuk membuat snapshot adalah dalam hitungan menit dan bervariasi berdasarkan ukuran disk. Snapshot pertama yang dibuat untuk sebuah disk adalah snapshot penuh, yang bisa memakan waktu hingga beberapa jam. Snapshot berikutnya adalah snapshot inkremental. Membuat snapshot penuh membutuhkan waktu lebih lama daripada snapshot inkremental. Waktu yang diperlukan untuk membuat snapshot inkremental bergantung pada jumlah data yang berubah sejak snapshot sebelumnya. Semakin besar perubahan data, semakin lama waktu yang diperlukan untuk membuat snapshot inkremental.

  • Pastikan bahwa disk dapat secara otomatis terpasang ke instance. Jika tidak, disk akan gagal terpasang ketika instance di-restart setelah migrasi.

  • Operasi kloning merupakan operasi berisiko tinggi. Jika Anda mengatur parameter IncrementSnapshot ke true, pastikan dampak shutdown instance terhadap bisnis Anda dapat dikendalikan.

  • Anda perlu secara manual mengaitkan alamat IP publik dan elastic IP addresses (EIPs) dengan instance yang dikloning. Untuk informasi lebih lanjut, lihat Mengonversi alamat IP publik sistem yang ditetapkan untuk instance dalam jaringan klasik menjadi EIP, Mengonversi alamat IP publik instance ECS dalam VPC menjadi EIP, dan Memodifikasi alamat IP privat suatu instance.

  • Anda dapat membuat snapshot untuk instance sumber sebelum menjalankan template. Ini dapat mempercepat eksekusi.

  • Pastikan saldo akun Anda cukup untuk membeli instance yang dikloning.

Tipe Template

Otomatis

Pemilik

Alibaba Cloud

Parameter Input

Parameter

Deskripsi

Tipe

Diperlukan

Nilai Default

Batas

instanceIds

Instance ECS yang akan dikloning.

Daftar

Ya

targetZoneId

ID zona dari instance ECS yang dikloning.

String

Ya

targetInstanceChargeType

Metode penagihan dari instance ECS yang dikloning.

String

Ya

targetInstanceType

Tipe instance dari instance ECS yang dikloning.

String

Ya

targetVPCId

ID jaringan pribadi virtual (VPC) dari instance ECS yang dikloning.

String

Ya

targetVSwitchId

ID vSwitch dari instance ECS yang dikloning.

String

Ya

targetSecurityGroupIds

ID grup keamanan tempat instance ECS yang dikloning ditambahkan.

Daftar

Ya

targetSystemDiskCategory

Kategori disk sistem.

String

Ya

targetDataDiskCategory

Kategori disk data.

String

Ya

targetPassword

Kata sandi yang digunakan untuk mengakses instance ECS yang dikloning.

String

Ya

Ekspresi reguler untuk verifikasi string: [0-9A-Za-z_-&:;'<>,=%`~!@#()$^*+|{}[].?/]+$

Nilainya harus memiliki panjang 8 hingga 30 karakter.

regionId

Wilayah tempat instance ECS yang akan dikloning berada.

String

Tidak

{{ ACS::RegionId }}

targetPeriodUnit

Satuan durasi langganan.

String

Tidak

Bulan

targetPeriod

Durasi langganan.

Nomor

Tidak

1

useIncrementSnapshot

Menentukan apakah akan menghentikan instance ECS sumber dan membuat snapshot inkremental.

Boolean

Tidak

False

OOSAssumeRole

Peran Resource Access Management (RAM) yang diasumsikan oleh CloudOps Orchestration Service (OOS).

String

Tidak

""

Parameter Output

Parameter

Deskripsi

Tipe

instanceIds

Daftar

Kebijakan izin yang diperlukan untuk mengeksekusi template

{
    "Version": "1",
    "Statement": [
        {
            "Action": [
                "ecs:CreateImage",
                "ecs:CreateSnapshot",
                "ecs:DeleteImage",
                "ecs:DeleteSnapshot",
                "ecs:DescribeAvailableResource",
                "ecs:DescribeDisks",
                "ecs:DescribeImages",
                "ecs:DescribeInstances",
                "ecs:DescribeSnapshots",
                "ecs:DescribeVSwitches",
                "ecs:RunInstances",
                "ecs:StartInstance",
                "ecs:StopInstance"
            ],
            "Resource": "*",
            "Effect": "Allow"
        }
    ]
}

Referensi

Untuk informasi lebih lanjut, lihat ACS-ECS-BulkyCloneInstances.yml di GitHub.

Konten Template

FormatVersion: OOS-2019-06-01
Description:
  en: <p class="p">Kloning instance ECS secara massal. Catatan:</p> <ul class="ul"> <li class="li">Silakan periksa driver yang hilang sebelum migrasi, agar tidak menyebabkan instance baru gagal untuk mulai.</li> <li class="li">Berdasarkan migrasi snapshot cermin, jika Anda perlu mempertahankan data lengkap, silakan pilih <font color='blue'>Snapshot inkremental untuk downtime</font> sebagai Ya, lalu lanjutkan ke langkah berikutnya; jika Anda tidak perlu mempertahankan data yang dihasilkan selama proses migrasi, pilih Tidak dan migrasikan langsung sesuai panduan. <font color='red'>Disarankan Anda memilih Tidak untuk menguji apakah instance baru normal, lalu pilih Ya untuk memastikan data lengkap.</font></li> <li class="li">Waktu yang diperlukan untuk membuat snapshot adalah dalam hitungan menit dan bergantung pada ukuran disk cloud. Snapshot pertama dari disk cloud adalah snapshot penuh, yang membutuhkan waktu lama dan mungkin berada pada level jam. Membuat snapshot lagi membutuhkan waktu relatif singkat, tetapi masih bergantung pada jumlah perubahan data sejak snapshot terakhir. Semakin besar perubahan, semakin lama waktu yang dibutuhkan.</li> <li class="li"><font color='red'>Karena mesin akan restart, pastikan disk data telah diatur untuk dipasang secara otomatis. Jika tidak, disk data tidak akan dipasang setelah restart.</font></li> <li class="li"><font color='red'>Operasi saat ini adalah operasi berisiko tinggi. Jika Anda memilih Ya untuk migrasi snapshot, harap konfirmasi bahwa dampak bisnis dari shutdown dapat dikendalikan.</font></li> <li class="li"><font color='red'>IP Publik dan Elastic IP perlu diikat ulang secara manual ke instance baru. Lihat dokumentasi: <a href='https://www.alibabacloud.com/help/document_detail/156287.html'>Jenis jaringan klasik ECS IP publik dikonversi menjadi IP publik elastis</a>, <a href='https://www.alibabacloud.com/help/document_detail/67455.html'>Konversi IP publik tetap instance ECS VPC menjadi EIP</a>, <a href='https://www.alibabacloud.com/help/document_detail/27733.html'>Modifikasi alamat IP privat</a></font></li> <li class="li">Ambil snapshot dari instance sebelum eksekusi, yang akan sangat mempersingkat waktu eksekusi.</li> <li class="li"><font color='red'>Pastikan saldo akun Anda lebih besar dari biaya pembelian instance baru.</font></li> </ul>
  zh-cn: deskripsi dalam bahasa Cina            </font></li> </ul>
  name-en: ACS-ECS-BulkyCloneInstances
  name-zh-cn: deskripsi dalam bahasa Cina
  categories:
    - cross_region
Parameters:
  regionId:
    Type: String
    Label:
      en: RegionId
      zh-cn: deskripsi dalam bahasa Cina
    AssociationProperty: RegionId
    Default: '{{ ACS::RegionId }}'
  instanceIds:
    Label:
      en: InstanceIds
      zh-cn: deskripsi dalam bahasa Cina
    Type: List
    AssociationProperty: ALIYUN::ECS::Instance::InstanceId
    AssociationPropertyMetadata:
      RegionId: regionId
  targetZoneId:
    Label:
      en: TargetZoneId
      zh-cn: deskripsi dalam bahasa Cina
    Description:
      en: Untuk informasi pembelian instance lebih lanjut, silakan lihat halaman pembelian ECS
      zh-cn: deskripsi dalam bahasa Cina
    Type: String
    AssociationProperty: ALIYUN::ECS::Instance::ZoneId
    AssociationPropertyMetadata:
      RegionId: regionId
  targetInstanceChargeType:
    Label:
      en: TargetInstanceChargeType
      zh-cn: deskripsi dalam bahasa Cina
    Type: String
    AssociationProperty: ChargeType
  targetPeriodUnit:
    Label:
      en: Satuan periode langganan
      zh-cn: deskripsi dalam bahasa Cina
    Type: String
    AssociationPropertyMetadata:
      Visible:
        Condition:
          'Fn::Not':
            'Fn::Equals':
              - '${targetInstanceChargeType}'
              - PostPaid
    AllowedValues:
      - Minggu
      - Bulan
    Default: Bulan
  targetPeriod:
    Label:
      en: TargetPeriod
      zh-cn: deskripsi dalam bahasa Cina
    Description:
      en: "Nilai valid:
          Nilai valid ketika PeriodUnit diatur ke Minggu: 1, 2, 3, dan 4.
          Nilai valid ketika PeriodUnit diatur ke Bulan: 1, 2, 3, 4, 5, 6, 7, 8, 9, 12, 24, 36, 48, dan 60."
      zh-cn: deskripsi dalam bahasa Cina
              
              
    Type: Number
    AssociationPropertyMetadata:
      Visible:
        Condition:
          'Fn::Not':
            'Fn::Equals':
              - '${targetInstanceChargeType}'
              - PostPaid
    AllowedValues:
      - 1
      - 2
      - 3
      - 4
      - 5
      - 6
      - 7
      - 8
      - 9
      - 12
      - 24
      - 36
      - 48
      - 60
    Default: 1
  targetInstanceType:
    Label:
      en: TargetInstanceType
      zh-cn: deskripsi dalam bahasa Cina
    Type: String
    AssociationProperty: ALIYUN::ECS::Instance::InstanceType
    AssociationPropertyMetadata:
      RegionId: regionId
      ZoneId: targetZoneId
      InstanceChargeType: targetInstanceChargeType
  targetVPCId:
    Label:
      en: TargetVPCId
      zh-cn: deskripsi dalam bahasa Cina
    Type: String
    AssociationProperty: ALIYUN::ECS::VPC::VPCId
    AssociationPropertyMetadata:
      RegionId: regionId
  targetVSwitchId:
    Label:
      en: TargetVSwitchId
      zh-cn: deskripsi dalam bahasa Cina
    Description:
      en: Harap konfirmasi apakah switch berada di zona yang dipilih. Jika tidak, silakan pilih ulang atau buat switch baru
      zh-cn: deskripsi dalam bahasa Cina
    Type: String
    AssociationProperty: ALIYUN::VPC::VSwitch::VSwitchId
    AssociationPropertyMetadata:
      RegionId: regionId
      ZoneId: targetZoneId
      VpcId: targetVPCId
  targetSecurityGroupIds:
    Label:
      en: TargetSecurityGroupIds
      zh-cn: deskripsi dalam bahasa Cina
    Description:
      en: Switch dan grup keamanan harus milik VPC yang sama
      zh-cn: deskripsi dalam bahasa Cina
    Type: List
    AssociationProperty: ALIYUN::ECS::SecurityGroup::SecurityGroupId
    AssociationPropertyMetadata:
      RegionId: regionId
      VpcId: targetVPCId
  targetSystemDiskCategory:
    Label:
      en: TargetSystemDiskCategory
      zh-cn: deskripsi dalam bahasa Cina
    Type: String
    AssociationProperty: ALIYUN::ECS::Disk::SystemDiskCategory
    AssociationPropertyMetadata:
      RegionId: regionId
      ZoneId: targetZoneId
      InstanceType: targetInstanceType
      InstanceChargeType: targetInstanceChargeType
  targetDataDiskCategory:
    Label:
      en: TargetDataDiskCategory
      zh-cn: deskripsi dalam bahasa Cina
    Type: String
    AssociationProperty: ALIYUN::ECS::Disk::DataDiskCategory
    AssociationPropertyMetadata:
      RegionId: regionId
      ZoneId: targetZoneId
      InstanceType: targetInstanceType
      InstanceChargeType: targetInstanceChargeType
  targetPassword:
    Label:
      en: TargetPassword
      zh-cn: deskripsi dalam bahasa Cina
    Description:
      en: "<font color='red'></font>Karakter khusus meliputi: ()`~!@#$%^&*-_+=|{}[]:;''<>,=.?/  Kata sandi instance Windows tidak boleh dimulai dengan garis miring (/)."
      zh-cn: deskripsi dalam bahasa Cina  
    Type: String
    AllowedPattern: '[0-9A-Za-z\_\-\&:;''<>,=%`~!@#\(\)\$\^\*\+\|\{\}\[\]\.\?\/]+$'
    MinLength: 8
    MaxLength: 30
    NoEcho: true
  useIncrementSnapshot:
    Type: Boolean
    Description:
      en: <p class="p">Catatan:</p> <ul class="ul"> <li class="li">Jika Anda memilih Ya, untuk memastikan konsistensi data sebesar mungkin, sistem akan menghentikan instance sumber setelah snapshot penuh (mode pengisian downtime), membuat snapshot inkremental, membuat instance tujuan berdasarkan snapshot inkremental dan memulainya. <font color='red'>Jika tugas berhasil dieksekusi, instance sumber akan tetap dalam keadaan mati. Anda dapat melepaskannya secara manual segera setelah memverifikasi bahwa bisnis instance tujuan normal untuk menghindari biaya berulang.</font> Jika tugas gagal, nyalakan kembali instance sumber.</li> <li class="li">Jika Anda memilih Tidak (defaultnya adalah Tidak), untuk memastikan bahwa mesin sumber selalu tersedia, sistem akan membuat instance tujuan berdasarkan snapshot penuh dan memulainya setelah snapshot penuh. <font color='red'>Namun, data inkremental setelah tugas dimulai tidak akan disinkronkan ke instance tujuan, yang dapat menyebabkan ketidaksesuaian data, harap diperhatikan.</font></li></ul>
      zh-cn: deskripsi dalam bahasa Cina     </font></li></ul>
    Label:
      en: IncrementSnapshot
      zh-cn: deskripsi dalam bahasa Cina
    Default: false
  OOSAssumeRole:
    Label:
      en: OOSAssumeRole
      zh-cn: deskripsi dalam bahasa Cina
    Type: String
    Default: ''
RamRole: '{{ OOSAssumeRole }}'
Tasks:
  - Name: cloneInstances
    Action: ACS::ECS::CloneInstance
    Description:
      en: Kloning instance ECS
      zh-cn: deskripsi dalam bahasa Cina
    When:
      'Fn::Equals':
        - '{{ useIncrementSnapshot }}'
        - false
    Properties:
      regionId: '{{ regionId }}'
      imageName: img-{{ ACS::TaskLoopItem }}-{{ACS::ExecutionId}}
      instanceId: '{{ ACS::TaskLoopItem }}'
      targetVSwitchId: '{{ targetVSwitchId }}'
      targetInstanceType: '{{ targetInstanceType }}'
      targetSecurityGroupIds: '{{ targetSecurityGroupIds }}'
      targetPassword: '{{ targetPassword }}'
      targetInstanceChargeType: '{{ targetInstanceChargeType }}'
      targetPeriodUnit: '{{ targetPeriodUnit }}'
      targetPeriod: '{{ targetPeriod }}'
      targetSystemDiskCategory: '{{ targetSystemDiskCategory }}'
      targetDataDiskCategory: '{{ targetDataDiskCategory }}'
    Loop:
      Items: '{{ instanceIds }}'
      RateControl:
        Mode: Concurrency
        MaxErrors: 0
        Concurrency: 10
      Outputs:
        instanceIds:
          AggregateType: Fn::ListJoin
          AggregateField: instanceId
    Outputs:
      instanceId:
        Type: String
        ValueSelector: instanceId
  - Name: cloneInstancesWithIncrementSnapshot
    Action: ACS::ECS::CloneInstanceWithIncrementSnapshot
    Description:
      en: Kloning instance ECS dengan snapshot inkremental
      zh-cn: deskripsi dalam bahasa Cina
    When:
      'Fn::Equals':
        - '{{ useIncrementSnapshot }}'
        - true
    Properties:
      regionId: '{{ regionId }}'
      imageName: img-{{ ACS::TaskLoopItem }}-{{ACS::ExecutionId}}
      instanceId: '{{ ACS::TaskLoopItem }}'
      targetVSwitchId: '{{ targetVSwitchId }}'
      targetInstanceType: '{{ targetInstanceType }}'
      targetSecurityGroupIds: '{{ targetSecurityGroupIds }}'
      targetPassword: '{{ targetPassword }}'
      targetInstanceChargeType: '{{ targetInstanceChargeType }}'
      targetPeriodUnit: '{{ targetPeriodUnit }}'
      targetPeriod: '{{ targetPeriod }}'
      targetSystemDiskCategory: '{{ targetSystemDiskCategory }}'
      targetDataDiskCategory: '{{ targetDataDiskCategory }}'
    Loop:
      Items: '{{ instanceIds }}'
      RateControl:
        Mode: Concurrency
        MaxErrors: 0
        Concurrency: 10
      Outputs:
        instanceIds:
          AggregateType: Fn::ListJoin
          AggregateField: instanceId
    Outputs:
      instanceId:
        Type: String
        ValueSelector: instanceId
Outputs:
  instanceIds:
    Type: List
    Value:
      Fn::If:
        - 'Fn::Equals':
            - '{{ useIncrementSnapshot }}'
            - true
        - '{{ cloneInstancesWithIncrementSnapshot.instanceIds }}'
        - '{{ cloneInstances.instanceIds }}'
Metadata:
  ALIYUN::OOS::Interface:
    ParameterGroups:
      - Parameters:
          - regionId
          - instanceIds
        Label:
          default:
            zh-cn: deskripsi dalam bahasa Cina
            en: Pilih Instance
      - Parameters:
          - targetZoneId
          - targetInstanceChargeType
          - targetPeriodUnit
          - targetPeriod
          - targetInstanceType
          - targetVPCId
          - targetVSwitchId
          - targetSecurityGroupIds
          - targetSystemDiskCategory
          - targetDataDiskCategory
          - targetPassword
        Label:
          default:
            zh-cn: deskripsi dalam bahasa Cina
            en: Konfigurasi Parameter
      - Parameters:
          - useIncrementSnapshot
        Label:
          default:
            en: IncrementSnapshot
            zh-cn: deskripsi dalam bahasa Cina
      - Parameters:
          - OOSAssumeRole
        Label:
          default:
            zh-cn: deskripsi dalam bahasa Cina
            en: Opsi Kontrol