Die vorliegende Übersetzung wurde maschinell erstellt. Im Falle eines Konflikts oder eines Widerspruchs zwischen dieser übersetzten Fassung und der englischen Fassung (einschließlich infolge von Verzögerungen bei der Übersetzung) ist die englische Fassung maßgeblich.
Migrieren Sie AWS CloudFormation Stacks zu Startvorlagen
Sie können Ihre vorhandenen AWS CloudFormation Stack-Vorlagen von Startkonfigurationen zu Startvorlagen migrieren. Fügen Sie dazu eine Startvorlage direkt zu einer vorhandenen Stack-Vorlage hinzu und verknüpfen Sie die Startvorlage dann mit der Auto-Scaling-Gruppe in der Stack-Vorlage. Verwenden Sie anschließend die geänderte Vorlage zum Aktualisieren Ihres Stacks.
Bei der Migration zu Startvorlagen spart Ihnen dieses Thema Zeit, da es Anweisungen zum Umschreiben der Startkonfigurationen in Ihren CloudFormation Stack-Vorlagen als Startvorlagen enthält. Weitere Informationen zum Migrieren von Startkonfigurationen in Startvorlagen finden Sie unter Migrieren Sie Ihre Auto Scaling Scaling-Gruppen, um Vorlagen zu starten.
Themen
Auto-Scaling-Gruppen finden, die eine Startkonfiguration verwenden
So finden Sie Auto-Scaling-Gruppen, die eine Startkonfiguration verwenden
-
Verwenden Sie den folgenden describe-auto-scaling-groupsBefehl, um die Namen der Auto Scaling Scaling-Gruppen aufzulisten, die Startkonfigurationen in der angegebenen Region verwenden. Fügen Sie die
--filters
Option hinzu, die Ergebnisse auf Gruppen einzugrenzen, die einem CloudFormation Stack zugeordnet sind (durch Filtern nach demaws:cloudformation:stack-name
Tag-Schlüssel).aws autoscaling describe-auto-scaling-groups --region
REGION
\ --filters Name=tag-key,Values=aws:cloudformation:stack-name \ --query 'AutoScalingGroups[?LaunchConfigurationName!=`null`].AutoScalingGroupName'Das folgende Beispiel zeigt eine Ausgabe.
[ "{stack-name}-group-1", "{stack-name}-group-2", "{stack-name}-group-3" ]
Sie finden weitere nützliche AWS CLI Befehle, um Auto Scaling Scaling-Gruppen für die Migration zu finden und die Ausgabe zu filternMigrieren Sie Ihre Auto Scaling Scaling-Gruppen, um Vorlagen zu starten.
Wichtig
Wenn Ihre Stack-Ressourcen AWSEB
in ihrem Namen stehen, bedeutet das, dass sie durch erstellt wurden AWS Elastic Beanstalk. In diesem Fall müssen Sie die Beanstalk-Umgebung aktualisieren, um Elastic Beanstalk anzuweisen, die Startkonfiguration zu entfernen und sie durch eine Startvorlage zu ersetzen.
Aktualisieren eines Stacks zur Verwendung einer Startvorlage
Befolgen Sie die Schritte in diesem Abschnitt, um Folgendes zu tun:
-
Schreiben Sie die Startkonfiguration als Startvorlage um und verwenden Sie die entsprechenden Eigenschaften der Startvorlage.
-
Verknüpfen Sie die neue Startvorlage mit der Auto-Scaling-Gruppe.
-
Stellen Sie diese Updates bereit.
So ändern Sie die Stack-Vorlage und aktualisieren den Stack
-
Folgen Sie den gleichen allgemeinen Verfahren zum Ändern der Stack-Vorlage, die im AWS CloudFormation Benutzerhandbuch unter Ändern einer Stack-Vorlage beschrieben sind.
-
Schreiben Sie die Startkonfiguration in eine Startvorlage um. Sehen Sie sich das folgende Beispiel an:
Beispiel: Eine einfache Startkonfiguration
--- Resources: myLaunchConfig: Type: AWS::AutoScaling::LaunchConfiguration Properties: ImageId: ami-02354e95b3example InstanceType: t3.micro SecurityGroups: - !Ref EC2SecurityGroup KeyName: MyKeyPair BlockDeviceMappings: - DeviceName: /dev/xvda Ebs: VolumeSize: 150 DeleteOnTermination: true UserData: Fn::Base64: !Sub | #!/bin/bash -xe yum install -y aws-cfn-bootstrap /opt/aws/bin/cfn-signal -e $? --stack ${AWS::StackName} --resource myASG --region ${AWS::Region}
Beispiel: Das Äquivalent zur Startvorlage
--- Resources: myLaunchTemplate: Type: AWS::EC2::LaunchTemplate Properties: LaunchTemplateName:
!Sub ${AWS::StackName}-launch-template
LaunchTemplateData: ImageId: ami-02354e95b3example InstanceType: t3.micro SecurityGroupIds: - Ref! EC2SecurityGroup KeyName: MyKeyPair BlockDeviceMappings: - DeviceName: /dev/xvda Ebs: VolumeSize: 150 DeleteOnTermination: true UserData: Fn::Base64: !Sub | #!/bin/bash -x yum install -y aws-cfn-bootstrap /opt/aws/bin/cfn-signal -e $? --stack ${AWS::StackName} --resource myASG --region ${AWS::Region}Referenzinformationen zu allen von Amazon EC2 unterstützten Eigenschaften finden Sie unter AWS::EC2:: LaunchTemplate AWS im AWS CloudFormation Benutzerhandbuch.
Beachten Sie, dass die Startvorlage die Eigenschaft
LaunchTemplateName
mit einem Wert von!Sub ${AWS::StackName}-launch-template
enthält. Dies ist erforderlich, wenn der Name der Startvorlage den Namen des Stacks enthalten soll. -
Wenn die
IamInstanceProfile
Eigenschaft in Ihrer Startkonfiguration vorhanden ist, müssen Sie sie in eine Struktur konvertieren und entweder den Namen oder den Namen ARN des Instance-Profils angeben. Ein Beispiel finden Sie unter AWS:EC2:: LaunchTemplate AWS . -
Wenn die Eigenschaften
AssociatePublicIpAddress
,InstanceMonitoring
oderPlacementTenancy
in Ihrer Startkonfiguration vorhanden sind, müssen Sie diese in eine Struktur umwandeln. Beispiele finden Sie unter AWS::EC2:: LaunchTemplate AWS .Eine Ausnahme besteht, wenn der Wert für die Eigenschaft
MapPublicIpOnLaunch
in den Teilnetzen, die Sie für Ihre Auto-Scaling-Gruppe verwendet haben, mit dem Wert für die EigenschaftAssociatePublicIpAddress
in Ihrer Startkonfiguration übereinstimmt. In diesem Fall können Sie dieAssociatePublicIpAddress
-Eigenschaft ignorieren. DieAssociatePublicIpAddress
Eigenschaft wird nur verwendet, um dieMapPublicIpOnLaunch
Eigenschaft zu überschreiben, um zu ändern, ob Instances beim Start eine öffentliche IPv4 Adresse erhalten. -
Sie können Sicherheitsgruppen aus der
SecurityGroups
-Eigenschaft an eine von zwei Stellen in Ihrer Startvorlage kopieren. Normalerweise kopieren Sie die Sicherheitsgruppen in dieSecurityGroupIds
-Eigenschaft. Wenn Sie jedoch in Ihrer Startvorlage eineNetworkInterfaces
-Struktur erstellen, um dieAssociatePublicIpAddress
-Eigenschaft anzugeben, müssen Sie stattdessen die Sicherheitsgruppen in dieGroups
-Eigenschaft der Netzwerkschnittstelle kopieren. -
Wenn in Ihrer Startkonfiguration
BlockDeviceMapping
Strukturen mit derNoDevice
Einstellung auf vorhanden sindtrue
, müssen SieNoDevice
in Ihrer Startvorlage eine leere Zeichenfolge für angeben, damit Amazon das Gerät EC2 auslässt. -
Wenn die Eigenschaft
SpotPrice
in Ihrer Startkonfiguration vorhanden ist, empfehlen wir Ihnen, sie in Ihrer Startvorlage wegzulassen. Ihre Spot Instance wird zum aktuellen Spot-Preis gestartet. Dieser Preis wird niemals den On-Demand-Preis überschreiten.Um Spot-Instances anzufordern, haben Sie zwei Optionen, die sich gegenseitig ausschließen:
-
Die erste Möglichkeit besteht darin, die
InstanceMarketOptions
-Struktur in Ihrer Startvorlage zu verwenden (nicht empfohlen). Weitere Informationen finden Sie unter AWS::EC2:: LaunchTemplate InstanceMarketOptions AWS im AWS CloudFormation Benutzerhandbuch. -
Die andere besteht darin, Ihrer Auto-Scaling-Gruppe eine
MixedInstancesPolicy
-Struktur hinzuzufügen. Auf diese Weise stehen Ihnen mehr Optionen zur Verfügung, wie Sie die Anfrage stellen können. Eine Spot-Instance-Anfrage in Ihrer Startvorlage unterstützt nicht mehr als eine Instance-Typauswahl pro Auto-Scaling-Gruppe. Eine Richtlinie für gemischte Instances unterstützt jedoch die Auswahl von mehr als einem Instance-Typ pro Auto-Scaling-Gruppe. Spot-Instance-Anfragen profitieren davon, dass mehr als ein einziger Instance-Typ zur Auswahl steht. Weitere Informationen finden Sie unter AWS::AutoScaling: AutoScalingGroup MixedInstancesPolicy AWS im AWS CloudFormation Benutzerhandbuch.
-
-
Entfernen Sie die
LaunchConfigurationName
Eigenschaft aus der AutoScalingGroup Ressource AWSAutoScaling:: AutoScalingGroup AWS . Fügen Sie stattdessen die Startvorlage hinzu.In den folgenden Beispielen ruft die intrinsische Funktion Ref die ID der AWS::::EC2:: LaunchTemplate AWS Ressource mit der logischen ID ab.
myLaunchTemplate
Die GetAttFunktion ruft die neueste Versionsnummer (z. B.1
) der Startvorlage für dieVersion
Eigenschaft ab.Beispiel: Ohne eine Richtlinie für gemischte Instances
--- Resources: myASG: Type: AWS::AutoScaling::AutoScalingGroup Properties: LaunchTemplate: LaunchTemplateId:
!Ref myLaunchTemplate
Version:!GetAtt myLaunchTemplate.LatestVersionNumber
...Beispiel: Mit einer Richtlinie für gemischte Instances
--- Resources: myASG: Type: AWS::AutoScaling::AutoScalingGroup Properties: MixedInstancesPolicy: LaunchTemplate: LaunchTemplateSpecification: LaunchTemplateId:
!Ref myLaunchTemplate
Version:!GetAtt myLaunchTemplate.LatestVersionNumber
...Referenzinformationen zu allen Eigenschaften, die Amazon EC2 Auto Scaling unterstützt, finden Sie unter AWSAutoScaling:: AutoScalingGroup AWS im AWS CloudFormation Benutzerhandbuch.
-
Wenn Sie bereit sind, diese Updates bereitzustellen, folgen Sie den CloudFormation Verfahren, um den Stack mit Ihrer geänderten Stack-Vorlage zu aktualisieren. Weitere Informationen finden Sie unter Ändern einer Stack-Vorlage im AWS CloudFormation Benutzerhandbuch.
Das Aktualisierungsverhalten von Stack-Ressourcen verstehen
CloudFormation aktualisiert die Stack-Ressourcen, indem die Änderungen zwischen der von Ihnen bereitgestellten aktualisierten Vorlage und den Ressourcenkonfigurationen, die Sie in der vorherigen Version Ihrer Stack-Vorlage beschrieben haben, verglichen werden. Nicht geänderte Ressourcenkonfigurationen bleiben während des Updates davon unberührt.
CloudFormation unterstützt das UpdatePolicyAttribut für Auto Scaling Scaling-Gruppen. Wenn während eines Updates auf eingestellt UpdatePolicy
istAutoScalingRollingUpdate
, werden InService
Instanzen CloudFormation ersetzt, nachdem Sie die Schritte in diesem Verfahren ausgeführt haben. Wenn auf gesetzt UpdatePolicy
istAutoScalingReplacingUpdate
, CloudFormation ersetzt die Auto Scaling Scaling-Gruppe und ihren Warmpool (falls vorhanden).
Wenn Sie kein UpdatePolicy
Attribut für Ihre Auto Scaling Scaling-Gruppe angegeben haben, wird die Startvorlage auf ihre Richtigkeit überprüft, aber CloudFormation es werden keine Änderungen für die Instances in der Auto Scaling Scaling-Gruppe bereitgestellt. Alle neuen Instances verwenden Ihre Startvorlage, aber bestehende Instances werden weiterhin mit der Startkonfiguration ausgeführt, mit der sie ursprünglich gestartet wurden (obwohl die Startkonfiguration nicht mehr existiert). Die Ausnahme ist, wenn Sie Ihre Kaufoptionen ändern, z. B. indem Sie eine Police für gemischte Instances hinzufügen. In diesem Fall ersetzt Ihre Auto-Scaling-Gruppe die vorhandenen Instances nach und nach durch neue Instances, die den neuen Kaufoptionen entsprechen.
Wenn Sie eine Änderung rückgängig machen müssen, um von Startkonfigurationen zu Startvorlagen zu wechseln, stellen Sie sicher, dass Sie den Rollback-Vorgang testen.
Verfolgen Sie die Migration
So verfolgen Sie die Migration
-
Wählen Sie in der AWS CloudFormation -Konsole
den Stack aus, den Sie aktualisiert haben, und klicken Sie dann auf die Registerkarte Events (Ereignisse), um die Stack-Ereignisse anzuzeigen. -
Um die Ereignisliste mit den neuesten Ereignissen zu aktualisieren, klicken Sie in der CloudFormation Konsole auf die Schaltfläche „Aktualisieren“.
-
Während Ihr Stack aktualisiert wird, werden Sie mehrere Ereignisse für jede Ressourcenaktualisierung feststellen. Wenn Sie in der Spalte Statusgrund eine Ausnahme sehen, die auf ein Problem beim Erstellen der Startvorlage hinweist, finden Sie weitere Informationen Problembehandlung bei Amazon EC2 Auto Scaling: Vorlagen starten zu möglichen Ursachen.
-
(Optional) Je nachdem, wie Sie das
UpdatePolicy
Attribut verwenden, können Sie den Fortschritt Ihrer Auto Scaling Scaling-Gruppe auf der Seite Auto Scaling Scaling-Gruppender EC2 Amazon-Konsole überwachen. Wählen Sie die Auto-Scaling-Gruppe aus. Auf der Registerkarte Activity (Aktivität) unter Activity history (Aktivitätsverlauf) zeigt die Spalte Status an, ob Ihre Auto-Scaling-Gruppe-Instances erfolgreich gestartet oder beendet hat oder ob die Skalierungsaktivität noch im Gange ist. -
Wenn das Stack-Update abgeschlossen ist, wird CloudFormation ein
UPDATE_COMPLETE
Stack-Ereignis ausgelöst. Weitere Informationen finden Sie unter Überwachung des Fortschritts einer Stack-Aktualisierung im AWS CloudFormation Benutzerhandbuch. -
Nachdem das Stack-Update abgeschlossen ist, öffnen Sie die Seite Startvorlagen
und Startkonfigurationen der EC2 Amazon-Konsole. Sie werden feststellen, dass eine neue Startvorlage erstellt und die Startkonfiguration gelöscht wurde.
Referenz für die Abbildung der Startkonfiguration
Zu Referenzzwecken sind in der folgenden Tabelle alle Eigenschaften der obersten Ebene in der Ressource AWS::AutoScaling:: LaunchConfiguration AWS aufgeführt, zusammen mit der entsprechenden Eigenschaft in der LaunchConfiguration Ressource AWS::EC2:: LaunchTemplate AWS .
Startkonfiguration Quelleigenschaft | Ziel-Eigenschaft der Startvorlage |
---|---|
AssociatePublicIpAddress |
NetworkInterfaces.AssociatePublicIpAddress |
BlockDeviceMappings |
BlockDeviceMappings |
ClassicLinkVPCId |
Nicht verfügbar¹ |
ClassicLinkVPCSecurityGroups |
Nicht verfügbar¹ |
EbsOptimized |
EbsOptimized |
IamInstanceProfile |
Entweder IamInstanceProfile.Arn oder IamInstanceProfile.Name , jedoch nicht beides. |
ImageId |
ImageId |
InstanceId |
InstanceId |
InstanceMonitoring |
Monitoring.Enabled |
InstanceType |
InstanceType |
KernelId |
KernelId |
KeyName |
KeyName |
LaunchConfigurationName |
LaunchTemplateName |
MetadataOptions |
MetadataOptions |
PlacementTenancy |
Placement.Tenancy
|
RamDiskId |
RamDiskId |
SecurityGroups |
Entweder SecurityGroupIds oder NetworkInterfaces.Groups , jedoch nicht beides. |
SpotPrice |
InstanceMarketOptions.SpotOptions.MaxPrice |
UserData |
UserData |
¹ Die ClassicLinkVPCSecurityGroups
Eigenschaften ClassicLinkVPCId
und können nicht in einer Startvorlage verwendet werden, da EC2 -Classic nicht mehr verfügbar ist.