Solusi ini menunjukkan cara menggunakan Alibaba Cloud Resource Orchestration Service (ROS) untuk membuat kluster layanan web lengkap melalui satu templat YAML. Templat ini menyediakan VPC, grup instans ECS dengan Nginx yang telah diinstal, Classic Load Balancer (CLB), dan alamat IP elastis (EIP) dalam satu pembuatan stack. Solusi ini ideal untuk skenario yang memerlukan penerapan cepat kluster layanan web berdaya tinggi (HA).
Ikhtisar solusi
Skenario bisnis
Dalam virtual private cloud (VPC) Alibaba Cloud, buat instans ECS secara massal. Gunakan Asisten Cloud ECS untuk secara otomatis menginstal dan menjalankan Nginx. Setelah inisialisasi, sambungkan instans ECS ke instans CLB untuk distribusi traffic, lalu ekspos titik akhir akses HTTP melalui EIP.
Sumber daya yang Dibuat
No. | Resource | Tipe Sumber Daya ROS | Tujuan |
1 | VPC |
| Menyediakan lingkungan jaringan terisolasi. |
2 |
|
| Membagi subnet dalam VPC dan menentukan zona. |
3 | Security Group |
| Membuka port HTTP 80 inbound dan mengizinkan semua traffic outbound. |
4 | ECS Instance Group |
| Membuat beberapa instans ECS dan secara otomatis menerapkan Nginx melalui |
5 | CLB Instance |
| Instans Classic Load Balancer yang mendistribusikan traffic ke instans ECS backend. |
6 | CLB Listener |
| Mengonfigurasi port listener TCP/HTTP CLB dan pemeriksaan kesehatan. |
7 | Backend Server Attachment |
| Menyambungkan grup instans ECS ke CLB sebagai server backend. |
8 | EIP |
| Menyediakan titik masuk akses jaringan publik. |
9 | EIP Association |
| Mengasosiasikan EIP dengan instans CLB. |
Hasil yang diharapkan setelah penerapan
Setelah templat berhasil diterapkan, Anda akan memiliki:
Lingkungan jaringan VPC lengkap (termasuk VPC,
vSwitch, dan security group dengan port 80 terbuka).Grup instans ECS (2 instans secara default) dengan pemasangan disk data dan penerapan Nginx secara otomatis.
Instans CLB yang dikonfigurasi dengan listener port TCP 80 dan pemeriksaan kesehatan.
Semua instans ECS disambungkan ke grup server backend CLB, dengan distribusi traffic berdasarkan bobot.
EIP yang diasosiasikan dengan CLB, dapat diakses melalui
http://<alamat EIP>.
Diagram arsitektur

Prasyarat
Sebelum menggunakan templat ini, pastikan hal berikut:
Izin akun: Akun Alibaba Cloud Anda harus memiliki izin pembuatan untuk ECS, CLB, VPC, dan EIP.
Pengetahuan dasar: Pahami sintaks dan struktur dasar templat ROS. Untuk informasi lebih lanjut, lihat Memulai Templat ROS.
Tutorial penulisan templat
Tutorial ini menunjukkan proses penulisan templat dalam dua tahap:
Tahap 1 (Templat Dasar): Menggunakan nilai parameter tetap untuk fokus memahami definisi sumber daya dan hubungan penyambungan CLB.
Tahap 2 (Templat Lanjutan): Mempertimbangkan semua konfigurasi variabel dan menambahkan penyaringan parameter dinamis, tampilan kondisional untuk tipe penagihan, serta pengelompokan parameter.
Tahap 1: Templat dasar — Definisikan sumber daya dan dependensi
Langkah 1: Definisikan sumber daya jaringan dasar (VPC + vSwitch + security group)
Sumber daya jaringan merupakan fondasi bagi semua sumber daya lainnya dan harus dibuat terlebih dahulu. Security group harus membuka port HTTP 80 inbound untuk mengizinkan akses eksternal ke Nginx.
Resources:
# ============================================================
# Lapisan Jaringan: VPC → vSwitch → SecurityGroup
# ============================================================
Vpc:
Type: ALIYUN::ECS::VPC # Buat VPC
Properties:
CidrBlock: 192.168.0.0/16
VpcName:
Ref: ALIYUN::StackName # Parameter semu: gunakan nama stack sebagai nama VPC
VSwitch:
Type: ALIYUN::ECS::VSwitch # Buat vSwitch (subnet) dalam VPC
Properties:
VSwitchName:
Ref: ALIYUN::StackName
VpcId:
Ref: Vpc # Dependensi implisit: ROS membuat Vpc terlebih dahulu
ZoneId: cn-beijing-h # Contoh ini menggunakan zona Beijing H
CidrBlock: 192.168.0.0/24
EcsSecurityGroup:
Type: ALIYUN::ECS::SecurityGroup # Buat security group
Properties:
SecurityGroupName:
Ref: ALIYUN::StackName
VpcId:
Ref: Vpc
SecurityGroupIngress: # Aturan inbound: buka port HTTP 80 untuk Nginx
- PortRange: 80/80
Priority: 1
SourceCidrIp: 0.0.0.0/0
IpProtocol: tcp
NicType: internetKonsep Kunci
Untuk nama yang disesuaikan seperti
VpcName,VSwitchName, danSecurityGroupName, gunakan parameter semu agar setelah penerapan Anda dapat dengan cepat menemukan sumber daya yang termasuk dalam stack ini.Aturan security group dapat disesuaikan berdasarkan kebutuhan Anda:
Untuk mengizinkan akses eksternal ke layanan web, buka port HTTP 80 atau 8080 inbound.
Untuk mengizinkan login SSH, buka port 22 inbound.
Di lingkungan produksi, batasi
SourceCidrIphanya pada rentang IP yang dikenal, bukan0.0.0.0/0.
Langkah 2: Definisikan sumber daya CLB dan EIP
Instans CLB mendistribusikan traffic masuk ke beberapa instans ECS backend. EIP menyediakan titik masuk publik.
Resources:
# ============================================================
# Lapisan Load Balancing: CLB + Listener + EIP
# ============================================================
Slb:
Type: ALIYUN::SLB::LoadBalancer # Buat instans Classic Load Balancer
Properties:
VpcId:
Ref: Vpc
VSwitchId:
Ref: VSwitch
LoadBalancerName:
Fn::Sub: slb-${ALIYUN::StackName} # Fn::Sub menggabungkan string
AddressType: intranet # CLB jaringan internal (akses publik melalui EIP)
LoadBalancerSpec: slb.s1.small
AutoPay: true
SlbListener:
Type: ALIYUN::SLB::Listener # Konfigurasi listener CLB
DependsOn:
- Slb # Dependensi eksplisit: CLB harus dibuat sebelum menambahkan listener
Properties:
LoadBalancerId:
Ref: Slb
ListenerPort: 80 # Port listener frontend
BackendServerPort: 80 # Port server backend (default Nginx: 80)
Protocol: tcp # Forwarding TCP Lapisan 4
Bandwidth: -1 # -1 = tidak terbatas; sesuaikan berdasarkan spesifikasi CLB
Persistence: # Konfigurasi persistensi sesi
StickySession: 'on'
StickySessionType: insert # Penyisipan cookie
CookieTimeout: 60
PersistenceTimeout: 180
HealthCheck: # Konfigurasi pemeriksaan kesehatan
HealthCheckType: tcp # Probe port TCP
Port: 80
Interval: 2 # Interval pemeriksaan: 2 detik
HealthyThreshold: 3 # 3 keberhasilan = sehat
UnhealthyThreshold: 3 # 3 kegagalan = tidak sehat
Timeout: 5 # Timeout probe: 5 detik
EipSlbAddress:
Type: ALIYUN::VPC::EIP # Buat EIP
Properties:
Name:
Ref: ALIYUN::StackName
InternetChargeType: PayByTraffic # Bayar berdasarkan traffic
Bandwidth: 10 # Batas bandwidth: 10 Mbps
EipSlbAddressAssociation:
Type: ALIYUN::VPC::EIPAssociation # Asosiasikan EIP dengan CLB
Properties:
InstanceId:
Ref: Slb # Target: instans CLB
AllocationId:
Ref: EipSlbAddress # ID sumber daya EIPKonsep Kunci:
Dependensi implisit vs eksplisit:
Saat Anda mereferensikan sumber daya menggunakan
RefatauFn::GetAtt, ROS secara otomatis menentukan dependensi (implisit).Gunakan
DependsOnhanya ketika tidak ada referensi langsung antara dua sumber daya tetapi logika bisnis mengharuskan urutan pembuatan tertentu.
CLB menggunakan
AddressType: intranet(jaringan internal) dan diikat ke EIP melaluiALIYUN::VPC::EIPAssociationuntuk menyediakan akses publik. Ini adalah pola arsitektur yang direkomendasikan.
Langkah 3: Definisikan grup instans ECS dan gunakan Asisten Cloud untuk menginstal Nginx
Instans ECS menjalankan skrip inisialisasi melalui Asisten Cloud untuk memasang disk data dan menginstal Nginx.
Resources:
EcsInstanceGroup:
Type: ALIYUN::ECS::InstanceGroup
Properties:
VpcId:
Ref: Vpc
SecurityGroupId:
Ref: EcsSecurityGroup
VSwitchId:
Ref: VSwitch
ZoneId: cn-beijing-h
ImageId: centos_7
InstanceType: ecs.c5.large
MaxAmount: 2 # Buat 2 instans ECS
AllocatePublicIP: false # Tidak ada IP publik (akses melalui CLB + EIP)
IoOptimized: optimized
SystemDiskCategory: cloud_essd
SystemDiskSize: 40
DiskMappings: # Konfigurasi disk data
- Category: cloud_essd
Size: 100
Password: <YourPassword> # Ganti dengan kata sandi aktual saat penerapan
RunSetup:
Type: ALIYUN::ECS::RunCommand
DependsOn: EcsInstanceGroup
Properties:
InstanceIds:
Fn::GetAtt:
- EcsInstanceGroup
- InstanceIds
Type: RunShellScript
Sync: true
Timeout: 300
ContentEncoding: PlainText
CommandContent: |
#!/bin/bash
# === Inisialisasi disk data: partisi, format, pasang ke /disk1 ===
cat >> /root/InitDataDisk.sh << 'EOF'
#!/bin/bash
echo "p
n
p
w
" | fdisk -u /dev/vdb
EOF
/bin/bash /root/InitDataDisk.sh
rm -f /root/InitDataDisk.sh
mkfs -t ext4 /dev/vdb1
cp /etc/fstab /etc/fstab.bak
mkdir /disk1
echo `blkid /dev/vdb1 | awk '{print $2}' | sed 's/\"//g'` /disk1 ext4 defaults 0 0 >> /etc/fstab
mount -a
# === Instal dan jalankan Nginx ===
yum install -y nginx
systemctl start nginx.serviceKonsep Kunci
Refvs.Fn::GetAtt:Ref→ mengembalikan identifier utama sumber daya (misalnya,VpcIddari VPC).Fn::GetAtt→ mengembalikan atribut lain dari sumber daya (misalnya,InstanceIdsdari grup instans ECS).
Langkah 4: Definisikan penyambungan server backend CLB — Hubungkan instans ECS ke CLB
Gunakan ALIYUN::SLB::BackendServerAttachment untuk menyambungkan grup instans ECS ke backend CLB.
Resources:
# ============================================================
# Lapisan Pengikatan: Sambungkan grup instans ECS ke server backend CLB
# ============================================================
SlbBackendServerAttachment:
Type: ALIYUN::SLB::BackendServerAttachment
DependsOn:
- EcsInstanceGroup # Dependensi eksplisit: tunggu pembuatan ECS
Properties:
LoadBalancerId:
Ref: Slb
BackendServerList:
# Dapatkan semua ID instans dari grup instans ECS
Fn::GetAtt:
- EcsInstanceGroup
- InstanceIds
BackendServerWeightList: # Daftar bobot server backend
- 100 # Instans ECS 1: bobot 100
- 100 # Instans ECS 2: bobot 100Konsep Kunci: BackendServerWeightList Aturan
Nilai bobot berkisar antara 0 hingga 100. Traffic lebih banyak dialokasikan ke instans dengan bobot lebih tinggi.
Jika
BackendServerWeightListmemiliki entri lebih sedikit daripadaBackendServerList, instans ECS yang tersisa menggunakan nilai bobot terakhir dalam daftar.
Templat dasar lengkap
Berikut adalah templat lengkap siap terapkan yang menggabungkan semua langkah di atas:
ROSTemplateFormatVersion: '2015-09-01'
Description:
zh-cn: Buat VPC, terapkan ECS dengan Nginx, sambungkan ke CLB, ekspos melalui EIP
en: Create VPC, deploy ECS group with Nginx, attach to CLB, expose via EIP
Resources:
# === Lapisan Jaringan ===
Vpc:
Type: ALIYUN::ECS::VPC
Properties:
CidrBlock: 192.168.0.0/16
VpcName:
Ref: ALIYUN::StackName
VSwitch:
Type: ALIYUN::ECS::VSwitch
Properties:
VSwitchName:
Ref: ALIYUN::StackName
VpcId:
Ref: Vpc
ZoneId: cn-beijing-h
CidrBlock: 192.168.0.0/24
EcsSecurityGroup:
Type: ALIYUN::ECS::SecurityGroup
Properties:
SecurityGroupName:
Ref: ALIYUN::StackName
VpcId:
Ref: Vpc
SecurityGroupIngress:
- PortRange: 80/80
Priority: 1
SourceCidrIp: 0.0.0.0/0
IpProtocol: tcp
NicType: internet
SecurityGroupEgress:
- PortRange: '-1/-1'
Priority: 1
IpProtocol: all
DestCidrIp: 0.0.0.0/0
NicType: internet
- PortRange: '-1/-1'
Priority: 1
IpProtocol: all
DestCidrIp: 0.0.0.0/0
NicType: intranet
# === Lapisan Komputasi ===
EcsInstanceGroup:
Type: ALIYUN::ECS::InstanceGroup
Properties:
VpcId:
Ref: Vpc
SecurityGroupId:
Ref: EcsSecurityGroup
VSwitchId:
Ref: VSwitch
ImageId: centos_7
InstanceType: ecs.c5.large
MaxAmount: 2
AllocatePublicIP: false
IoOptimized: optimized
SystemDiskCategory: cloud_essd
SystemDiskSize: 40
DiskMappings:
- Category: cloud_essd
Size: 100
Password: <YourPassword> # Ganti dengan kata sandi aktual saat penerapan
RunSetup:
Type: ALIYUN::ECS::RunCommand
DependsOn: EcsInstanceGroup
Properties:
InstanceIds:
Fn::GetAtt:
- EcsInstanceGroup
- InstanceIds
Type: RunShellScript
Sync: true
Timeout: 300
ContentEncoding: PlainText
CommandContent: |
#!/bin/bash
# === Inisialisasi disk data: partisi, format, pasang ke /disk1 ===
cat >> /root/InitDataDisk.sh << 'EOF'
#!/bin/bash
echo "p
n
p
w
" | fdisk -u /dev/vdb
EOF
/bin/bash /root/InitDataDisk.sh
rm -f /root/InitDataDisk.sh
mkfs -t ext4 /dev/vdb1
cp /etc/fstab /etc/fstab.bak
mkdir /disk1
echo `blkid /dev/vdb1 | awk '{print $2}' | sed 's/\"//g'` /disk1 ext4 defaults 0 0 >> /etc/fstab
mount -a
# === Instal dan jalankan Nginx ===
yum install -y nginx
systemctl start nginx.service
# === Lapisan Load Balancing ===
Slb:
Type: ALIYUN::SLB::LoadBalancer
Properties:
VpcId:
Ref: Vpc
VSwitchId:
Ref: VSwitch
LoadBalancerName:
Fn::Sub: slb-${ALIYUN::StackName}
AddressType: intranet
LoadBalancerSpec: slb.s1.small
AutoPay: true
SlbListener:
DependsOn:
- Slb
Type: ALIYUN::SLB::Listener
Properties:
LoadBalancerId:
Ref: Slb
ListenerPort: 80
BackendServerPort: 80
Protocol: tcp
Bandwidth: -1
Persistence:
StickySession: 'on'
StickySessionType: insert
CookieTimeout: 60
PersistenceTimeout: 180
HealthCheck:
HealthCheckType: tcp
Port: 80
Interval: 2
HealthyThreshold: 3
UnhealthyThreshold: 3
Timeout: 5
EipSlbAddress:
Type: ALIYUN::VPC::EIP
Properties:
Name:
Ref: ALIYUN::StackName
InternetChargeType: PayByTraffic
Bandwidth: 10
EipSlbAddressAssociation:
Type: ALIYUN::VPC::EIPAssociation
Properties:
InstanceId:
Ref: Slb
AllocationId:
Ref: EipSlbAddress
# === Lapisan Pengikatan ===
SlbBackendServerAttachment:
DependsOn:
- EcsInstanceGroup
Type: ALIYUN::SLB::BackendServerAttachment
Properties:
BackendServerList:
Fn::GetAtt:
- EcsInstanceGroup
- InstanceIds
LoadBalancerId:
Ref: Slb
BackendServerWeightList:
- 100
- 100
Outputs:
Endpoint:
Description:
zh-cn: Titik akhir HTTP publik
en: Public HTTP endpoint
Value:
Fn::Sub:
- http://${ServerAddress}
- ServerAddress:
Fn::GetAtt:
- EipSlbAddress
- EipAddressKonsep Kunci:
Setelah templat membuat sumber daya, gunakan bagian Outputs untuk mengkueri atribut sumber daya seperti alamat EIP yang diikat ke CLB.
Tahap 2: Templat lanjutan — Parameterisasi dan konfigurasi dinamis
Templat dasar menggunakan nilai tetap untuk InstanceType, SystemDiskCategory pada ECS, dan LoadBalancerSpec pada CLB. Memparameterisasi nilai-nilai ini secara signifikan meningkatkan fleksibilitas templat.
Templat ini memperkenalkan fitur lanjutan berikut:
Parameterisasi (Parameters): Ekstrak konfigurasi variabel sebagai parameter yang diisi secara dinamis saat penerapan.
Penyaringan parameter dinamis (AssociationProperty): Biarkan konsol ROS secara otomatis menyaring opsi yang tersedia berdasarkan parameter yang dipilih.
Pengelompokan parameter (Metadata): Kelompokkan parameter berdasarkan kategori logis di konsol untuk meningkatkan pengalaman konfigurasi.
Diagram dependensi parameter
Berikut menunjukkan rantai dependensi antara tipe instans ECS, tipe disk sistem, dan spesifikasi instans CLB:
ZoneId (zona — parameter filter inti)
├── EcsInstanceType (disaring berdasarkan zona + tipe penagihan)
│ ├── SystemDiskCategory (disaring berdasarkan zona + tipe instans)
│ └── DataDiskCategory (disaring berdasarkan zona + tipe instans)
└── LoadBalancerSpec (disaring berdasarkan zona)
PayType (tipe penagihan)
├── PayPeriodUnit (ditampilkan hanya saat PrePaid)
├── PayPeriod (ditampilkan hanya saat PrePaid)
└── EcsInstanceType (disaring berdasarkan zona + tipe penagihan)Logika inti: Pilih zona dan tipe penagihan ECS terlebih dahulu, lalu saring tipe instans ECS dan spesifikasi CLB sesuai. Saat penagihan langganan dipilih, berikan unit periode dan durasi penagihan. Terakhir, saring tipe disk berdasarkan zona dan tipe instans ECS. Setiap langkah hanya menampilkan opsi yang valid di bawah kondisi saat ini, mencegah kombinasi parameter yang tidak valid.
AssociationProperty dijelaskan
1. ZoneId — Zona Ketersediaan (Parameter Dasar)
Atur AssociationProperty ke ALIYUN::ECS::ZoneId untuk mencantumkan semua zona di wilayah saat ini:
ZoneId:
Type: String
Label:
zh-cn: Zona vSwitch
en: VSwitch Availability Zone
Description:
zh-cn: Pilih zona untuk vSwitch, ECS dan CLB
en: Select the availability zone for VSwitch, ECS and CLB will be deployed here
AssociationProperty: ALIYUN::ECS::ZoneIdParameter ini menjadi dasar filter untuk semua parameter berikutnya. Setelah zona dipilih, daftar opsi untuk semua parameter lainnya diperbarui secara otomatis.
2. PayType — Tipe Penagihan ECS
Definisikan parameter PayType dan gunakan AssociationPropertyMetadata.Visible.Condition untuk menampilkan parameter durasi penagihan hanya saat Subscription (PrePaid) dipilih:
Parameters:
PayType:
Type: String
Label:
zh-cn: 付费类型
en: Charge Type
Default: PostPaid
AllowedValues:
- PostPaid
- PrePaid
AssociationProperty: ChargeType
AssociationPropertyMetadata:
LocaleKey: InstanceChargeType
PayPeriodUnit:
Type: String
Default: Month
AssociationProperty: PayPeriodUnit
AssociationPropertyMetadata:
Visible: # Tampilan kondisional: tampilkan hanya saat PayType bukan PostPaid
Condition:
Fn::Not:
Fn::Equals:
- ${PayType}
- PostPaid
PayPeriod:
Type: Number
Label:
zh-cn: 购买资源时长
en: Period
Default: 1
AllowedValues:
- 1
- 2
- 3
- 4
- 5
- 6
- 7
- 8
- 9
AssociationProperty: PayPeriod
AssociationPropertyMetadata:
Visible:
Condition:
Fn::Not:
Fn::Equals:
- ${PayType}
- PostPaidSaat Subscription (PostPaid) dipilih di konsol ROS, parameter durasi penagihan secara otomatis disembunyikan. Parameter tersebut muncul hanya saat pengguna memilih Subscription (PrePaid).
3. EcsInstanceType — Tipe Instans ECS
Atur AssociationProperty ke ALIYUN::ECS::Instance::InstanceType untuk mencantumkan tipe instans ECS yang tersedia, disaring berdasarkan ${ZoneId} dan ${PayType}:
EcsInstanceType:
Type: String
Label:
zh-cn: ECS实例规格
AssociationProperty: ALIYUN::ECS::Instance::InstanceType
AssociationPropertyMetadata:
ZoneId: ${ZoneId}
InstanceChargeType: ${PayType}Ketersediaan tipe instans bervariasi berdasarkan zona. Tanpa penyaringan, pengguna mungkin memilih tipe instans yang tidak tersedia di zona yang dipilih, menyebabkan kegagalan pembuatan stack.
4. SystemDiskCategory — Tipe Disk Sistem
Atur AssociationProperty ke ALIYUN::ECS::Disk::SystemDiskCategory untuk mencantumkan tipe disk sistem yang tersedia, disaring berdasarkan ${ZoneId} dan ${EcsInstanceType}:
SystemDiskCategory:
Type: String
Label:
zh-cn: 系统盘类型
en: System Disk Category
Description:
zh-cn: 选择系统盘类型。可选值:cloud_essd(ESSD云盘)、cloud_ssd(SSD云盘)、cloud_efficiency(高效云盘)
en: "System disk type. Options: cloud_essd, cloud_ssd, cloud_efficiency"
AssociationProperty: ALIYUN::ECS::Disk::SystemDiskCategory
AssociationPropertyMetadata:
ZoneId: ${ZoneId}
InstanceType: ${EcsInstanceType}Ketersediaan tipe disk sistem bergantung pada zona (beberapa zona tidak mendukung ESSD) dan tipe instans (beberapa tipe instans hanya mendukung tipe disk tertentu).
5. LoadBalancerSpec — Spesifikasi Instans CLB
Atur AssociationProperty ke ALIYUN::SLB::Instance::InstanceType untuk mencantumkan spesifikasi CLB yang tersedia, disaring berdasarkan ${ZoneId}:
LoadBalancerSpec:
Type: String
Label:
zh-cn: CLB实例规格
en: CLB Instance Spec
Description:
zh-cn: 选择CLB实例规格,根据可用区自动过滤
en: Select CLB instance specification
AssociationProperty: ALIYUN::SLB::Instance::InstanceType
AssociationPropertyMetadata:
ZoneId: ${ZoneId}Templat penyaringan parameter dinamis
Parameters:
ZoneId:
Type: String
Label:
zh-cn: 交换机可用区
en: VSwitch Availability Zone
Description:
zh-cn: 选择交换机所在的可用区,ECS和CLB将部署在此可用区
en: Select the availability zone for deployment
AssociationProperty: ALIYUN::ECS::ZoneId
PayType:
Type: String
Label:
zh-cn: 付费类型
en: Charge Type
Default: PostPaid
AllowedValues:
- PostPaid
- PrePaid
AssociationProperty: ChargeType
AssociationPropertyMetadata:
LocaleKey: InstanceChargeType
PayPeriodUnit:
Type: String
Default: Month
AssociationProperty: PayPeriodUnit
AssociationPropertyMetadata:
Visible:
Condition:
Fn::Not:
Fn::Equals:
- ${PayType}
- PostPaid
PayPeriod:
Type: Number
Label:
zh-cn: 购买资源时长
en: Period
Default: 1
AllowedValues:
- 1
- 2
- 3
- 4
- 5
- 6
- 7
- 8
- 9
AssociationProperty: PayPeriod
AssociationPropertyMetadata:
Visible:
Condition:
Fn::Not:
Fn::Equals:
- ${PayType}
- PostPaid
EcsInstanceType:
Type: String
Label:
zh-cn: ECS实例规格
en: ECS Instance Type
Description:
zh-cn: 选择ECS实例规格。列表已根据可用区和付费类型自动过滤。
en: Select ECS instance type, filtered by zone and charge type.
AssociationProperty: ALIYUN::ECS::Instance::InstanceType
AssociationPropertyMetadata:
ZoneId: ${ZoneId}
InstanceChargeType: ${PayType}
SystemDiskCategory:
Type: String
Label:
zh-cn: 系统盘类型
en: System Disk Category
Description:
zh-cn: 选择系统盘类型。可选值:cloud_essd(ESSD云盘)、cloud_ssd(SSD云盘)、cloud_efficiency(高效云盘)
en: System disk type
AssociationProperty: ALIYUN::ECS::Disk::SystemDiskCategory
AssociationPropertyMetadata:
ZoneId: ${ZoneId}
InstanceType: ${EcsInstanceType}
DataDiskCategory:
Type: String
Label:
zh-cn: 数据盘类型
en: Data Disk Category
Description:
zh-cn: 选择数据盘类型。可选值:cloud_essd、cloud_ssd、cloud_efficiency
en: Data disk type
AssociationProperty: ALIYUN::ECS::Disk::DataDiskCategory
AssociationPropertyMetadata:
ZoneId: ${ZoneId}
InstanceType: ${EcsInstanceType}
LoadBalancerSpec:
Type: String
Label:
zh-cn: CLB实例规格
en: CLB Instance Spec
Description:
zh-cn: 选择CLB实例规格,根据可用区自动过滤
en: Select CLB instance specification
AssociationProperty: ALIYUN::SLB::Instance::InstanceType
AssociationPropertyMetadata:
ZoneId: ${ZoneId}Cara kerja AssociationProperty
Saat pengguna membuat stack di konsol ROS, pemilihan parameter dipicu secara berantai:
Zona (
ZoneId) dipilih.Tipe penagihan ECS (
PayType) dipilih.Dropdown tipe instans ECS diperbarui secara otomatis, hanya menampilkan tipe dengan inventaris tersedia di zona yang dipilih yang mendukung tipe penagihan yang dipilih.
Dropdown spesifikasi instans CLB diperbarui secara otomatis, hanya menampilkan spesifikasi yang didukung di zona yang dipilih.
Setelah memilih tipe instans ECS, dropdown tipe disk sistem dan tipe disk data diperbarui secara otomatis, hanya menampilkan tipe yang didukung oleh zona dan tipe instans yang dipilih.
Pendekatan ini memastikan setiap pemilihan hanya menampilkan opsi yang valid di bawah kondisi saat ini, mencegah kegagalan penerapan akibat kombinasi parameter yang tidak valid sejak awal.
Pengelompokan parameter dengan Metadata
Menggunakan ALIYUN::ROS::Interface di Metadata, Anda dapat mengatur parameter ke dalam kelompok logis dengan label. Konsol ROS menampilkan parameter dalam kelompok, secara signifikan meningkatkan pengalaman konfigurasi.
Sintaks Metadata
Metadata:
ALIYUN::ROS::Interface:
ParameterGroups: # Daftar kelompok parameter (wajib)
- Parameters: # Daftar nama parameter dalam kelompok ini (wajib)
- paramName1
- paramName2
Label: # Label kelompok (wajib)
default:
zh-cn: Label bahasa Mandarin
en: Label bahasa InggrisAturan sintaks metadata:
ParameterGroups,Parameters, danLabelsemuanya wajib.Nama parameter yang tercantum di
Metadata.ALIYUN::ROS::Interface.ParameterGroups.Parametersharus persis sama dengan nama yang didefinisikan di bagianParameterstemplat.Parameter yang tidak termasuk dalam kelompok apa pun ditampilkan di area tidak dikelompokkan di konsol.
Desain Kelompok Parameter untuk Templat Ini
Templat ini mengatur 14 parameter ke dalam 4 kelompok:
┌─────────────────────────────────────────────────┐
│ Konfigurasi Jaringan │
│ ├── Zona Ketersediaan vSwitch (ZoneId) │
│ ├── Blok CIDR VPC (VpcCidrBlock) │
│ └── Blok CIDR vSwitch (VSwitchCidrBlock) │
├─────────────────────────────────────────────────┤
│ Konfigurasi Penagihan │
│ ├── Tipe Penagihan (PayType) │
│ ├── Unit Periode Penagihan (PayPeriodUnit) │
│ └── Periode (PayPeriod) │
├─────────────────────────────────────────────────┤
│ Konfigurasi Instans ECS │
│ ├── Tipe Instans ECS (EcsInstanceType) │
│ ├── Kategori Disk Sistem (SystemDiskCategory) │
│ ├── Ukuran Disk Sistem (SystemDiskSize) │
│ ├── Kategori Disk Data (DataDiskCategory) │
│ ├── Ukuran Disk Data (DataDiskSize) │
│ └── Kata Sandi Instans ECS (InstancePassword) │
├─────────────────────────────────────────────────┤
│ Konfigurasi CLB │
│ ├── Spesifikasi Instans CLB (LoadBalancerSpec) │
│ └── Bandwidth EIP (Bandwidth) │
└─────────────────────────────────────────────────┘Templat Kelompok Parameter Metadata
Metadata:
ALIYUN::ROS::Interface:
ParameterGroups:
- Parameters:
- ZoneId
- VpcCidrBlock
- VSwitchCidrBlock
Label:
default:
zh-cn: Konfigurasi Jaringan
en: Network Configuration
- Parameters:
- PayType
- PayPeriodUnit
- PayPeriod
Label:
default:
zh-cn: Tipe Penagihan
en: Billing Configuration
- Parameters:
- EcsInstanceType
- SystemDiskCategory
- SystemDiskSize
- DataDiskCategory
- DataDiskSize
- InstancePassword
Label:
default:
zh-cn: Konfigurasi Instans ECS
en: ECS Instance Configuration
- Parameters:
- LoadBalancerSpec
- Bandwidth
Label:
default:
zh-cn: Konfigurasi CLB
en: CLB ConfigurationTemplat lanjutan lengkap
ROSTemplateFormatVersion: '2015-09-01'
Description:
zh-cn: >-
Templat parameterisasi: Buat grup instans ECS untuk menerapkan layanan Nginx, sambungkan ke load balancer CLB, dan sediakan layanan HTTP publik melalui EIP.
Mendukung pemilihan dinamis zona, spesifikasi instans, tipe disk, dan spesifikasi CLB, serta dukungan peralihan mode penagihan bayar sesuai penggunaan/langganan.
en: >-
Parameterized template: Create ECS group with Nginx, attach to CLB, expose via EIP.
Supports dynamic selection and PayAsYouGo/Subscription billing switch.
Parameters:
# ─── Parameter jaringan dasar ───
ZoneId:
Type: String
Label:
zh-cn: Zona ketersediaan vSwitch
en: VSwitch Availability Zone
Description:
zh-cn: Pilih zona ketersediaan tempat vSwitch berada; ECS dan CLB akan diterapkan di zona ini
en: Select the availability zone for deployment
AssociationProperty: ALIYUN::ECS::ZoneId
VpcCidrBlock:
Type: String
Label:
zh-cn: Blok CIDR VPC
en: VPC CIDR Block
Description:
zh-cn: Rentang alamat IP VPC. Disarankan menggunakan 10.0.0.0/8, 172.16.0.0/12, atau 192.168.0.0/16
en: VPC IP address range
Default: 192.168.0.0/16
VSwitchCidrBlock:
Type: String
Label:
zh-cn: Blok CIDR vSwitch
en: VSwitch CIDR Block
Description:
zh-cn: Harus merupakan subnet dari blok CIDR VPC dan tidak boleh tumpang tindih dengan blok CIDR vSwitch lain dalam VPC yang sama
en: Must be a subnet of VPC CIDR
Default: 192.168.0.0/24
# ─── Parameter tipe penagihan ───
PayType:
Type: String
Label:
zh-cn: Tipe penagihan
en: Charge Type
Default: PostPaid
AllowedValues:
- PostPaid
- PrePaid
AssociationProperty: ChargeType
AssociationPropertyMetadata:
LocaleKey: InstanceChargeType
PayPeriodUnit:
Type: String
Label:
zh-cn: Unit periode pembelian sumber daya
en: Pay Period Unit
Description:
zh-cn: Unit periode untuk langganan. Month berarti bulan, Year berarti tahun. Hanya berlaku untuk langganan.
en: Subscription period unit. Only valid for PrePaid.
Default: Month
AllowedValues:
- Month
- Year
AssociationProperty: PayPeriodUnit
AssociationPropertyMetadata:
Visible:
Condition:
Fn::Not:
Fn::Equals:
- ${PayType}
- PostPaid
PayPeriod:
Type: Number
Label:
zh-cn: Durasi pembelian sumber daya
en: Period
Default: 1
AllowedValues:
- 1
- 2
- 3
- 4
- 5
- 6
- 7
- 8
- 9
AssociationProperty: PayPeriod
AssociationPropertyMetadata:
Visible:
Condition:
Fn::Not:
Fn::Equals:
- ${PayType}
- PostPaid
# ─── Parameter instans ECS ───
EcsInstanceType:
Type: String
Label:
zh-cn: Spesifikasi instans ECS
en: ECS Instance Type
Description:
zh-cn: Pilih spesifikasi instans ECS. Daftar telah difilter secara otomatis berdasarkan zona dan tipe penagihan.
en: Select ECS instance type, filtered by zone and charge type.
AssociationProperty: ALIYUN::ECS::Instance::InstanceType
AssociationPropertyMetadata:
ZoneId: ${ZoneId}
InstanceChargeType: ${PayType}
SystemDiskCategory:
Type: String
Label:
zh-cn: Tipe disk sistem
en: System Disk Category
Description:
zh-cn: Pilih tipe disk sistem. Nilai yang tersedia: cloud_essd (disk cloud ESSD), cloud_ssd (disk cloud SSD), cloud_efficiency (disk cloud efisien)
en: System disk type
AssociationProperty: ALIYUN::ECS::Disk::SystemDiskCategory
AssociationPropertyMetadata:
ZoneId: ${ZoneId}
InstanceType: ${EcsInstanceType}
SystemDiskSize:
Type: Number
Label:
zh-cn: Ukuran disk sistem (GB)
en: System Disk Size (GB)
Description:
zh-cn: Ukuran disk sistem, rentang nilai 40–500 GB
en: System disk size, range 40-500 GB
Default: 40
MinValue: 40
MaxValue: 500
DataDiskCategory:
Type: String
Label:
zh-cn: Tipe disk data
en: Data Disk Category
Description:
zh-cn: Pilih tipe disk data. Nilai yang tersedia: cloud_essd, cloud_ssd, cloud_efficiency
en: Data disk type
AssociationProperty: ALIYUN::ECS::Disk::DataDiskCategory
AssociationPropertyMetadata:
ZoneId: ${ZoneId}
InstanceType: ${EcsInstanceType}
DataDiskSize:
Type: Number
Label:
zh-cn: Ukuran disk data (GB)
en: Data Disk Size (GB)
Description:
zh-cn: Ukuran disk data ECS, rentang nilai 20–32768 GB
en: Data disk size, range 20-32768 GB
Default: 100
MinValue: 20
MaxValue: 32768
InstancePassword:
Type: String
NoEcho: true
Label:
zh-cn: Kata sandi instans ECS
en: ECS Instance Password
Description:
zh-cn: Panjang 8–30 karakter, harus mengandung minimal tiga jenis karakter dari huruf kapital, huruf kecil, angka, dan karakter khusus
en: Length 8-30, must contain at least three character types
MinLength: 8
MaxLength: 30
AssociationProperty: ALIYUN::ECS::Instance::Password
# ─── Parameter load balancer ───
LoadBalancerSpec:
Type: String
Label:
zh-cn: Spesifikasi instans CLB
en: CLB Instance Spec
Description:
zh-cn: Pilih spesifikasi instans CLB, difilter secara otomatis berdasarkan zona
en: Select CLB instance specification
AssociationProperty: ALIYUN::SLB::Instance::InstanceType
AssociationPropertyMetadata:
ZoneId: ${ZoneId}
Bandwidth:
Type: Number
Label:
zh-cn: Bandwidth EIP (Mbps)
en: EIP Bandwidth (Mbps)
Description:
zh-cn: Batas bandwidth IP publik elastis, rentang nilai 1–1000 Mbps
en: EIP bandwidth cap, range 1-1000 Mbps
Default: 10
MinValue: 1
MaxValue: 1000
Resources:
# === Lapisan jaringan dasar ===
Vpc:
Type: ALIYUN::ECS::VPC
Properties:
CidrBlock:
Ref: VpcCidrBlock
VpcName:
Ref: ALIYUN::StackName
VSwitch:
Type: ALIYUN::ECS::VSwitch
Properties:
VSwitchName:
Ref: ALIYUN::StackName
VpcId:
Ref: Vpc
ZoneId:
Ref: ZoneId
CidrBlock:
Ref: VSwitchCidrBlock
EcsSecurityGroup:
Type: ALIYUN::ECS::SecurityGroup
Properties:
SecurityGroupName:
Ref: ALIYUN::StackName
VpcId:
Ref: Vpc
SecurityGroupIngress:
- PortRange: 80/80
Priority: 1
SourceCidrIp: 0.0.0.0/0
IpProtocol: tcp
NicType: internet
SecurityGroupEgress:
- PortRange: '-1/-1'
Priority: 1
IpProtocol: all
DestCidrIp: 0.0.0.0/0
NicType: internet
- PortRange: '-1/-1'
Priority: 1
IpProtocol: all
DestCidrIp: 0.0.0.0/0
NicType: intranet
# === Lapisan komputasi ===
EcsInstanceGroup:
Type: ALIYUN::ECS::InstanceGroup
Properties:
InstanceChargeType:
Ref: PayType
PeriodUnit:
Ref: PayPeriodUnit
Period:
Ref: PayPeriod
IoOptimized: optimized
SystemDiskCategory:
Ref: SystemDiskCategory
SystemDiskSize:
Ref: SystemDiskSize
DiskMappings:
- Category:
Ref: DataDiskCategory
Size:
Ref: DataDiskSize
VpcId:
Ref: Vpc
SecurityGroupId:
Ref: EcsSecurityGroup
VSwitchId:
Ref: VSwitch
MaxAmount: 2
ImageId: centos_7
InstanceType:
Ref: EcsInstanceType
Password:
Ref: InstancePassword
AllocatePublicIP: false
RunSetup:
Type: ALIYUN::ECS::RunCommand
DependsOn: EcsInstanceGroup
Properties:
InstanceIds:
Fn::GetAtt:
- EcsInstanceGroup
- InstanceIds
Type: RunShellScript
Sync: true
Timeout: 300
ContentEncoding: PlainText
CommandContent: |
#!/bin/bash
# === Inisialisasi disk data: partisi, format, pasang ke /disk1 ===
cat >> /root/InitDataDisk.sh << 'EOF'
#!/bin/bash
echo "p
n
p
w
" | fdisk -u /dev/vdb
EOF
/bin/bash /root/InitDataDisk.sh
rm -f /root/InitDataDisk.sh
mkfs -t ext4 /dev/vdb1
cp /etc/fstab /etc/fstab.bak
mkdir /disk1
echo `blkid /dev/vdb1 | awk '{print $2}' | sed 's/\"//g'` /disk1 ext4 defaults 0 0 >> /etc/fstab
mount -a
# === Instal dan jalankan Nginx ===
yum install -y nginx
systemctl start nginx.service
# === Lapisan load balancing ===
Slb:
Type: ALIYUN::SLB::LoadBalancer
Properties:
VpcId:
Ref: Vpc
VSwitchId:
Ref: VSwitch
LoadBalancerName:
Fn::Sub: slb-${ALIYUN::StackName}
PayType:
Ref: PayType
PricingCycle:
Ref: PayPeriodUnit
Duration:
Ref: PayPeriod
AddressType: intranet
LoadBalancerSpec:
Ref: LoadBalancerSpec
AutoPay: true
EipSlbAddress:
Type: ALIYUN::VPC::EIP
Properties:
Name:
Ref: ALIYUN::StackName
InternetChargeType: PayByTraffic
Bandwidth:
Ref: Bandwidth
EipSlbAddressAssociation:
Type: ALIYUN::VPC::EIPAssociation
Properties:
InstanceId:
Ref: Slb
AllocationId:
Ref: EipSlbAddress
SlbBackendServerAttachment:
DependsOn:
- EcsInstanceGroup
Type: ALIYUN::SLB::BackendServerAttachment
Properties:
BackendServerList:
Fn::GetAtt:
- EcsInstanceGroup
- InstanceIds
LoadBalancerId:
Ref: Slb
BackendServerWeightList:
- 100
- 100
SlbListener:
DependsOn:
- Slb
Type: ALIYUN::SLB::Listener
Properties:
LoadBalancerId:
Ref: Slb
ListenerPort: 80
BackendServerPort: 80
Protocol: tcp
Bandwidth: -1
Persistence:
StickySession: 'on'
StickySessionType: insert
CookieTimeout: 60
PersistenceTimeout: 180
HealthCheck:
HealthCheckType: tcp
Port: 80
Interval: 2
HealthyThreshold: 3
UnhealthyThreshold: 3
Timeout: 5
Outputs:
Endpoint:
Description:
zh-cn: Alamat akses publik yang diekspos
en: Public HTTP endpoint
Value:
Fn::Sub:
- http://${ServerAddress}
- ServerAddress:
Fn::GetAtt:
- EipSlbAddress
- EipAddress
# === Metadata: Konfigurasi pengelompokan parameter konsol ===
Metadata:
ALIYUN::ROS::Interface:
ParameterGroups:
- Parameters:
- ZoneId
- VpcCidrBlock
- VSwitchCidrBlock
Label:
default:
zh-cn: Konfigurasi Jaringan Dasar
en: Network Configuration
- Parameters:
- PayType
- PayPeriodUnit
- PayPeriod
Label:
default:
zh-cn: Tipe Penagihan
en: Billing Configuration
- Parameters:
- EcsInstanceType
- SystemDiskCategory
- SystemDiskSize
- DataDiskCategory
- DataDiskSize
- InstancePassword
Label:
default:
zh-cn: Konfigurasi Instans ECS
en: ECS Instance Configuration
- Parameters:
- LoadBalancerSpec
- Bandwidth
Label:
default:
zh-cn: Konfigurasi Load Balancer
en: CLB ConfigurationReferensi cepat fungsi bawaan ROS
Fungsi | Contoh Sintaks | Tujuan dalam Templat Ini | Catatan |
|
| Mereferensikan nilai parameter atau identifier utama sumber daya. | Mengembalikan nilai parameter saat mereferensikan Parameter; mengembalikan ID utama saat mereferensikan Resource. |
|
| Mendapatkan daftar ID instans dari grup instans ECS. | Mengembalikan atribut output sumber daya (identifier non-utama) setelah pembuatan. |
|
| Menggabungkan nama CLB. | Mereferensikan variabel dengan |
|
| Tampilan kondisional parameter durasi penagihan. | Negasi logis + perbandingan kesetaraan, digunakan untuk kondisi Visible. |
Penerapan
Parameter penerapan
Parameter wajib (harus ditentukan saat penerapan)
Parameter | Tipe | Deskripsi | Batasan |
| String | ID zona. | Dipilih secara dinamis di konsol. |
| String | Tipe instans ECS. | Difilter secara otomatis berdasarkan zona + tipe penagihan. |
| String | Tipe disk sistem. | Difilter secara otomatis berdasarkan zona + tipe instans. |
| String | Tipe disk data. | Difilter secara otomatis berdasarkan zona + tipe instans. |
| String | Spesifikasi instans CLB. | Difilter secara otomatis berdasarkan zona. |
Parameter opsional (memiliki nilai default, dapat dikosongkan)
Parameter | Default | Deskripsi |
| 192.168.0.0/16 | Blok CIDR VPC. |
| 192.168.0.0/24 | Blok CIDR subnet |
|
| Tipe penagihan (bayar sesuai penggunaan / langganan). |
| Month | Unit periode penagihan (ditampilkan hanya saat |
| 1 | Durasi penagihan (ditampilkan hanya saat |
| 40 | Ukuran disk sistem (GB), rentang: 40–500. |
| 100 | Ukuran disk data (GB), rentang: 20–32768. |
| 10 | Batas bandwidth EIP (Mbps), rentang: 1–1000. |
| — | Kata sandi logon instans ECS. Panjang 8–30 karakter, harus mengandung minimal tiga jenis karakter: huruf kapital, huruf kecil, angka, karakter khusus. |
Metode penerapan
Metode 1: Terapkan melalui konsol ROS
Login ke konsol ROS.
Di panel navigasi kiri, pilih Stacks > Create Stack.
Pilih Select an Existing Template > Enter Template Content dan tempel templat lengkap ke editor.
Klik Next, lalu konfigurasikan parameter berdasarkan kelompok.
Setelah mengonfirmasi konfigurasi, klik Create dan tunggu status stack berubah menjadi
CREATE_COMPLETE.
Metode 2: Terapkan melalui ROS IaC Code
IaC Code adalah asisten AI infrastructure-as-code untuk infrastruktur cloud. Alat ini membantu pengguna sumber daya cloud dan insinyur O&M menghasilkan, menerapkan, dan mengelola templat infrastruktur melalui alur kerja terminal.
# Prompt
Bantu saya menerapkan sekelompok instans ECS dan menyambungkannya ke load balancer CLB dengan persyaratan berikut:
1. Gunakan VPC dan vSwitch yang baru dibuat
2. Buat 2 instans ECS dan instal serta jalankan Nginx melalui CommandContent
3. Gunakan WaitCondition untuk menunggu instalasi Nginx selesai sebelum menyambungkan ke CLB
4. Konfigurasi CLB dengan listener port TCP 80 dan pemeriksaan kesehatan
5. Buat EIP dan asosiasikan dengan CLB untuk menyediakan akses HTTP
6. Buka port 80 inbound di security group
7. Konfigurasi ECS dengan disk data 100 GB dan partisi otomatis serta pasang di CommandContent
8. Konfigurasi ZoneId, EcsInstanceType, SystemDiskCategory, DataDiskCategory, LoadBalancerSpec dengan AssociationProperty untuk penyaringan dinamis di konsol
9. Dukung peralihan antara penagihan bayar sesuai penggunaan dan langganan, dengan parameter langganan menggunakan tampilan kondisionalFAQ
P1: Pemeriksaan kesehatan CLB terus gagal, dan instans ECS backend menunjukkan "Tidak Sehat"
Penyebab: Layanan Nginx di instans ECS tidak berjalan dengan benar, atau security group tidak membuka port 80.
Langkah pemecahan masalah:
Login ke instans ECS dan jalankan
systemctl status nginxuntuk memastikan Nginx berjalan.Verifikasi bahwa aturan inbound security group membuka port 80 (
PortRange: 80/80).Periksa bahwa
Portdalam konfigurasi pemeriksaan kesehatan CLB sesuai dengan port listener Nginx.Tingkatkan
HealthyThreshold(ambang batas sehat) danInterval(interval pemeriksaan) sesuai kebutuhan.
Q2: Bagaimana cara menyesuaikan rasio distribusi trafik di antara server backend?
Solusi: Ubah BackendServerWeightList di SlbBackendServerAttachment:
BackendServerWeightList:
- 100 # Instans ECS 1: menerima sekitar 67% traffic
- 50 # Instans ECS 2: menerima sekitar 33% trafficRasio bobot adalah 100:50, artinya instans ECS 1 menangani sekitar 2/3 permintaan. Untuk sementara mengeluarkan instans ECS dari layanan (dekomisioning skala abu-abu), atur bobotnya menjadi 0.
P3: Bagaimana cara mengganti skrip penerapan Nginx di ECS::RunCommand dengan aplikasi kustom?
Solusi: Ubah bagian instalasi dan jalankan di skrip CommandContent sambil mempertahankan logika inisialisasi disk data:
CommandContent:
Fn::Sub:
- |
#!/bin/bash
# ... Kode inisialisasi disk data (pertahankan seperti aslinya) ...
# === Ganti dengan skrip penerapan aplikasi Anda ===
# Contoh: Terapkan aplikasi Java Spring Boot
yum install -y java-11-openjdk
wget -P /disk1 https://your-oss-bucket.oss-cn-hangzhou.aliyuncs.com/app.jar
nohup java -jar /disk1/app.jar --server.port=80P4: Bagaimana cara mengganti CLB dengan ALB (Application Load Balancer)?
Langkah migrasi:
Ganti
ALIYUN::SLB::LoadBalancerdenganALIYUN::ALB::LoadBalancer.Gunakan
ALIYUN::ALB::ServerGroupuntuk membuat grup server dan menambahkan instans ECS backend.Gunakan
ALIYUN::ALB::Listener+ALIYUN::ALB::Ruleuntuk mengonfigurasi routing HTTP/HTTPS Lapisan 7.ALB secara native mendukung akses jaringan publik — tidak perlu mengasosiasikan EIP secara terpisah.
P5: Bagaimana cara menggunakan VPC yang sudah ada alih-alih membuat yang baru?
Solusi: Hapus VPC dan vSwitch dari Resources dan teruskan sebagai parameter:
Parameters:
ExistingVpcId:
Type: String
Label:
zh-cn: ID VPC yang Ada
en: Existing VPC ID
AssociationProperty: ALIYUN::ECS::VPC::VPCId
ExistingVSwitchId:
Type: String
Label:
zh-cn: ID vSwitch yang Ada
en: Existing vSwitch ID
AssociationProperty: ALIYUN::VPC::VSwitch::VSwitchId
AssociationPropertyMetadata:
VpcId: ${ExistingVpcId}Untuk masalah penerapan umum lainnya, lihat FAQ.