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.
Erstellen Sie Ihren ersten Stapel
Dieses Thema führt Sie durch die Erstellung Ihres ersten CloudFormation Stacks mit dem AWS-Managementkonsole. In diesem Tutorial erfahren Sie, wie Sie grundlegende AWS Ressourcen bereitstellen, Stack-Ereignisse überwachen und Ausgaben generieren.
In diesem Beispiel ist die CloudFormation Vorlage in YAML geschrieben. YAML ist ein von Menschen lesbares Format, das häufig zur Definition von Infrastruktur als Code verwendet wird. Wenn Sie mehr darüber erfahren CloudFormation, werden Sie möglicherweise auch auf andere Vorlagen im JSON-Format stoßen, aber für dieses Tutorial wurde YAML aufgrund seiner Lesbarkeit ausgewählt.
Anmerkung
CloudFormation ist kostenlos, aber die von Ihnen erstellten Amazon EC2 - und Amazon S3 S3-Ressourcen werden Ihnen in Rechnung gestellt. Wenn Sie jedoch noch keine Erfahrung damit haben AWS, können Sie das kostenlose Kontingent
Themen
Voraussetzungen
-
Sie benötigen Zugriff auf einen Benutzer oder eine Rolle AWS-Konto mit einem IAM-Status, der über Berechtigungen zur Nutzung von Amazon EC2, Amazon S3 und CloudFormation oder Administratorzugriff verfügt.
-
Sie müssen über eine Virtual Private Cloud (VPC) verfügen, die Zugang zum Internet hat. Diese exemplarische Vorlage erfordert eine Standard-VPC, die automatisch mit newer AWS-Konten geliefert wird. Wenn Sie keine Standard-VPC haben oder diese gelöscht wurde, finden Sie im Abschnitt zur Fehlerbehebung in diesem Thema alternative Lösungen.
Erstellen Sie einen CloudFormation Stack mit der Konsole
Um einen Hello CloudFormation World-Stack mit der Konsole zu erstellen
-
Öffnen Sie die CloudFormation-Konsole
. -
Wählen Sie Stack erstellen aus.
-
Wählen Sie auf der Seite Stack erstellen die Option Von Infrastructure Composer erstellenund dann In Infrastructure Composer erstellen. Dadurch gelangen Sie im CloudFormation Konsolenmodus zu Infrastructure Composer, wo Sie die Beispielvorlage hochladen und validieren können.
-
Um die Beispielvorlage hochzuladen und zu validieren, gehen Sie wie folgt vor:
-
Choose Template. Kopieren Sie dann die folgende CloudFormation Vorlage und fügen Sie sie in den Vorlageneditor ein:
AWSTemplateFormatVersion: 2010-09-09 Description: CloudFormation Template for WebServer with Security Group and EC2 Instance Parameters: LatestAmiId: Description: The latest Amazon Linux 2 AMI from the Parameter Store Type: AWS::SSM::Parameter::Value<AWS::EC2::Image::Id> Default: '/aws/service/ami-amazon-linux-latest/amzn2-ami-hvm-x86_64-gp2' InstanceType: Description: WebServer EC2 instance type Type: String Default: t2.micro AllowedValues: - t3.micro - t2.micro ConstraintDescription: must be a valid EC2 instance type. MyIP: Description: Your IP address in CIDR format (e.g. 203.0.113.1/32). Type: String MinLength: '9' MaxLength: '18' Default: 0.0.0.0/0 AllowedPattern: '^(\d{1,3}\.){3}\d{1,3}\/\d{1,2}$' ConstraintDescription: must be a valid IP CIDR range of the form x.x.x.x/x. Resources: WebServerSecurityGroup: Type: AWS::EC2::SecurityGroup Properties: GroupDescription: Allow HTTP access via my IP address SecurityGroupIngress: - IpProtocol: tcp FromPort: 80 ToPort: 80 CidrIp: !Ref MyIP WebServer: Type: AWS::EC2::Instance Properties: ImageId: !Ref LatestAmiId InstanceType: !Ref InstanceType SecurityGroupIds: - !Ref WebServerSecurityGroup UserData: !Base64 | #!/bin/bash yum update -y yum install -y httpd systemctl start httpd systemctl enable httpd echo "<html><body><h1>Hello World!</h1></body></html>" > /var/www/html/index.html Outputs: WebsiteURL: Value: !Join - '' - - http:// - !GetAtt WebServer.PublicDnsName Description: Website URLBevor Sie mit dem nächsten Schritt fortfahren, nehmen wir uns einen Moment Zeit, um einen Blick auf die Vorlage zu werfen und einige wichtige CloudFormation Konzepte zu verstehen.
-
Der Abschnitt
Parametersdeklariert Werte, die bei der Erstellung des Stapels an die Vorlage übergeben werden können. Später in der Vorlage angegebene Ressourcen verweisen auf diese Werte und verwenden die Daten. Parameter sind eine effektive Möglichkeit, Informationen anzugeben, die Sie nicht in der Vorlage selbst speichern möchten. Sie sind auch eine Möglichkeit, Informationen anzugeben, die für die spezifische Anwendung oder Konfiguration, die Sie bereitstellen, einzigartig sein könnten. -
Die Vorlage definiert die folgenden Parameter:
-
LatestAmiId- Ruft die neueste Amazon Linux 2 AMI ID aus dem AWS Systems Manager Parameter Store ab. -
InstanceType— Ermöglicht die Auswahl des EC2 Instanztyps (Standard:t2.micro, erlaubt:t3.micro,t2.micro). -
MyIP- Gibt den IP-Adressbereich für den HTTP-Zugriff an (Standard: 0.0.0.0/0, was den Zugriff von jeder IP erlaubt).
-
-
Der
ResourcesAbschnitt enthält die Definitionen der AWS Ressourcen, die Sie mit der Vorlage erstellen möchten. Resourcendeklarationen stellen eine effiziente Möglichkeit dar, alle diese Konfigurationseinstellungen gleichzeitig anzugeben. Wenn Sie Ressourcendeklarationen in eine Vorlage aufnehmen, können Sie alle deklarierten Ressourcen erstellen und konfigurieren, indem Sie diese Vorlage zur Erstellung eines Stapels verwenden. Sie können auch neue Stapel mit der gleichen Vorlage erstellen, um identische Konfigurationen von Ressourcen zu starten. -
Diese-Vorlage erstellt die folgenden Ressourcen:
-
WebServerSecurityGroup— Eine EC2 Sicherheitsgruppe, die eingehenden HTTP-Verkehr auf Port 80 aus dem angegebenen IP-Bereich zulässt. -
WebServer— Eine EC2 Instanz mit der folgenden Konfiguration:-
Verwendet das neueste Amazon Linux 2 AMI
-
Wendet den ausgewählten Instancetyp an
-
Fügt die Eigenschaft
WebServerSecurityGroupzur EigenschaftSecurityGroupIdshinzu -
Enthält ein Skript mit Benutzerdaten zur Installation von Apache HTTP Server
-
-
-
Am Anfang jeder Ressourcen- und Parameterdeklaration wird ein logischer Name angegeben.
WebServerSecurityGroupIst beispielsweise der logische Name, der der EC2 Sicherheitsgruppenressource zugewiesen wurde. Die FunktionRefwird dann verwendet, um in anderen Teilen der Vorlage auf Ressourcen und Parameter über ihre logischen Namen zu verweisen. Wenn eine Ressource auf eine andere Ressource verweist, entsteht eine Abhängigkeit zwischen ihnen. -
Der Abschnitt
Outputsdefiniert benutzerdefinierte Werte, die nach der Erstellung des Stacks zurückgegeben werden. Sie können die Ausgabewerte verwenden, um Informationen aus den Ressourcen im Stapel zurückzugeben, z. B. Ressourcen-IDs oder URLs. -
Die Vorlage definiert eine Ausgabe:
-
WebsiteURL— Die URL des bereitgestellten Webservers, die anhand des öffentlichen DNS-Namens der EC2 Instanz erstellt wurde. Mit der FunktionJoinkönnen Sie die feste Variablehttp://und die VariablePublicDnsNamezu einer einzigen Zeichenkette zusammenfassen, was die Ausgabe der vollständigen URL des Webservers erleichtert.
-
-
-
Wählen Sie Validieren um sicherzustellen, dass der YAML-Code gültig ist, bevor Sie die Vorlage hochladen.
-
Wählen Sie anschließend Vorlage erstellen um die Vorlage zu erstellen und zu einem S3-Bucket hinzuzufügen.
-
Notieren Sie sich in dem sich öffnenden Dialogfenster den Namen des S3-Buckets, damit Sie ihn später löschen können. Wählen Sie dann Bestätigen und fahren Sie fort CloudFormation. Dadurch gelangen Sie zur CloudFormation Konsole, in der jetzt der S3-Pfad zu Ihrer Vorlage angegeben ist.
-
-
Auf der Seite Stapel erstellen wählen Sie Weiter.
-
Geben Sie auf der Seite Stapeldetails angeben einen Namen in das Feld Stapelname ein. Der Stack-Name darf keine Leerzeichen enthalten. Wählen Sie für dieses Beispiel
MyTestStack. -
Unter Parametergeben Sie die Parameterwerte wie folgt an:
-
LatestAmiId: Dies ist standardmäßig auf das neueste Amazon Linux 2-AMI eingestellt.
-
InstanceType: Wählen Sie entweder t2.micro oder t3.micro als Instance-Typ. EC2
Anmerkung
Wenn Sie noch nicht damit vertraut sind AWS, können Sie das kostenlose Kontingent nutzen, um eine
t2.microInstance zu starten und 12 Monate lang kostenlos zu nutzen (in Regionen, in denen die Instance nicht verfügbart2.microist, können Sie einet3.microInstance im Rahmen des kostenlosen Kontingents nutzen). -
MeineIP: Geben Sie Ihre aktuelle öffentliche IP-Adresse mit dem Suffix
/32an. Das Suffix/32wird in der CIDR-Notation verwendet, um anzugeben, dass eine einzelne IP-Adresse erlaubt ist. Das bedeutet im Wesentlichen, dass Sie den Datenverkehr zu und von dieser bestimmten IP-Adresse zulassen, und keine anderen.
-
-
Wählen Sie zweimal Weiter um zur Seite Überprüfen und erstellen zu gelangen. Für dieses Tutorial können Sie die Standardeinstellungen auf der Seite Stack-Optionen konfigurieren so belassen, wie sie sind.
-
Überprüfen Sie die Informationen für den Stack. Wenn Sie mit den Einstellungen zufrieden sind, klicken Sie auf Submit (Absenden).
Stack-Erstellung überwachen
Nachdem Sie „Senden“ ausgewählt haben, CloudFormation beginnt die Erstellung der Ressourcen, die in der Vorlage angegeben sind. Ihr neuer StackMyTestStack,, wird in der Liste im oberen Bereich der CloudFormationKonsole angezeigt. Sein Status sollte CREATE_IN_PROGRESSsein. Sie können den detaillierten Status für einen Stack anzeigen, indem Sie die entsprechenden Ereignisse anzeigen.
Anzeigen der Ereignisse für den Stack
-
Wählen Sie auf der CloudFormation Konsole den Stack
MyTestStackin der Liste aus. -
Wählen Sie im Detailbereich des Stacks die Registerkarte Events aus.
Die Konsole aktualisiert die Ereignisliste alle 60 Sekunden automatisch mit den neuesten Ereignissen.
Auf der Registerkarte Events wird jeder wichtige Schritt bei der Erstellung des Stacks sortiert nach dem Zeitpunkt jedes Ereignisses angezeigt, wobei die neuesten Ereignisse oben angezeigt werden.
Das erste Ereignis (unten in der Ereignisliste) ist der Beginn des Prozesses zum Erstellen des Stacks:
2024-12-23 18:54 UTC-7 MyTestStack CREATE_IN_PROGRESS User initiated
Es folgen Ereignisse, die den Beginn und den Abschluss der Erstellung jeder Ressource darstellen. Die Erstellung der EC2 Instanz führt beispielsweise zu den folgenden Einträgen:
2024-12-23 18:59 UTC-7 WebServer CREATE_COMPLETE
2024-12-23 18:54 UTC-7 WebServer CREATE_IN_PROGRESS Resource creation
initiated
Das CREATE_IN_PROGRESS Ereignis wird protokolliert, wenn CloudFormation gemeldet wird, dass mit der Erstellung der Ressource begonnen wurde. Das CREATE_COMPLETE-Ereignis wird protokolliert, wenn die Ressource erfolgreich erstellt wurde.
Wenn CloudFormation der Stack erfolgreich erstellt wurde, wird oben auf der Registerkarte Ereignisse das folgende Ereignis angezeigt:
2024-12-23 19:17 UTC-7 MyTestStack CREATE_COMPLETE
Wenn eine Ressource nicht erstellt werden CloudFormation kann, meldet sie ein CREATE_FAILED Ereignis und setzt standardmäßig den Stapel zurück und löscht alle Ressourcen, die erstellt wurden. In der Spalte Status Reason wird die Ursache des Fehlers angezeigt.
Nachdem der Stack erstellt wurde, können Sie zur Registerkarte Ressourcen wechseln, um die EC2 Instanz und Sicherheitsgruppe anzuzeigen, die Sie erstellt haben.
Testen Sie den Webserver
Nachdem der Stack erfolgreich erstellt wurde, navigieren Sie in der CloudFormation Konsole zur Registerkarte Ausgaben. Suchen Sie das Feld WebsiteURL . Diese enthält die öffentliche URL Ihrer EC2 Instanz.
Öffnen Sie einen Browser und gehen Sie zu der unter WebsiteURLaufgeführten URL. Sie sollten eine einfache "Hello World!"-Meldung im Browser sehen.
Dadurch wird bestätigt, dass auf Ihrer EC2 Instance Apache HTTP Server ausgeführt wird und eine einfache Webseite bereitgestellt wird.
Fehlerbehebung
Wenn bei der Stack-Erstellung ein Rollback auftritt, kann dies an einem fehlenden VPC liegen. Hier erfahren Sie, wie Sie dieses Problem beheben können.
Keine Standard-VPC verfügbar
Die Vorlage in dieser Anleitung erfordert eine Standard-VPC. Wenn Ihre Stack-Erstellung aufgrund von Fehlern bei der VPC- oder Subnetz-Verfügbarkeit fehlschlägt, haben Sie möglicherweise keine Standard-VPC in Ihrem Konto. Ihnen stehen folgende Optionen zur Verfügung:
-
Erstellen einer neuen Standard-VPC- Sie können eine neue Standard-VPC über die Amazon VPC-Konsole erstellen. Eine Anleitung finden Sie unter Erstellen einer Standard-VPC im Amazon VPC-Benutzerhandbuch.
-
Ändern Sie die Vorlage, um ein Subnetz anzugeben — Wenn Sie eine nicht standardmäßige VPC haben, können Sie die Vorlage ändern, um die VPC und das Subnetz explizit anzugeben. IDs Fügen Sie der Vorlage den folgenden Parameter hinzu:
SubnetId: Description: The subnet ID to launch the instance into Type: AWS::EC2::Subnet::IdAktualisieren Sie dann die Ressource
WebServer, um die Subnetz-ID aufzunehmen:WebServer: Type: AWS::EC2::Instance Properties: ImageId: !Ref LatestAmiId InstanceType: !Ref InstanceType SecurityGroupIds: - !Ref WebServerSecurityGroup SubnetId: !Ref SubnetId UserData: !Base64 | #!/bin/bash yum update -y yum install -y httpd systemctl start httpd systemctl enable httpd echo "<html><body><h1>Hello World!</h1></body></html>" > /var/www/html/index.htmlWenn Sie den Stack erstellen, müssen Sie ein Subnetz angeben, das über einen Internetzugang verfügt, damit der Webserver erreichbar ist.
Bereinigen
Um sicherzustellen, dass Ihnen keine Gebühren für nicht gewünschte Dienste berechnet werden, können Sie den Stack und die entsprechenden Ressourcen löschen. Sie können auch den S3-Bucket löschen, in dem die Vorlage des Stacks gespeichert ist.
Löschen des Stacks und der entsprechenden Ressourcen
-
Öffnen Sie die CloudFormation-Konsole
. -
Wählen Sie auf der Seite Stapel die Option neben dem Namen des von Ihnen erstellten Stapels (
MyTestStack) und wählen Sie dann Löschen. -
Wenn Sie zur Bestätigung aufgefordert werden, wählen Sie Delete (Löschen).
-
Überwachen Sie den Fortschritt des Stapel-Löschvorgangs auf der Registerkarte Ereignis . Der Status für
MyTestStackwechselt zuDELETE_IN_PROGRESS. Wenn das Löschen des Stacks CloudFormation abgeschlossen ist, wird der Stapel aus der Liste entfernt.
Wenn Sie die Arbeit mit der Beispielvorlage beendet haben und Ihren Amazon S3-Bucket nicht mehr benötigen, löschen Sie ihn. Bevor Sie einen Bucket löschen können, müssen Sie ihn zunächst leeren. Wenn Sie einen Bucket leeren, werden alle darin enthaltenen Objekte gelöscht.
So leeren und löschen Sie den Amazon S3-Bucket
-
Öffnen Sie die Amazon S3-Konsole
. -
Klicken Sie im Navigationsbereich auf der linken Seite der Konsole auf Buckets.
-
Wählen Sie in der Liste Buckets die Option neben dem Namen des Buckets, den Sie für dieses Tutorial erstellt haben, und wählen Sie dann Leer.
-
Bestätigen Sie auf der Seite Bucket leeren, dass Sie den Bucket leeren möchten, indem Sie
permanently deletein das Textfeld eingeben, und wählen Sie dann Leeren. -
Überwachen Sie den Fortschritt des Vorgangs zum Entleeren von Buckets auf der Seite Bucket entleeren: Status).
-
Um zur Bucket-Liste zurückzukehren, wählen Sie Exit (Beenden) aus.
-
Wählen Sie die Option neben dem Namen des Buckets und wählen Sie dann Löschen.
-
Wenn Sie zur Bestätigung aufgefordert werden, geben Sie den Namen des Buckets ein und wählen Sie Bucket löschen.
-
Überwachen Sie in der Liste Buckets den Fortschritt des Löschvorgangs für den Bucket. Wenn Amazon S3 die Löschung des Buckets abgeschlossen hat, entfernt es den Bucket aus der Liste.
Nächste Schritte
Herzlichen Glückwunsch! Sie haben erfolgreich einen Stack erstellt, seine Erstellung überwacht und seine Ausgabe verwendet.
Um weiter zu lernen:
-
Erfahren Sie mehr über Vorlagen, damit Sie Ihre eigenen erstellen können. Weitere Informationen finden Sie unter Mit CloudFormation Vorlagen arbeiten.
-
Probieren Sie den Workshop Erste Schritte mit CloudFormation
für weitere praktische Übungen zur Erstellung von Vorlagen. -
Eine verkürzte Version von Getting Started with CloudFormation
finden Sie unterAnwendungen auf Amazon bereitstellen EC2. In diesem Thema wird dasselbe Szenario beschrieben, in dem ein CloudFormation Hilfsskript verwendet wird cfn-init, um eine EC2 Amazon-Instance zu booten.