mithilfe von AWS CodePipeline
In diesem Tutorial lernen Sie, wie Sie eine automatisierte Software-Veröffentlichungs-Pipeline erstellen, die eine Live-Beispiel-Anwendung bereitstellt. Sie werden die Pipeline mithilfe von AWS CodePipeline erstellen, einem Service, der bei jeder Codeänderung Ihren Code erstellt, testet und bereitstellt. Sie werden Ihr GitHub-Konto, einen Amazon Simple Storage Service (S3)-Bucket oder ein AWS CodeCommit-Repository als Quellspeicherort für den Code der Beispielanwendung verwenden. Außerdem werden Sie AWS Elastic Beanstalk als Bereitstellungsziel für die Beispielanwendung verwenden. Ihre fertiggestellte Pipeline wird in der Lage sein, Änderungen an dem Quellrepository zu erkennen, in dem die Beispielanwendung enthalten ist, und dann Ihre Live-Beispiel-Anwendung automatisch zu aktualisieren.
Mit Continuous Deployment können Änderungen automatisch in einer Produktionsumgebung bereitgestellt werden. Diese vollständige Automatisierung des Software-Einführungsprozesses bedeutet, dass keine explizite Genehmigung durch einen Entwickler vorliegen muss.
Alles, was in diesem Tutorial gezeigt wird, ist als kostenloses Kontingent verfügbar.
Ihre AWS-Ressourcen verwalten
Bei der Konsole anmeldenIhre Pipeline für die kontinuierliche Bereitstellung benötigt eine Zielumgebung mit virtuellen Servern oder Amazon EC2-Instances, in denen sie den Beispiel-Code bereitstellen wird. Diese Umgebung werden Sie vorbereiten, bevor Sie die Pipeline erstellen.
a. Um die Einrichtung und Konfiguration von EC2-Instances für dieses Tutorial zu vereinfachen, werden Sie mithilfe von AWS Elastic Beanstalk eine Beispielumgebung einrichten. Elastic Beanstalk bietet Ihnen die Möglichkeit, problemlos Webanwendungen zu hosten, ohne selbst virtuelle Server starten, konfigurieren oder betreiben zu müssen. Die Infrastruktur (z. B. virtuelle Server, Load Balancer usw.) wird automatisch bereitgestellt und betrieben und der Anwendungs-Stack (z. B. Betriebssystem, Sprache und Framework, Web- und Anwendungsserver usw.) wird für Sie bereitgestellt.
b. Wählen Sie PHP aus dem Dropdown-Menü aus und klicken Sie anschließend auf Launch Now (Jetzt starten).
Hinweis: Wenn Sie zuvor eine Elastic Beanstalk-Anwendung erstellt haben, klicken Sie oben rechts auf Create New Application (Neue Anwendung erstellen). Geben Sie Ihrer Anwendung einen Namen und erstellen Sie eine neue Webserverumgebung. Wählen Sie PHP als Plattform und Single Instance (Einzelne Instance) als Umgebungstyp aus. Wenn Sie vorhaben, sich remote bei Ihren Instances anzumelden, wählen Sie ein Schlüsselpaar aus. Belassen Sie andernfalls die Standardwerte für die verbleibenden Optionen und erstellen Sie die Umgebung für Ihre Pipeline für die kontinuierliche Bereitstellung.
c. Elastic Beanstalk beginnt nun, eine Beispielumgebung für Sie zu erstellen, in der Sie Ihre Anwendung bereitstellen können. Es werden eine Amazon EC2-Instance, eine Sicherheitsgruppe, eine Auto Scaling-Gruppe, ein Amazon S3-Bucket, Amazon CloudWatch-Alarme und ein Domänenname für Ihre Anwendung erstellt.
Hinweis: Dieser Vorgang kann einige Minuten dauern.
In diesem Schritt rufen Sie eine Kopie des Codes der Beispielanwendung ab und wählen eine Quelle zum Hosten des Codes aus. Die Pipeline nimmt Code aus der Quelle und führt Aktionen damit aus.
Sie können eine von drei Optionen als Quelle verwenden: ein GitHub-Repository, einen Amazon S3-Bucket oder ein AWS CodeCommit-Repository. Wählen Sie Ihre bevorzugte Quelle aus und führen Sie die folgenden Schritte aus:
In diesem Schritt werden Sie eine einfache Pipeline mit zwei Aktionen erstellen und konfigurieren: Quelle und Bereitstellung. Sie werden CodePipeline die Speicherorte Ihres Quellrepositorys und Ihrer Bereitstellungsumgebung angeben.
a. Klicken Sie hier, um die AWS CodePipeline-Konsole zu öffnen.
- Klicken Sie auf der Begrüßungsseite auf Create pipeline (Pipeline erstellen).
- Wenn Sie AWS CodePipeline zum ersten Mal verwenden, wird anstelle der Begrüßung eine Einführungsseite angezeigt. Klicken Sie auf Get started (Erste Schritte).
b. Auf der Seite Step 1: Name (Schritt 1: Name):
- Pipeline name (Pipeline-Name): Geben Sie den Namen für Ihre Pipeline ein, DemoPipeline.
- Klicken Sie auf Next Step (Nächster Schritt).
Hinweis: Der Name einer erstellten Pipeline kann nicht nachträglich geändert werden.
c. Wählen Sie auf der Seite Step 2: Source (Schritt 2: Quelle) den Speicherort der von Ihnen ausgewählten Quelle aus und führen Sie die folgenden Schritte aus:
d. Bei einer echten Pipeline für die kontinuierliche Bereitstellung ist eine Build-Stufe erforderlich, in der der Code kompiliert und die Einheit getestet wird. CodePipeline bietet Ihnen die Möglichkeit, Ihren bevorzugten Build-Anbieter in Ihre Pipeline einzubinden. In diesem Tutorial überspringen Sie die Build-Stufe jedoch.
- Wählen Sie auf der Seite Step 3: Build (Schritt 3: Build) die Option No Build (Kein Build) aus.
- Klicken Sie auf Next Step (Nächster Schritt).
e. Auf der Seite Step 4: Beta (Schritt 4: Beta):
- Bereitstellungsanbieter: Klicken Sie auf AWS Elastic Beanstalk.
- Anwendungsname: Klicken Sie auf My First Elastic Beanstalk Application (Meine erste Elastic Beanstalk-Anwendung).
- Umgebungsname: Klicken Sie auf Default-Environment (Standardumgebung).
- Klicken Sie auf Next Step (Nächster Schritt).
Hinweis: Der Name "Beta" ist einfach der Name, der dieser Stufe der Pipeline standardmäßig gegeben wird, so wie der ersten Stufe der Pipeline der Name "Source" (Quelle) gegeben wird.
f. Auf der Seite Step 5: Service Role (Schritt 5: Servicerolle):
- Servicerolle: Klicken Sie auf Create role (Rolle erstellen).
- Sie werden zu einer IAM-Konsolenseite umgeleitet, auf der die für Sie erstellte AWS-CodePipeline-Servicerolle beschrieben wird. Klicken Sie auf Allow (Erlauben).
- Nachdem Sie die Rolle erstellt haben, werden Sie zur Seite Step 5: Service Role (Schritt 5: Servicerolle) umgeleitet, auf der AWS-CodePipeline-Service im Rollennamen angezeigt wird. Klicken Sie auf Next Step (Nächster Schritt).
Hinweis: Die Servicerollenerstellung ist nur erforderlich, wenn Sie zum ersten Mal eine Pipeline in AWS CodePipeline erstellen. Wenn bereits eine Service-Rolle erstellt wurde, können Sie diese aus der Dropdown-Liste mit Rollen wählen. Da die Dropdown-Liste alle IAM-Servicerollen anzeigt, die mit Ihrem Konto verknüpft sind, sollten Sie bei der Auswahl eines Nicht-Standard-Namens sicherstellen, dass dieser als Servicerolle für AWS CodePipeline erkennbar ist.
In diesem Schritt starten Sie Ihre Pipeline. Sobald Ihre Pipeline erstellt wurde, wird sie automatisch ausgeführt. Zunächst wird der Beispiel-App-Code in Ihrem Quellspeicherort ermittelt, anschließend werden die Dateien gebündelt und in die von Ihnen definierte zweite Stufe verschoben. Während dieser Stufe wird der Code an Elastic Beanstalk übergeben. Dieser Dienst enthält die EC2-Instance, von der Ihr Code gehostet werden wird. Elastic Beanstalk übernimmt die Bereitstellung des Codes für die EC2-Instance.
a. Prüfen Sie die Informationen auf der Seite Step 6: Review (Schritt 6: Prüfen) und klicken Sie auf Create pipeline (Pipeline erstellen).
b. Nachdem Ihre Pipeline erstellt wurde, wird die Statusseite für die Pipeline angezeigt und die Pipeline wird automatisch ausgeführt. Sie können den Fortschritt sowie Nachrichten zur erfolgreichen Ausführung bzw. zum Fehlschlag anzeigen, während die Pipeline die einzelnen Aktionen ausführt.
Überwachen Sie den Fortschritt der Pipeline während der einzelnen Stufen, um sicherzustellen, dass Ihre Pipeline erfolgreich ausgeführt wurde. Der Status jeder Stufe ändert sich von No executions yet zu In Progress. Danach ändert er sich entweder zu Succeeded oder Failed. Die Pipeline sollte die erste Ausführung innerhalb weniger Minuten abschließen.
c. Klicken Sie im Statusbereich für die Beta-Stufe auf AWS Elastic Beanstalk.
d. Die AWS Elastic Beanstalk-Konsole wird mit Informationen zur Bereitstellung geöffnet.
- Klicken Sie auf die zuvor erstellte Umgebung mit der Bezeichnung Default-Environment (Standardumgebung).
e. Klicken Sie auf die oben rechts auf der Seite angezeigte URL, um die von Ihnen bereitgestellte Beispiel-Website anzuzeigen.
In diesem Schritt ändern Sie den Beispielcode und führen einen Commit für die Änderung in Ihrem Repository aus. CodePipeline erkennt Ihren aktualisierten Beispielcode und initiiert die Bereitstellung in Ihrer EC2-Instance automatisch über Elastic Beanstalk.
Beachten Sie, dass die von Ihnen bereitgestellte Beispiel-Webseite auf AWS CodeDeploy verweist, einen Dienst für automatische Codebereitstellungen. In CodePipeline stellt CodeDeploy eine Alternative zur Verwendung von Elastic Beanstalk für Bereitstellungsaktionen dar. Aktualisieren Sie den Beispielcode, damit er korrekt angibt, dass Sie das Beispiel unter Verwendung von Elastic Beanstalk bereitgestellt haben.
d. Kehren Sie zu Ihrer Pipeline in der CodePipeline-Konsole zurück. Nach wenigen Minuten sollte sich die Quelle zu blau ändern. Dies weist darauf hin, dass die Pipeline die Änderungen an Ihrem Quell-Repository erkannt hat. Danach wird der aktualisierte Code automatisch zu Elastic Beanstalk verschoben.
- Nachdem Succeeded (Erfolgreich) für den Pipelinestatus angezeigt wird, klicken Sie im Statusbereich für die Beta-Stufe auf AWS Elastic Beanstalk.
e. Die AWS Elastic Beanstalk-Konsole wird mit Informationen zur Bereitstellung geöffnet. Wählen Sie die zuvor erstellte Umgebung mit der Bezeichnung Default-Environment (Standardumgebung) aus.
f. Klicken Sie auf die oben rechts auf der Seite angezeigte URL, um die Beispiel-Website erneut anzuzeigen. Ihr Text wurde automatisch durch die Pipeline für die kontinuierliche Bereitstellung aktualisiert!
Um zukünftige Gebühren zu vermeiden, sollten Sie alle während dieses Tutorials gestarteten Ressourcen löschen. Dies umfasst die Pipeline, die Elastic Beanstalk-Anwendung sowie die Quelle, die Sie zum Hosten des Codes eingerichtet haben.
a. Löschen Sie zunächst Ihre Pipeline:
- Klicken Sie in der Pipeline auf Edit (Bearbeiten).
- Klicken Sie auf Delete (Löschen).
- Geben Sie den Namen Ihrer Pipeline ein und klicken Sie dann auf Delete (Löschen).
b. Löschen Sie als nächstes Ihre Elastic Beanstalk-Anwendung:
- Rufen Sie die Elastic Beanstalk-Konsole auf.
- Klicken Sie auf Actions (Aktionen).
- Klicken Sie dann auf Terminate Environment (Umgebung beenden).
Sie haben erfolgreich eine automatisierte Software-Veröffentlichungs-Pipeline mithilfe von AWS CodePipeline erstellt! Mithilfe von CodePipeline haben Sie eine Pipeline erstellt, die GitHub, Amazon S3 oder AWS CodeCommit als Quellspeicherort für Anwendungscode verwendet und den Code anschließend für eine von AWS Elastic Beanstalk verwaltete Amazon EC2-Instance bereitstellt. Ihre Pipeline stellt Ihren Code bei jeder Codeänderung automatisch bereit. Damit sind Sie der kontinuierlichen Bereitstellung einen Schritt näher gekommen!
Jetzt, da Sie eine einfache Pipeline mithilfe von AWS CodePipeline erstellen können, sollten Sie sich die folgenden Ressourcen ansehen, um mehr zu erfahren.
- Erstellen Sie eine erweiterte vierstufe Pipeline, indem Sie die das in diesem Handbuch beschriebene Verfahren ausführen. Diese Pipeline verwendet ein GitHub-Repository für Ihre Quelle, einen Jenkins-Build-Server für die Erstellung und das Testen des Projekts und eine AWS CodeDeploy-Anwendung zur Bereitstellung des Build-Codes für einen Staging-Server.
- Verwenden Sie unser Pipeline Starter Kit, um schnell eine vierstufige Pipeline mit einem Jenkins-Build-Server einzurichten.
- Weitere Informationen zu unserer kontinuierlichen Bereitstellung.