

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.

# Tutorial: Bereitstellung auf Amazon EC2-Instances mit CodePipeline
<a name="tutorials-ec2-deploy"></a>

Dieses Tutorial hilft Ihnen dabei, eine Bereitstellungsaktion zu erstellen CodePipeline , mit der Ihr Code auf Instances bereitgestellt wird, die Sie in Amazon EC2 konfiguriert haben.

**Anmerkung**  
Im Rahmen der Erstellung einer Pipeline in der Konsole wird ein S3-Artefakt-Bucket von CodePipeline for Artifacts verwendet. (Dies unterscheidet sich von dem Bucket, der für eine S3-Quellaktion verwendet wird.) Wenn sich der S3-Artefakt-Bucket in einem anderen Konto als dem Konto für Ihre Pipeline befindet, stellen Sie sicher, dass der S3-Artefakt-Bucket dem Konto gehört AWS-Konten , das sicher und zuverlässig ist.

**Anmerkung**  
Die `EC2` Bereitstellungsaktion ist nur für Pipelines vom Typ V2 verfügbar.

## Voraussetzungen
<a name="tutorials-ec2-deploy-prereqs"></a>

Es müssen bestimmte Ressourcen zur Verfügung stehen, damit Sie mithilfe dieses Tutorials eine CD-Pipeline erstellen können. Zum Einstieg benötigen Sie Folgendes:

**Anmerkung**  
Alle diese Ressourcen sollten in derselben AWS Region erstellt werden.
+ Ein Quellcodeverwaltungs-Repository (dieses Tutorial verwendet GitHub), dem Sie eine `script.sh` Beispieldatei hinzufügen werden.
+ Sie müssen eine vorhandene CodePipeline Servicerolle verwenden, die mit den Berechtigungen für diese Aktion aktualisiert wurde. Informationen zum Aktualisieren Ihrer Servicerolle finden Sie unter[Richtlinienberechtigungen für die EC2-Bereitstellungsaktion](action-reference-EC2Deploy.md#action-reference-EC2Deploy-permissions-action).

Nachdem Sie diese Voraussetzungen erfüllt haben, können Sie mit dem Tutorial fortfahren und Ihre CD-Pipeline erstellen.

## Schritt 1: Amazon EC2 Linux-Instances erstellen
<a name="tutorials-ec2-deploy-instances"></a>

In diesem Schritt erstellen Sie die Amazon EC2-Instances, auf denen Sie eine Beispielanwendung bereitstellen werden. Erstellen Sie im Rahmen dieses Vorgangs eine Instance-Rolle in IAM, falls Sie in der Region, in der Sie Ressourcen erstellen möchten, noch keine Instance-Rolle erstellt haben.

**So erstellen Sie eine Instance-Rolle**

1. Öffnen Sie unter [https://console.aws.amazon.com/iam/](https://console.aws.amazon.com/iam/) die IAM-Konsole.

1. Wählen Sie im Dashboard der Konsole die Option **Rollen** aus.

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

1. **Wählen Sie unter Typ der vertrauenswürdigen Entität ** auswählen **AWS-Service** die Option aus. **Wählen Sie unter Wählen Sie einen Anwendungsfall ** die Option ** EC2 ** aus. Wählen Sie in **Select your use case (Anwendungsfall auswählen)** die Option **EC2** aus. Wählen Sie **Weiter** aus.

1. Suchen Sie nach der benannten ** `AmazonSSMManagedEC2InstanceDefaultPolicy` ** Richtlinie und wählen Sie sie aus. 

1. Suchen Sie nach der benannten Richtlinie und wählen Sie sie aus ** `AmazonSSMManagedInstanceCore`**. Wählen Sie **Next: Tags** (Weiter: Tags) aus.

1. Klicken Sie auf **Weiter: Prüfen**. Geben Sie einen Namen für die Rolle ein (z. B. **EC2InstanceRole**).
**Anmerkung**  
Notieren Sie sich Ihren Rollennamen für den nächsten Schritt. Sie wählen diese Rolle, wenn Sie Ihre Instance erstellen.
**Anmerkung**  
Sie fügen dieser Rolle Berechtigungen hinzu, um nach der Pipeline-Erstellung den Zugriff auf den S3-Artefakt-Bucket für Ihre Pipeline zu ermöglichen.

   Wählen Sie **Rolle erstellen** aus.

**Starten von Instances**

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

1. Wählen Sie in der Seitennavigation ** Instances ** und dann oben auf der Seite ** Launch Instances ** aus.

1. Geben Sie unter **Name** **MyInstances** ein. Dadurch wird der Instance ein ** Tag-Schlüssel ** von **Name** und ein ** Tag-Wert ** von **MyInstances** zugewiesen. 

1. Suchen Sie unter ** Anwendungs- und Betriebssystem-Images (Amazon Machine Image) ** die ** Amazon Linux ** AMI-Option mit dem AWS Logo und stellen Sie sicher, dass sie ausgewählt ist. (Dieses AMI wird als Amazon Linux 2 AMI (HVM) beschrieben und trägt die Bezeichnung „Kostenloses Kontingent berechtigt“.)

1. Wählen Sie unter ** Instance-Typ den `t2.micro` Typ aus**, der für das kostenlose Kontingent in Frage kommt, als Hardwarekonfiguration für Ihre Instance.

1. Wählen Sie unter ** Schlüsselpaar (Anmeldung) ** ein Schlüsselpaar aus oder erstellen Sie eines. 

1. Vergewissern Sie sich**, dass unter ** Netzwerkeinstellungen der Status ** Aktiviert lautet**.

1. Erweitern Sie **Advanced Details** (Erweiterte Details). Wählen Sie im ** IAM-Instanzprofil die IAM-Rolle aus**, die Sie im vorherigen Verfahren erstellt haben (z. B.**EC2InstanceRole**).
**Anmerkung**  
Lassen Sie das Feld Instanzrolle nicht leer, da dadurch eine Standardrolle erstellt wird und die von Ihnen erstellte Rolle nicht ausgewählt wird.

1. Geben Sie ** unter ** Zusammenfassung unter ** Anzahl der Instanzen den ** Wert ein`2`.

1. Wählen Sie **Launch Instance (Instance starten)** aus. 

1. Sie können den Status des Starts auf der Seite **Instances** anzeigen. Wenn Sie eine Instance starten, lautet ihr anfänglicher Status `pending`. Nachdem die Instance gestartet ist, lautet ihr Status `running`. Sie erhält dann einen öffentlichen DNS-Namen. (Wenn die ** Spalte ** Öffentliches DNS nicht angezeigt wird, wählen Sie das ** Show/Hide ** Symbol und dann ** Public DNS aus**.)

## Schritt 2: Fügen Sie der EC2-Instance-Rolle Artifact-Bucket-Berechtigungen hinzu
<a name="tutorials-ec2-deploy-role-s3"></a>

Sie müssen die EC2-Instance-Rolle, die Sie für Ihre Instance erstellt haben, aktualisieren, damit sie auf den Artefakt-Bucket Ihrer Pipeline zugreifen kann. 

**Anmerkung**  
Wenn Sie die Instance erstellen, erstellen oder verwenden Sie eine vorhandene EC2-Instance-Rolle. Um `Access Denied` Fehler zu vermeiden, müssen Sie der Instance-Rolle S3-Bucket-Berechtigungen hinzufügen, um die Instance-Berechtigungen für den CodePipeline Artefakt-Bucket zu erteilen. Erstellen Sie eine Standardrolle oder aktualisieren Sie Ihre bestehende Rolle mit der `s3:GetObject` Berechtigung, die auf den Artefakt-Bucket für die Region Ihrer Pipeline beschränkt ist.

1. Navigieren Sie in der Konsole zu Ihrer Pipeline. CodePipeline Wählen Sie **Einstellungen** aus. Sehen Sie sich den Namen und den Speicherort des Artefaktspeichers für eine bestehende Pipeline an. Notieren Sie sich den Amazon-Ressourcennamen (ARN) des Artefakt-Buckets und kopieren Sie ihn.

1. Navigieren Sie zur IAM-Konsole, und wählen Sie **Rollen** aus. Wählen Sie die Instanzrolle aus, die Sie in Schritt 1 dieses Tutorials erstellt haben.

1. Wählen Sie in der Registerkarte **Permissions (Berechtigungen)** die Option **Add inline policy (Inline-Richtlinie hinzufügen)**.

1. Fügen Sie dem Richtliniendokument den folgenden JSON-Code hinzu und ersetzen Sie den Wert im `Resource` Feld durch den Bucket-ARN.

   ```
   {
       "Effect": "Allow",
       "Principal": "*",
       "Action": "s3:GetObject",
       "Resource": "arn:aws:s3:::{{BucketName}}"
   }
   ```

1. Wählen Sie **Aktualisieren** aus.

## Schritt 3: Füge eine Skriptdatei zu deinem Repository hinzu
<a name="tutorials-ec2-deploy-file"></a>

Fügen Sie diesen Beispieltext ein, um Ihre `script.sh` Datei für den Post-Script-Schritt in der Bereitstellung zu erstellen.

```
echo "Hello World!" 
```

**Um eine hinzuzufügen `script.sh` Datei in Ihr Quell-Repository**

1. Öffnen Sie einen Texteditor und kopieren Sie dann die obige Datei und fügen Sie sie in eine neue Datei ein.

1. Führen Sie einen Commit und eine Push-Übertragung Ihrer `script.sh`-Datei zu Ihrem Quell-Repository durch.

   1. Fügen Sie die Datei hinzu.

      ```
      git add .
      ```

   1. Führen Sie einen Commit der Änderung durch.

      ```
      git commit -m "Adding script.sh."
      ```

   1. Führen Sie eine Push-Übertragung für das Commit durch.

      ```
      git push
      ```

   Notieren Sie sich den Pfad in Ihrem Repository.

   ```
   /MyDemoRepo/test/script.sh
   ```

## Schritt 4: Deine Pipeline erstellen
<a name="tutorials-ec2-deploy-pipeline"></a>

Verwenden Sie den CodePipeline Assistenten, um Ihre Pipeline-Stufen zu erstellen und Ihr Quell-Repository zu verbinden.

**So erstellen Sie Ihre Pipeline**

1. Öffnen Sie die CodePipeline Konsole unter [ https://console.aws.amazon.com/codepipeline/](https://console.aws.amazon.com/codepipeline/).

1. Wählen sie auf der Seite **Welcome (Willkommen)** die Option **Getting started (Erste Schritte)** aus, oder auf der Seite **Pipelines** die Option **Create pipeline (Pipeline erstellen)**.

1. Wählen Sie auf der ** Seite ** Schritt 1: Erstellungsoption auswählen unter ** Erstellungsoptionen ** die ** Option Benutzerdefinierte Pipeline ** erstellen aus. Wählen Sie **Weiter** aus.

1. Geben Sie auf ** Schritt 2: Wählen Sie die Pipeline-Einstellungen aus ** und geben Sie im Feld ** Pipeline-Name ** den Wert ein**MyPipeline**.

1. CodePipeline bietet Pipelines vom Typ V1 und V2, die sich in ihren Eigenschaften und ihrem Preis unterscheiden. Der Typ V2 ist der einzige Typ, den Sie in der Konsole auswählen können. Weitere Informationen finden Sie unter [Pipeline-Typen](https://docs.aws.amazon.com/codepipeline/latest/userguide/pipeline-types-planning.html?icmpid=docs_acp_help_panel). Informationen zur Preisgestaltung für finden Sie CodePipeline unter [ Preisgestaltung](https://aws.amazon.com/codepipeline/pricing/).

1. Wählen Sie ** unter Servicerolle ** die Option Bestehende Servicerolle ** verwenden aus**, und wählen Sie dann die CodePipeline Servicerolle aus, die mit den erforderlichen Berechtigungen für diese Aktion aktualisiert wurde. Informationen zum Konfigurieren Ihrer CodePipeline Servicerolle für diese Aktion finden Sie unter[Richtlinienberechtigungen für die EC2-Bereitstellungsaktion](action-reference-EC2Deploy.md#action-reference-EC2Deploy-permissions-action).

1. Belassen Sie die Einstellungen unter **Erweiterte Einstellungen** bei den Standardeinstellungen, und wählen Sie dann **Next (Weiter)** aus.

1. Fügen Sie auf der ** Seite ** Schritt 3: Quellstufe hinzufügen eine Quellstufe hinzu:

   1. Wählen Sie ** unter Quellanbieter ** die Option ** GitHub (über GitHub App) aus**.

   1. Wählen Sie ** unter ** Verbindung eine bestehende Verbindung aus oder erstellen Sie eine neue. Informationen zum Erstellen oder Verwalten einer Verbindung für Ihre GitHub Quellaktion finden Sie unter[GitHub Verbindungen](connections-github.md).

   1. Wählen Sie im Feld **Repository name (Repositoryname)** den Namen Ihres GitHub -Repositorys aus.

   Wählen Sie **Weiter** aus.

1. Wählen Sie auf der ** Seite ** Schritt 4: Build-Phase hinzufügen die Option ** Überspringen aus**.

1. Wählen Sie auf der ** Seite ** Schritt 5: Bereitstellungsstufe hinzufügen die Option ** EC2 ** aus.  
![Fügen Sie Ihrer Pipeline eine EC2-Bereitstellungsaktion hinzu.](https://docs.aws.amazon.com/de_de/codepipeline/latest/userguide/images/ec2deploy-action.png)

   1. Geben Sie für ** Zielverzeichnis ** das Verzeichnis auf der Instance ein, auf der Sie die Bereitstellung durchführen möchten, z. B. `/home/ec2-user/testhelloworld`
**Anmerkung**  
Geben Sie das Bereitstellungsverzeichnis an, das die Aktion auf der Instanz verwenden soll. Die Aktion automatisiert das Erstellen des angegebenen Verzeichnisses auf der Instanz als Teil der Bereitstellung.

   1. Geben Sie für ** PostScript ** den Pfad und den Dateinamen für Ihr Skript ein, z. `test/script.sh` B.

   1. Wählen Sie **Weiter** aus.

1. Überprüfen Sie auf der Seite **Step 6: Review** Ihre Pipeline-Konfiguration und wählen Sie **Create pipeline**, um die Pipeline zu erstellen.  
![Ein Konsolendiagramm, das eine erfolgreiche Pipeline-Ausführung zeigt, wobei die Bereitstellungsaktion zu Ihrer Pipeline hinzugefügt wurde.](https://docs.aws.amazon.com/de_de/codepipeline/latest/userguide/images/ec2deploy-pipeline.png)

1. Nachdem die Pipeline erfolgreich ausgeführt wurde, wählen Sie Details ** anzeigen, ** um die Protokolle der Aktion und die Ausgabe der verwalteten Rechenaktion anzuzeigen.  
![Sehen Sie sich die Protokolle für die Amazon EC2-Bereitstellungsaktion in Ihrer Pipeline an.](https://docs.aws.amazon.com/de_de/codepipeline/latest/userguide/images/ec2deploy-logs.png)  
![Sehen Sie sich die zweite Seite mit Protokollen für die Amazon EC2-Bereitstellungsaktion in Ihrer Pipeline an.](https://docs.aws.amazon.com/de_de/codepipeline/latest/userguide/images/ec2deploy-logs2.png)

## Schritt 5: Testen Sie Ihre Pipeline
<a name="tutorials-ec2-deploy-test"></a>

Ihre Pipeline sollte alles enthalten, was Sie für eine durchgängige native AWS kontinuierliche Bereitstellung benötigen. Testen Sie nun ihre Funktionalität, indem Sie eine Code-Änderung mithilfe von Push zu Ihrem Quell-Repository übertragen.

**So testen Sie Ihre Pipeline**

1. Nehmen Sie eine Code-Änderung an Ihrem konfigurierten Quell-Repository vor und führen Sie den Commit-Vorgang und die Push-Übertragung der Änderung durch.

1. Öffnen Sie die CodePipeline Konsole unter [ https://console.aws.amazon.com/codepipeline/](https://console.aws.amazon.com/codepipeline/).

1. Wählen Sie Ihre Pipeline in der Liste aus.

1. Sehen Sie sich an, wie die Pipeline ihre Phasen durchläuft. Ihre Pipeline sollte abgeschlossen sein und Ihre Aktion stellt das Skript auf Ihren Instances bereit.

1. Weitere Informationen zur Problembehandlung finden Sie unter[Die EC2 Deploy-Aktion schlägt mit der Fehlermeldung `Keine solche Datei fehl`](troubleshooting.md#troubleshooting-ec2-deploy).