

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 EC2-Instances mit CodePipeline
<a name="tutorials-ec2-deploy"></a>

Dieses Tutorial hilft Ihnen, 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 artefacts 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 befindet als das Konto für Ihre Pipeline, stellen Sie sicher, dass der S3-Artefakt-Bucket denjenigen gehört AWS-Konten , die sicher und zuverlässig sind.

**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**  
All diese Ressourcen sollten in derselben AWS Region erstellt werden.
+ Ein Quellcodeverwaltungs-Repository (das in diesem Tutorial verwendet wird GitHub), in das 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 Dienstrollen 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 EC2-Linux-Instances erstellen
<a name="tutorials-ec2-deploy-instances"></a>

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

**So erstellen Sie eine Instance-Rolle**

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

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 genannten **`AmazonSSMManagedEC2InstanceDefaultPolicy`**Richtlinie und wählen Sie sie aus. 

1. Suchen Sie nach der genannten 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 Erstellung der Pipeline 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) bezeichnet und trägt die Bezeichnung „Für das kostenlose Kontingent in Frage“.)

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

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

1. Vergewissern Sie sich, dass der Status unter **Netzwerkeinstellungen** **aktiviert** ist.

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 die 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 **Public DNS** nicht angezeigt wird, wählen Sie das **Show/Hide**-Symbol aus und wählen Sie 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 aktualisieren, die Sie für Ihre Instance erstellt haben, damit sie auf den Artifact-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 Instanzberechtigungen 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 Artefakt-Bucket Amazon Resource Name (ARN) und kopieren Sie ihn.

1. Navigieren Sie zur IAM-Konsole, und wählen Sie **Rollen** aus. Wählen Sie die Instance-Rolle 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ügen Sie Ihrem Repository eine Skriptdatei 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!" 
```

**So fügen Sie eine `script.sh`-Datei zu Ihrem Quell-Repository hinzu**

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: Erstellen Sie Ihre Pipeline
<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 in **Schritt 2: Pipeline-Einstellungen auswählen** im Feld **Pipeline-Name** den Wert ein**MyPipeline**.

1. CodePipeline bietet Pipelines vom Typ V1 und V2, die sich in Eigenschaften und 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** 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 Dienstrollen 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: Bereitstellungsphase hinzufügen** die Option **EC2** aus.  
![\[\]](http://docs.aws.amazon.com/de_de/codepipeline/latest/userguide/images/ec2deploy-action.png)

   1. Geben Sie als **Zielverzeichnis** das Verzeichnis auf der Instance ein, für das Sie die Bereitstellung durchführen möchten, z. B. `/home/ec2-user/testhelloworld`
**Anmerkung**  
Geben Sie das Bereitstellungsverzeichnis an, das die Aktion auf der Instance verwenden soll. Die Aktion automatisiert die Erstellung 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.  
![\[\]](http://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** aus, um die Protokolle der Aktion und die Ausgabe der verwalteten Rechenaktion anzuzeigen.  
![\[\]](http://docs.aws.amazon.com/de_de/codepipeline/latest/userguide/images/ec2deploy-logs.png)  
![\[\]](http://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 über alles verfügen, was für die Ausführung einer end-to-end systemeigenen AWS kontinuierlichen Bereitstellung erforderlich ist. 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 Fehlerbehebung finden Sie unter[Die EC2 Deploy-Aktion schlägt mit einer Fehlermeldung fehl `No such file`](troubleshooting.md#troubleshooting-ec2-deploy).