Terjemahan disediakan oleh mesin penerjemah. Jika konten terjemahan yang diberikan bertentangan dengan versi bahasa Inggris aslinya, utamakan versi bahasa Inggris.
Konfigurasikan sumber EC2 daya Amazon Auto Scaling dengan CloudFormation
Contoh berikut menunjukkan cuplikan berbeda untuk disertakan dalam templat untuk digunakan dengan Amazon Auto EC2 Scaling.
Kategori cuplikan
Buat satu contoh grup Auto Scaling
Contoh ini menunjukkan AWS::AutoScaling::AutoScalingGroupsumber daya dengan satu instance untuk membantu Anda memulai. VPCZoneIdentifierProperti grup Auto Scaling menentukan daftar subnet yang ada di tiga Availability Zone yang berbeda. Anda harus menentukan subnet yang berlaku IDs dari akun Anda sebelum Anda membuat tumpukan Anda. LaunchTemplateProperti mereferensikan AWS::EC2::LaunchTemplatesumber daya dengan nama logis myLaunchTemplate yang didefinisikan di tempat lain dalam template Anda.
catatan
Untuk contoh templat peluncuran, lihat Buat template peluncuran dengan CloudFormation di bagian EC2 cuplikan Amazon dan bagian Contoh di sumber daya. AWS::EC2::LaunchTemplate
JSON
"myASG" : { "Type" : "AWS::AutoScaling::AutoScalingGroup", "Properties" : { "VPCZoneIdentifier" : [ "subnetIdAz1", "subnetIdAz2", "subnetIdAz3" ], "LaunchTemplate" : { "LaunchTemplateId" : { "Ref" : "myLaunchTemplate" }, "Version" : { "Fn::GetAtt" : [ "myLaunchTemplate", "LatestVersionNumber" ] } }, "MaxSize" : "1", "MinSize" : "1" } }
YAML
myASG: Type: AWS::AutoScaling::AutoScalingGroup Properties: VPCZoneIdentifier: -subnetIdAz1-subnetIdAz2-subnetIdAz3LaunchTemplate: LaunchTemplateId: !RefmyLaunchTemplateVersion: !GetAttmyLaunchTemplate.LatestVersionNumber MaxSize: '1' MinSize: '1'
Buat grup Auto Scaling dengan penyeimbang beban terlampir
Contoh ini menunjukkan AWS::AutoScaling::AutoScalingGroupsumber daya untuk load balancing melalui beberapa server. Ini menentukan nama logis AWS sumber daya yang dinyatakan di tempat lain dalam template yang sama.
-
VPCZoneIdentifierProperti menentukan nama logis dari dua sumberAWS::EC2::Subnetdaya tempat instance grup EC2 Auto Scaling akan dibuat: dan.myPublicSubnet1myPublicSubnet2 -
LaunchTemplateProperti menentukanAWS::EC2::LaunchTemplatesumber daya dengan namamyLaunchTemplatelogis. -
TargetGroupARNsProperti mencantumkan grup target untuk Application Load Balancer atau Network Load Balancer yang digunakan untuk merutekan lalu lintas ke grup Auto Scaling. Dalam contoh ini, satu kelompok target ditentukan,AWS::ElasticLoadBalancingV2::TargetGroupsumber daya dengan nama logismyTargetGroup.
JSON
"myServerGroup" : { "Type" : "AWS::AutoScaling::AutoScalingGroup", "Properties" : { "VPCZoneIdentifier" : [ { "Ref" : "myPublicSubnet1" }, { "Ref" : "myPublicSubnet2" } ], "LaunchTemplate" : { "LaunchTemplateId" : { "Ref" : "myLaunchTemplate" }, "Version" : { "Fn::GetAtt" : [ "myLaunchTemplate", "LatestVersionNumber" ] } }, "MaxSize" : "5", "MinSize" : "1", "TargetGroupARNs" : [ { "Ref" : "myTargetGroup" } ] } }
YAML
myServerGroup: Type: AWS::AutoScaling::AutoScalingGroup Properties: VPCZoneIdentifier: - !RefmyPublicSubnet1- !RefmyPublicSubnet2LaunchTemplate: LaunchTemplateId: !RefmyLaunchTemplateVersion: !GetAttmyLaunchTemplate.LatestVersionNumber MaxSize: '5' MinSize: '1' TargetGroupARNs: - !RefmyTargetGroup
Lihat juga
Untuk contoh mendetail yang membuat grup Auto Scaling dengan kebijakan penskalaan pelacakan target berdasarkan metrik yang ALBRequestCountPerTarget telah ditentukan untuk Application Load Balancer, lihat bagian Contoh di sumber daya. AWS::AutoScaling::ScalingPolicy
Buat grup Auto Scaling dengan notifikasi
Contoh ini menunjukkan AWS::AutoScaling::AutoScalingGroupsumber daya yang mengirimkan notifikasi Amazon SNS saat peristiwa yang ditentukan berlangsung. NotificationConfigurationsProperti menentukan topik SNS di mana CloudFormation mengirimkan pemberitahuan dan peristiwa yang akan menyebabkan CloudFormation untuk mengirim pemberitahuan. Ketika peristiwa yang ditentukan oleh NotificationTypes terjadi, CloudFormation akan mengirim pemberitahuan ke topik SNS yang ditentukan olehTopicARN. Saat Anda meluncurkan tumpukan, CloudFormation buat AWS::SNS::Subscriptionresource (snsTopicForAutoScalingGroup) yang dideklarasikan dalam template yang sama.
VPCZoneIdentifierProperti grup Auto Scaling menentukan daftar subnet yang ada di tiga Availability Zone yang berbeda. Anda harus menentukan subnet yang berlaku IDs dari akun Anda sebelum Anda membuat tumpukan Anda. LaunchTemplateProperti mereferensikan nama logis dari AWS::EC2::LaunchTemplatesumber daya yang dideklarasikan di tempat lain dalam template yang sama.
JSON
"myASG" : { "Type" : "AWS::AutoScaling::AutoScalingGroup", "DependsOn": [ "snsTopicForAutoScalingGroup" ], "Properties" : { "VPCZoneIdentifier" : [ "subnetIdAz1", "subnetIdAz2", "subnetIdAz3" ], "LaunchTemplate" : { "LaunchTemplateId" : { "Ref" : "logicalName" }, "Version" : { "Fn::GetAtt" : [ "logicalName", "LatestVersionNumber" ] } }, "MaxSize" : "5", "MinSize" : "1", "NotificationConfigurations" : [ { "TopicARN" : { "Ref" : "snsTopicForAutoScalingGroup" }, "NotificationTypes" : [ "autoscaling:EC2_INSTANCE_LAUNCH", "autoscaling:EC2_INSTANCE_LAUNCH_ERROR", "autoscaling:EC2_INSTANCE_TERMINATE", "autoscaling:EC2_INSTANCE_TERMINATE_ERROR", "autoscaling:TEST_NOTIFICATION" ] } ] } }
YAML
myASG: Type: AWS::AutoScaling::AutoScalingGroup DependsOn: - snsTopicForAutoScalingGroup Properties: VPCZoneIdentifier: -subnetIdAz1-subnetIdAz2-subnetIdAz3LaunchTemplate: LaunchTemplateId: !ReflogicalNameVersion: !GetAttlogicalName.LatestVersionNumber MaxSize: '5' MinSize: '1' NotificationConfigurations: - TopicARN: !Ref snsTopicForAutoScalingGroup NotificationTypes: - autoscaling:EC2_INSTANCE_LAUNCH - autoscaling:EC2_INSTANCE_LAUNCH_ERROR - autoscaling:EC2_INSTANCE_TERMINATE - autoscaling:EC2_INSTANCE_TERMINATE_ERROR - autoscaling:TEST_NOTIFICATION
Buat grup Auto Scaling yang menggunakan a dan CreationPolicyUpdatePolicy
Contoh berikut menunjukkan cara menambahkan CreationPolicy dan UpdatePolicy atribut ke AWS::AutoScaling::AutoScalingGroupsumber daya.
Kebijakan pembuatan sampel mencegah grup Auto Scaling mencapai CREATE_COMPLETE status hingga CloudFormation menerima Count sejumlah sinyal keberhasilan saat grup siap. Untuk memberi sinyal bahwa grup Auto Scaling sudah siap, skrip cfn-signal helper yang ditambahkan ke data pengguna template peluncuran (tidak ditampilkan) dijalankan pada instance. Jika instance tidak mengirim sinyal dalam yang ditentukanTimeout, CloudFormation mengasumsikan bahwa instance tidak dibuat, pembuatan sumber daya gagal, dan CloudFormation memutar tumpukan kembali.
Kebijakan pembaruan sampel menginstruksikan CloudFormation untuk melakukan pembaruan bergulir menggunakan AutoScalingRollingUpdate properti. Pembaruan bergulir membuat perubahan pada grup Auto Scaling dalam batch kecil (untuk contoh ini, instance demi instance) berdasarkan MaxBatchSize dan waktu jeda antara kumpulan pembaruan berdasarkan. PauseTime MinInstancesInServiceAtribut menentukan jumlah minimum instance yang harus dalam layanan dalam grup Auto Scaling CloudFormation sementara memperbarui instance lama.
Atribut WaitOnResourceSignals diatur menjadi true. CloudFormation harus menerima sinyal dari setiap instans baru dalam PauseTime yang ditentukan sebelum melanjutkan pembaruan. Saat pembaruan tumpukan sedang berlangsung, proses EC2 Auto Scaling berikut ditangguhkan:HealthCheck,,, ReplaceUnhealthy AZRebalanceAlarmNotification, dan. ScheduledActions Catatan: Jangan menangguhkan jenis prosesLaunch,Terminate, atau AddToLoadBalancer (jika grup Auto Scaling digunakan dengan Elastic Load Balancing) karena hal itu dapat mencegah pembaruan bergulir berfungsi dengan baik.
VPCZoneIdentifierProperti grup Auto Scaling menentukan daftar subnet yang ada di tiga Availability Zone yang berbeda. Anda harus menentukan subnet yang berlaku IDs dari akun Anda sebelum Anda membuat tumpukan Anda. LaunchTemplateProperti mereferensikan nama logis dari AWS::EC2::LaunchTemplatesumber daya yang dideklarasikan di tempat lain dalam template yang sama.
Untuk informasi selengkapnya tentang UpdatePolicy atribut CreationPolicy dan, lihat Referensi atribut sumber daya.
JSON
{ "Resources":{ "myASG":{ "CreationPolicy":{ "ResourceSignal":{ "Count":"3", "Timeout":"PT15M" } }, "UpdatePolicy":{ "AutoScalingRollingUpdate":{ "MinInstancesInService":"3", "MaxBatchSize":"1", "PauseTime":"PT12M5S", "WaitOnResourceSignals":"true", "SuspendProcesses":[ "HealthCheck", "ReplaceUnhealthy", "AZRebalance", "AlarmNotification", "ScheduledActions", "InstanceRefresh" ] } }, "Type":"AWS::AutoScaling::AutoScalingGroup", "Properties":{ "VPCZoneIdentifier":[ "subnetIdAz1", "subnetIdAz2", "subnetIdAz3" ], "LaunchTemplate":{ "LaunchTemplateId":{ "Ref":"logicalName" }, "Version":{ "Fn::GetAtt":[ "logicalName", "LatestVersionNumber" ] } }, "MaxSize":"5", "MinSize":"3" } } } }
YAML
--- Resources: myASG: CreationPolicy: ResourceSignal: Count: '3' Timeout: PT15M UpdatePolicy: AutoScalingRollingUpdate: MinInstancesInService: '3' MaxBatchSize: '1' PauseTime: PT12M5S WaitOnResourceSignals: true SuspendProcesses: - HealthCheck - ReplaceUnhealthy - AZRebalance - AlarmNotification - ScheduledActions - InstanceRefresh Type: AWS::AutoScaling::AutoScalingGroup Properties: VPCZoneIdentifier: -subnetIdAz1-subnetIdAz2-subnetIdAz3LaunchTemplate: LaunchTemplateId: !ReflogicalNameVersion: !GetAttlogicalName.LatestVersionNumber MaxSize: '5' MinSize: '3'
Membuat kebijakan penskalaan langkah
Contoh ini menunjukkan AWS::AutoScaling::ScalingPolicysumber daya yang menskalakan grup Auto Scaling menggunakan kebijakan penskalaan langkah. Properti AdjustmentType menentukan ChangeInCapacity, yang berarti bahwa ScalingAdjustment mewakili jumlah instans untuk ditambahkan (jika ScalingAdjustment positif) atau dihapus (jika negatif). Dalam contoh ini, ScalingAdjustment adalah 1; oleh karena itu, kebijakan menambah jumlah EC2 instance dalam grup sebesar 1 ketika ambang alarm dilanggar.
AWS::CloudWatch::AlarmSumber daya CPUAlarmHigh menentukan kebijakan penskalaan ASGScalingPolicyHigh sebagai tindakan yang akan dijalankan saat alarm berada dalam status ALARM ()AlarmActions. DimensionsProperti mereferensikan nama logis dari AWS::AutoScaling::AutoScalingGroupsumber daya yang dideklarasikan di tempat lain dalam template yang sama.
JSON
{ "Resources":{ "ASGScalingPolicyHigh":{ "Type":"AWS::AutoScaling::ScalingPolicy", "Properties":{ "AutoScalingGroupName":{ "Ref":"logicalName" }, "PolicyType":"StepScaling", "AdjustmentType":"ChangeInCapacity", "StepAdjustments":[ { "MetricIntervalLowerBound":0, "ScalingAdjustment":1 } ] } }, "CPUAlarmHigh":{ "Type":"AWS::CloudWatch::Alarm", "Properties":{ "EvaluationPeriods":"2", "Statistic":"Average", "Threshold":"90", "AlarmDescription":"Scale out if CPU > 90% for 2 minutes", "Period":"60", "AlarmActions":[ { "Ref":"ASGScalingPolicyHigh" } ], "Namespace":"AWS/EC2", "Dimensions":[ { "Name":"AutoScalingGroupName", "Value":{ "Ref":"logicalName" } } ], "ComparisonOperator":"GreaterThanThreshold", "MetricName":"CPUUtilization" } } } }
YAML
--- Resources: ASGScalingPolicyHigh: Type: AWS::AutoScaling::ScalingPolicy Properties: AutoScalingGroupName: !ReflogicalNamePolicyType: StepScaling AdjustmentType: ChangeInCapacity StepAdjustments: - MetricIntervalLowerBound: 0 ScalingAdjustment: 1 CPUAlarmHigh: Type: AWS::CloudWatch::Alarm Properties: EvaluationPeriods: 2 Statistic: Average Threshold: 90 AlarmDescription: 'Scale out if CPU > 90% for 2 minutes' Period: 60 AlarmActions: - !Ref ASGScalingPolicyHigh Namespace: AWS/EC2 Dimensions: - Name: AutoScalingGroupName Value: !ReflogicalNameComparisonOperator: GreaterThanThreshold MetricName: CPUUtilization
Lihat juga
Untuk contoh templat lainnya untuk kebijakan penskalaan, lihat bagian Contoh di AWS::AutoScaling::ScalingPolicy sumber daya.
Contoh kelompok contoh campuran
Membuat grup Auto Scaling dengan menggunakan pemilihan jenis instans berdasarkan atribut
Contoh ini menunjukkan AWS::AutoScaling::AutoScalingGroupsumber daya yang berisi informasi untuk meluncurkan grup instance campuran menggunakan pemilihan tipe instans berbasis atribut. Anda menentukan nilai minimum dan maksimum untuk VCpuCount properti dan nilai minimum untuk MemoryMiB properti. Tipe instans apa pun yang digunakan oleh grup Auto Scaling harus sesuai dengan atribut instance yang diperlukan.
VPCZoneIdentifierProperti grup Auto Scaling menentukan daftar subnet yang ada di tiga Availability Zone yang berbeda. Anda harus menentukan subnet yang berlaku IDs dari akun Anda sebelum Anda membuat tumpukan Anda. LaunchTemplateProperti mereferensikan nama logis dari AWS::EC2::LaunchTemplatesumber daya yang dideklarasikan di tempat lain dalam template yang sama.
JSON
{ "Resources":{ "myASG":{ "Type":"AWS::AutoScaling::AutoScalingGroup", "Properties":{ "VPCZoneIdentifier":[ "subnetIdAz1", "subnetIdAz2", "subnetIdAz3" ], "MixedInstancesPolicy":{ "LaunchTemplate":{ "LaunchTemplateSpecification":{ "LaunchTemplateId":{ "Ref":"logicalName" }, "Version":{ "Fn::GetAtt":[ "logicalName", "LatestVersionNumber" ] } }, "Overrides":[ { "InstanceRequirements":{ "VCpuCount":{ "Min":2, "Max":4}, "MemoryMiB":{ "Min":2048} } } ] } }, "MaxSize":"5", "MinSize":"1" } } } }
YAML
--- Resources: myASG: Type: AWS::AutoScaling::AutoScalingGroup Properties: VPCZoneIdentifier: -subnetIdAz1-subnetIdAz2-subnetIdAz3MixedInstancesPolicy: LaunchTemplate: LaunchTemplateSpecification: LaunchTemplateId: !ReflogicalNameVersion: !GetAttlogicalName.LatestVersionNumber Overrides: - InstanceRequirements: VCpuCount: Min:2Max:4MemoryMiB: Min:2048MaxSize: '5' MinSize: '1'
Luncurkan contoh konfigurasi
Buat konfigurasi peluncuran
Contoh ini menunjukkan AWS::AutoScaling::LaunchConfigurationsumber daya untuk grup Auto Scaling tempat Anda menentukan nilai untukImageId,InstanceType, dan SecurityGroups properti. SecurityGroupsProperti menentukan nama logis dari AWS::EC2::SecurityGroupsumber daya yang ditentukan di tempat lain dalam template, dan grup EC2 keamanan yang ada bernamamyExistingEC2SecurityGroup.
JSON
"mySimpleConfig" : { "Type" : "AWS::AutoScaling::LaunchConfiguration", "Properties" : { "ImageId" : "ami-02354e95b3example", "InstanceType" : "t3.micro", "SecurityGroups" : [ { "Ref" : "logicalName" }, "myExistingEC2SecurityGroup" ] } }
YAML
mySimpleConfig: Type: AWS::AutoScaling::LaunchConfiguration Properties: ImageId:ami-02354e95b3exampleInstanceType:t3.microSecurityGroups: - !ReflogicalName-myExistingEC2SecurityGroup
Membuat grup Auto Scaling yang menggunakan konfigurasi peluncuran
Contoh ini menunjukkan AWS::AutoScaling::AutoScalingGroupsumber daya dengan satu contoh. VPCZoneIdentifierProperti grup Auto Scaling menentukan daftar subnet yang ada di tiga Availability Zone yang berbeda. Anda harus menentukan subnet yang berlaku IDs dari akun Anda sebelum Anda membuat tumpukan Anda. LaunchConfigurationNameProperti mereferensikan AWS::AutoScaling::LaunchConfigurationsumber daya dengan nama logis mySimpleConfig yang didefinisikan dalam template Anda.
JSON
"myASG" : { "Type" : "AWS::AutoScaling::AutoScalingGroup", "Properties" : { "VPCZoneIdentifier" : [ "subnetIdAz1", "subnetIdAz2", "subnetIdAz3" ], "LaunchConfigurationName" : { "Ref" : "mySimpleConfig" }, "MaxSize" : "1", "MinSize" : "1" } }
YAML
myASG: Type: AWS::AutoScaling::AutoScalingGroup Properties: VPCZoneIdentifier: -subnetIdAz1-subnetIdAz2-subnetIdAz3LaunchConfigurationName: !RefmySimpleConfigMaxSize: '1' MinSize: '1'