Nama Template
ACS-ECS-BulkyCloneInstances
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