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 AWS CloudFormation Stapel zum Starten von Vorlagen
Sie können Ihre vorhandenen 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-Templates als Startvorlagen enthält. Weitere Informationen zum Migrieren von Startkonfigurationen in Startvorlagen finden Sie unter Migrieren Sie Ihre Auto Scaling-Gruppen zu Startvorlagen.
Themen
Auto-Scaling-Gruppen finden, die eine Startkonfiguration verwenden
So finden Sie Auto-Scaling-Gruppen, die eine Startkonfiguration verwenden
-
Verwenden Sie den folgenden Befehl describe-auto-scaling-groups
, um die Namen der Auto-Scaling-Gruppen aufzulisten, die Startkonfigurationen in der angegebenen Region verwenden. Fügen Sie die --filtersOption hinzu, die Ergebnisse auf Gruppen einzugrenzen, die einem CloudFormation Stack zugeordnet sind (durch Filtern nach demaws:cloudformation:stack-nameTag-Schlüssel).aws autoscaling describe-auto-scaling-groups --regionREGION\ --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 zum Auffinden von Auto Scaling-Gruppen, in denen die Ausgabe migriert und gefiltert werden sollMigrieren Sie Ihre Auto Scaling-Gruppen zu Startvorlagen.
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-templateLaunchTemplateData: 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 Eigenschaften, die Amazon EC2 unterstützt, finden Sie unter AWS: :EC2:: LaunchTemplate im Benutzerhandbuch. AWS CloudFormation
Beachten Sie, dass die Startvorlage die Eigenschaft
LaunchTemplateNamemit einem Wert von!Sub ${AWS::StackName}-launch-templateenthält. Dies ist erforderlich, wenn der Name der Startvorlage den Namen des Stacks enthalten soll. -
Wenn die Eigenschaft
IamInstanceProfilein Ihrer Startkonfiguration vorhanden ist, müssen Sie sie in eine Struktur umwandeln und entweder den Namen oder den ARN des Instance-Profils angeben. Ein Beispiel finden Sie unter AWS: :EC2:: AWS: :EC2::. LaunchTemplate -
Wenn die Eigenschaften
AssociatePublicIpAddress,InstanceMonitoringoderPlacementTenancyin Ihrer Startkonfiguration vorhanden sind, müssen Sie diese in eine Struktur umwandeln. Beispiele finden Sie unter AWS: :EC2:: AWS: :EC2:: LaunchTemplateEine Ausnahme besteht, wenn der Wert für die Eigenschaft
MapPublicIpOnLaunchin den Teilnetzen, die Sie für Ihre Auto-Scaling-Gruppe verwendet haben, mit dem Wert für die EigenschaftAssociatePublicIpAddressin Ihrer Startkonfiguration übereinstimmt. In diesem Fall können Sie dieAssociatePublicIpAddress-Eigenschaft ignorieren. DieAssociatePublicIpAddress-Eigenschaft wird nur verwendet, um dieMapPublicIpOnLaunch-Eigenschaft zu überschreiben und 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 vorhanden sind undNoDeviceauftruegesetzt ist, müssen Sie in Ihrer Startvorlage eine leere Zeichenfolge fürNoDeviceangeben, damit Amazon EC2 das Gerät auslässt. -
Wenn die Eigenschaft
SpotPricein 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 Preis überschreiten. On-DemandUm 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 im Benutzerhandbuch. AWS CloudFormation -
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 im Benutzerhandbuch. AWS CloudFormation
-
-
Entfernen Sie die
LaunchConfigurationNameEigenschaft aus der AutoScalingGroup https://docs.aws.amazon.com/en_us/AWSCloudFormation/latest/UserGuide/aws-resource-autoscaling-autoscalinggroup.htmlAWS::AutoScaling:::. Fügen Sie stattdessen die Startvorlage hinzu.In den folgenden Beispielen ruft die intrinsische Funktion Ref die ID der Ressource AWS: :EC2:: AWS: :EC2:: mit der logischen ID ab. LaunchTemplate
myLaunchTemplateDie GetAtt Funktion ruft die neueste Versionsnummer (z. B.1) der Startvorlage für die Eigenschaft ab.VersionBeispiel: Ohne eine Richtlinie für gemischte Instances
--- Resources: myASG: Type: AWS::AutoScaling::AutoScalingGroup Properties: LaunchTemplate: LaunchTemplateId:!Ref myLaunchTemplateVersion:!GetAtt myLaunchTemplate.LatestVersionNumber...Beispiel: Mit einer Richtlinie für gemischte Instances
--- Resources: myASG: Type: AWS::AutoScaling::AutoScalingGroup Properties: MixedInstancesPolicy: LaunchTemplate: LaunchTemplateSpecification: LaunchTemplateId:!Ref myLaunchTemplateVersion:!GetAtt myLaunchTemplate.LatestVersionNumber...Referenzinformationen für alle Eigenschaften, die Amazon EC2 Auto Scaling unterstützt, finden Sie unter AWS::AutoScaling AutoScalingGroup im AWS CloudFormation Benutzerhandbuch.
-
Wenn Sie bereit sind, diese Updates bereitzustellen, folgen Sie den Anweisungen, um den CloudFormation 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 UpdatePolicy Attribut für Auto Scaling-Gruppen. Um die vorhandenen Instances nach Abschluss dieses Verfahrens zu ersetzen, fügen Sie Ihrem Stack ein UpdatePolicy Attribut hinzu. Stellen Sie die Aktualisierungsrichtlinie auf einAutoScalingInstanceRefresh. Weitere Informationen finden Sie unter AutoScalingInstanceRefresh Richtlinie im AWS CloudFormation Benutzerhandbuch.
Wenn Sie kein UpdatePolicy Attribut für Ihre Auto Scaling-Gruppe angegeben haben, wird die Startvorlage auf Richtigkeit überprüft, es werden jedoch CloudFormation keine Änderungen auf die Instances in der Auto Scaling-Gruppe angewendet. 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 gelangen, stellen Sie sicher, dass Sie den Rollback-Vorgang testen.
Verfolgen Sie die Migration
So verfolgen Sie die Migration
-
Wählen Sie in der 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 Eventliste 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 Fehlersuche bei Amazon EC2 Auto Scaling: Startvorlagen zu möglichen Ursachen.
-
(Optional) Je nach Verwendung des
UpdatePolicy-Attributs können Sie den Fortschritt Ihrer Auto-Scaling-Gruppe auf der Seite Auto-Scaling-Gruppender Amazon EC2-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_COMPLETEStack-Ereignis ausgegeben. 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 Amazon EC2-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 Ressource AWS: :EC2:: AWS: :EC2:: aufgeführt. LaunchTemplate
| 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 sie EC2-Classic nicht mehr verfügbar sind.