

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
<a name="gettingstarted.walkthrough"></a>

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](https://aws.amazon.com/free/) nutzen, um die Kosten während dieses Lernprozesses zu minimieren oder ganz zu vermeiden.

**Topics**
+ [Voraussetzungen](#getting-started-prerequisites)
+ [Erstellen Sie einen CloudFormation Stack mit der Konsole](#getting-started-create-stack)
+ [Stack-Erstellung überwachen](#getting-started-monitor-stack-creation)
+ [Testen Sie den Webserver](#getting-started-test-web-server)
+ [Fehlerbehebung](#getting-started-troubleshooting)
+ [Bereinigen](#getting-started-clean-up)
+ [Nächste Schritte](#getting-started-next-steps)

## Voraussetzungen
<a name="getting-started-prerequisites"></a>
+ Sie benötigen Zugriff auf einen Benutzer oder eine Rolle AWS-Konto mit einem IAM-Status, der über Berechtigungen zur Verwendung von Amazon EC2, Amazon S3 und/oder verfügt CloudFormation, oder Administratorzugriff.
+ 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
<a name="getting-started-create-stack"></a>

**Um einen Hello CloudFormation World-Stack mit der Konsole zu erstellen**

1. Öffnen Sie die [CloudFormation-Konsole](https://console.aws.amazon.com/cloudformation/).

1. Wählen Sie **Stack erstellen** aus.

1. Wählen Sie auf der Seite **Stack erstellen** die Option **Von Infrastructure Composer erstellen**und dann **In Infrastructure Composer erstellen**. Dadurch gelangen Sie im CloudFormation Konsolenmodus zu Infrastructure Composer, wo Sie die Beispielvorlage hochladen und validieren können.

1. Um die Beispielvorlage hochzuladen und zu validieren, gehen Sie wie folgt vor:

   1. 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 URL
      ```

      Bevor 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 **`Parameters`** deklariert 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-Instancetyps (Standard:,`t2.micro` zulässig:,`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 **`Resources`**Abschnitt 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-Instance mit der folgenden Konfiguration:
          + Verwendet das neueste Amazon Linux 2 AMI
          + Wendet den ausgewählten Instancetyp an
          + Fügt die Eigenschaft `WebServerSecurityGroup` zur Eigenschaft `SecurityGroupIds` hinzu
          + Enthält ein Skript mit Benutzerdaten zur Installation von Apache HTTP Server
      + Am Anfang jeder Ressourcen- und Parameterdeklaration wird ein logischer Name angegeben. Zum Beispiel ist `WebServerSecurityGroup` der logische Name, der der EC2-Sicherheitsgruppenressource zugewiesen ist. Die Funktion `Ref` wird 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 **`Outputs`** definiert 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 unter Verwendung des öffentlichen DNS-Namens der EC2-Instance erstellt wird. Mit der Funktion `Join` können Sie die feste Variable `http://` und die Variable `PublicDnsName` zu einer einzigen Zeichenkette zusammenfassen, was die Ausgabe der vollständigen URL des Webservers erleichtert.

   1. Wählen Sie **Validieren** um sicherzustellen, dass der YAML-Code gültig ist, bevor Sie die Vorlage hochladen.

   1. Wählen Sie anschließend **Vorlage erstellen** um die Vorlage zu erstellen und zu einem S3-Bucket hinzuzufügen.

   1. 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.

1. Auf der Seite **Stapel erstellen** wählen Sie **Weiter**.

1. 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**.

1. Unter **Parameter**geben 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 EC2-Instance-Typ.
**Anmerkung**  
Wenn Sie noch nicht damit vertraut sind AWS, können Sie das kostenlose Kontingent nutzen, um eine `t2.micro` Instance zu starten und 12 Monate lang kostenlos zu nutzen (in Regionen, in denen die Instance nicht verfügbar `t2.micro` ist, können Sie eine `t3.micro` Instance im Rahmen des kostenlosen Kontingents nutzen).
   + **MeineIP**: Geben Sie Ihre aktuelle öffentliche IP-Adresse mit dem Suffix `/32` an. Das Suffix `/32` wird 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.

1. 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.

1. Überprüfen Sie die Informationen für den Stack. Wenn Sie mit den Einstellungen zufrieden sind, klicken Sie auf **Submit (Absenden)**.

## Stack-Erstellung überwachen
<a name="getting-started-monitor-stack-creation"></a>

Nachdem Sie „**Senden**“ ausgewählt haben, CloudFormation beginnt die Erstellung der Ressourcen, die in der Vorlage angegeben sind. Ihr neuer Stack**MyTestStack**,, wird in der Liste im oberen Bereich der **CloudFormation**Konsole angezeigt. Sein Status sollte `CREATE_IN_PROGRESS`sein. Sie können den detaillierten Status für einen Stack anzeigen, indem Sie die entsprechenden Ereignisse anzeigen.

**Anzeigen der Ereignisse für den Stack**

1. Wählen Sie auf der CloudFormation Konsole den Stack **MyTestStack** in der Liste aus.

1. 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-Instance führt z. B. 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 auf die Registerkarte **Ressourcen** gehen, um die von Ihnen erstellte EC2-Instance und Sicherheitsgruppe anzuzeigen.

## Testen Sie den Webserver
<a name="getting-started-test-web-server"></a>

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-Instance.

Öffnen Sie einen Browser und gehen Sie zu der unter **WebsiteURL**aufgeführten URL. Sie sollten eine einfache "Hello World\$1"-Meldung im Browser sehen.

Dies bestätigt, dass Ihre EC2-Instance den Apache HTTP Server ausführt und eine einfache Webseite bereitstellt.

## Fehlerbehebung
<a name="getting-started-troubleshooting"></a>

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
<a name="getting-started-troubleshooting-no-default-vpc"></a>

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](https://docs.aws.amazon.com/vpc/latest/userguide/work-with-default-vpc.html#create-default-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::Id
  ```

  Aktualisieren 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.html
  ```

  Wenn Sie den Stack erstellen, müssen Sie ein Subnetz angeben, das über einen Internetzugang verfügt, damit der Webserver erreichbar ist.

## Bereinigen
<a name="getting-started-clean-up"></a>

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**

1. Öffnen Sie die [CloudFormation-Konsole](https://console.aws.amazon.com/cloudformation/).

1. 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**.

1. Wenn Sie zur Bestätigung aufgefordert werden, wählen Sie **Delete (Löschen)**.

1. Überwachen Sie den Fortschritt des Stapel-Löschvorgangs auf der Registerkarte **Ereignis** . Der Status für **MyTestStack** wechselt zu `DELETE_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**

1. Öffnen Sie die [Amazon S3-Konsole](https://console.aws.amazon.com/s3/).

1. Klicken Sie im Navigationsbereich auf der linken Seite der Konsole auf **Buckets**.

1. 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**.

1. Bestätigen Sie auf der Seite **Bucket leeren**, dass Sie den Bucket leeren möchten, indem Sie **permanently delete** in das Textfeld eingeben, und wählen Sie dann **Leeren**.

1. Überwachen Sie den Fortschritt des Vorgangs zum Entleeren von Buckets auf der Seite **Bucket entleeren: Status)**. 

1. Um zur Bucket-Liste zurückzukehren, wählen Sie **Exit (Beenden)** aus.

1. Wählen Sie die Option neben dem Namen des Buckets und wählen Sie dann **Löschen**.

1. Wenn Sie zur Bestätigung aufgefordert werden, geben Sie den Namen des Buckets ein und wählen Sie **Bucket löschen**.

1. Ü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
<a name="getting-started-next-steps"></a>

Herzlichen Glückwunsch\$1 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](template-guide.md).
+ Probieren Sie den Workshop [Erste Schritte mit CloudFormation](https://catalog.us-east-1.prod.workshops.aws/workshops/df7f72cf-4f10-4664-acb6-b30dc8d4bcf0/en-US) für weitere praktische Übungen zur Erstellung von Vorlagen.
+ Eine verkürzte Version von [Getting Started with CloudFormation](https://catalog.us-east-1.prod.workshops.aws/workshops/df7f72cf-4f10-4664-acb6-b30dc8d4bcf0/en-US) finden Sie unter[Bereitstellen von Anwendungen auf Amazon EC2](deploying.applications.md). In diesem Thema wird dasselbe Szenario beschrieben, in dem ein CloudFormation Hilfsskript verwendet wird`cfn-init`, um eine Amazon EC2 EC2-Instance zu booten.