Mit dem AWS-Dienst „Code Pipeline“ lässt sich eine Continuous Delivery Pipeline zügig umsetzen. Basierend darauf stellen wir in diesem Beitrag eine Node.js-Anwendung von GitHub in AWS Elastic Beanstalk bereit.
Erfolgreiches (manuelles) Ausführen einer Pipeline.
(Bild: Drilling / AWS)
Mit Elastic Beanstalk lassen sich Web-Anwendungen innerhalb der AWS Cloud bereitstellen und verwalten, ohne Kenntnisse über die Infrastruktur zu besitzen. Elastic Beanstalk reduziert die Komplexität der Verwaltung, ohne die Auswahl oder Kontrolle einzuschränken. Man überträgt einfach den Anwendungscode und Elastic Beanstalk kümmert sich selbständig um die wichtigsten Punkte der Funktionsbereitstellung, des Lastausgleichs, der Skalierung und der Überwachung des Anwendungszustands.
Elastic Beanstalk unterstützt Anwendungen, die in Java, Go, PHP, Node.js, Python und Ruby entwickelt wurden. Sobald eine Anwendung bereitgestellt wurde, erzeugt Elastic Beanstalk die ausgewählte unterstützte Plattformversion und stellt eine oder zusätzliche AWS-Ressourcen wie AmazonEC2-Instances zur Ausführung bereit.
AWS Elastic Beanstalk macht es Entwicklern und Entwicklerinnen also einfach, ihre Anwendung innerhalb kürzerer Zeit auf verschiedenen Geräten freizugeben. Um diese Demo nachzuvollziehen, benötigen Sie eine vorbereitete Node.js-Beispielanwendung (z. B. die Musician App von GitHub), einen GitHub Account und ein AWS-Konto.
Anwendung erstellen
Das Importieren eines öffentlichen GitHub-Repositories in den eigenen GitHub-Account.
(Bild: Drilling / GitHub)
Zunächst einmal gilt es, die gewählte Beispiel-Anwendung in ein eigenes Repository im GitHub-Konto zu klonen, zu forken oder zu kopieren. Anschließend melden wir uns an der AWS-Management-Console an und suchen nach AWS Elastic Beanstalk.
Das Erstellen einer Webserver-Umgebung.
(Bild: Drilling / AWS)
Dann erstellen wir in der Elastic-Beanstalk-Console eine neue Anwendung und wählen dazu im Abschnitt „Umgebungsstufe“ den Eintrag „Webserverumgebung“. Ferner legen wir im Unterabschnitt „Anwendungsinformationen“ einen Anwendungsnamen fest. Im Bereich „Umgebungsinformationen“ geht es um den unterliegenden Technologie-Stack, in dem der „Umgebungsname“ festgelegt wird. Entscheidend ist dann der Abschnitt „Plattform“.
Aus Kostengründen bleiben wir bei „Single-Instance“.
(Bild: Drilling / AWS)
Hier wählen wir unter „Plattformtyp“ die Option „Hier verwaltete Plattform“, dann bei „Plattform“ den Eintrag „node.js“ und im letzten Abschnitt „Anwendungscode“ zunächst einmal die Option „Beispielanwendung“. Aus Kostengründen empfiehlt es sich abschließend, unter „Voreinstellungen“ den Eintrag „Single-Instance (kostenloses Kontingent verfügbar)“ auszuwählen.
Das Bereitstellen der Beanstalk-Umgebung.
(Bild: Drilling / AWS)
Bei den übrigen Einstellungen in den weiteren Assistentenschritten übernehmen wir die Standardvorgaben und lassen die Node-JS-Anwendung fertigstellen. Der Bereitstellungsprozess lässt sich im Tab „Ereignisse“ mitverfolgen.
Eine fertige Ausführungsumgebung in betriebsbereitem Zustand.
(Bild: Drilling / AWS)
Der finale Bereitstellungszustand der Umgebung sollte dann so aussehen, wie in der vorangestellten Abbildung. Auf der Übersichtsseite der Umgebung werden viele Umgebungsinformationen angezeigt, z. B. Umgebungszustand, Ausführungsversion der Anwendung und Version der Anwendungsplattform, auf der die Anwendung ausgeführt wird.
Das Erstellen einer neuen Code-Pipline.
(Bild: Drilling / AWS)
Wurde die Demo-Anwendung erfolgreich bereitgestellt, können wir die Continuous Integration und Continuous Delivery (CI/CD) Pipeline einrichten. Eine der Möglichkeiten, dies unter AWS zu tun, ist der Dienst „AWS Code Pipeline“. Dieser unterstützt beim Erstellen, Testen und Bereitstellen von Code, sobald Änderungen im Quell-Repository erkannt werden. Um dies zu tun, suchen wir in der AWS Management Console nach „AWS Code Pipeline“ und erstellen diese mit einem Klick auf „Pipeline erstellen“.
AWS Code Pipeline konfigurieren
Das Erstellen einer neuen Service-Rolle.
(Bild: Drilling / AWS)
Die Pipeline benötigt erst einmal einen Pipeline-Namen, einen Typ und eine Service-Rolle. Der Default hier ist „Neue Servicerolle", wodurch CodePipeline selbständig eine neue Servicerolle in IAM erstellt. Nun muss man der Rolle nur noch einen nachvollziehbaren Namen geben, wie z. B. „AWSCodePipelineServiceRole-eu-central-1-drinodedemopipeline“.
AWS CodePipeline benötigt die Berechtigung zum Zugriff auf das GitHub-Konto.
(Bild: Drilling / AWS)
Nun geht es an den zweiten Schritt, bezeichnet mit „Quellstufe hinzufügen“. Hier wählen wir als Quellenanbieter „GitHub (Version 1)“. Ein Klick auf die Schaltfläche „Mit GitHub verbinden“ dient dazu, der AWS CodePipeline die Berechtigung für den Zugriff auf das eigene GitHub-Repository zu erteilen. Dies wird über die Schaltfläche „Authorize aws-codesuite“ noch einmal bestätigt.
Stand: 08.12.2025
Es ist für uns eine Selbstverständlichkeit, dass wir verantwortungsvoll mit Ihren personenbezogenen Daten umgehen. Sofern wir personenbezogene Daten von Ihnen erheben, verarbeiten wir diese unter Beachtung der geltenden Datenschutzvorschriften. Detaillierte Informationen finden Sie in unserer Datenschutzerklärung.
Einwilligung in die Verwendung von Daten zu Werbezwecken
Ich bin damit einverstanden, dass die Vogel IT-Medien GmbH, Max-Josef-Metzger-Straße 21, 86157 Augsburg, einschließlich aller mit ihr im Sinne der §§ 15 ff. AktG verbundenen Unternehmen (im weiteren: Vogel Communications Group) meine E-Mail-Adresse für die Zusendung von Newslettern und Werbung nutzt. Auflistungen der jeweils zugehörigen Unternehmen können hier abgerufen werden.
Der Newsletterinhalt erstreckt sich dabei auf Produkte und Dienstleistungen aller zuvor genannten Unternehmen, darunter beispielsweise Fachzeitschriften und Fachbücher, Veranstaltungen und Messen sowie veranstaltungsbezogene Produkte und Dienstleistungen, Print- und Digital-Mediaangebote und Services wie weitere (redaktionelle) Newsletter, Gewinnspiele, Lead-Kampagnen, Marktforschung im Online- und Offline-Bereich, fachspezifische Webportale und E-Learning-Angebote. Wenn auch meine persönliche Telefonnummer erhoben wurde, darf diese für die Unterbreitung von Angeboten der vorgenannten Produkte und Dienstleistungen der vorgenannten Unternehmen und Marktforschung genutzt werden.
Meine Einwilligung umfasst zudem die Verarbeitung meiner E-Mail-Adresse und Telefonnummer für den Datenabgleich zu Marketingzwecken mit ausgewählten Werbepartnern wie z.B. LinkedIN, Google und Meta. Hierfür darf die Vogel Communications Group die genannten Daten gehasht an Werbepartner übermitteln, die diese Daten dann nutzen, um feststellen zu können, ob ich ebenfalls Mitglied auf den besagten Werbepartnerportalen bin. Die Vogel Communications Group nutzt diese Funktion zu Zwecken des Retargeting (Upselling, Crossselling und Kundenbindung), der Generierung von sog. Lookalike Audiences zur Neukundengewinnung und als Ausschlussgrundlage für laufende Werbekampagnen. Weitere Informationen kann ich dem Abschnitt „Datenabgleich zu Marketingzwecken“ in der Datenschutzerklärung entnehmen.
Falls ich im Internet auf Portalen der Vogel Communications Group einschließlich deren mit ihr im Sinne der §§ 15 ff. AktG verbundenen Unternehmen geschützte Inhalte abrufe, muss ich mich mit weiteren Daten für den Zugang zu diesen Inhalten registrieren. Im Gegenzug für diesen gebührenlosen Zugang zu redaktionellen Inhalten dürfen meine Daten im Sinne dieser Einwilligung für die hier genannten Zwecke verwendet werden. Dies gilt nicht für den Datenabgleich zu Marketingzwecken.
Recht auf Widerruf
Mir ist bewusst, dass ich diese Einwilligung jederzeit für die Zukunft widerrufen kann. Durch meinen Widerruf wird die Rechtmäßigkeit der aufgrund meiner Einwilligung bis zum Widerruf erfolgten Verarbeitung nicht berührt. Um meinen Widerruf zu erklären, kann ich als eine Möglichkeit das unter https://contact.vogel.de abrufbare Kontaktformular nutzen. Sofern ich einzelne von mir abonnierte Newsletter nicht mehr erhalten möchte, kann ich darüber hinaus auch den am Ende eines Newsletters eingebundenen Abmeldelink anklicken. Weitere Informationen zu meinem Widerrufsrecht und dessen Ausübung sowie zu den Folgen meines Widerrufs finde ich in der Datenschutzerklärung.
Die Auswahl des gewünschten Quell-Repositories.
(Bild: Drilling / AWS)
Dies erlaubt es AWS CodePipeline fortan, die festgeschriebenen Änderungen aus GitHub nach AWS CodePipeline hochzuladen. Danach ist es möglich, das gewünschte Repository auszuwählen. Wurde das gesamte Repo geklont, wird zusätzlich der Branch festgelegt, also z. B. „Master“.
Bei den „Optionen zur Änderungserkennung“ besteht die Wahl zwischen „GitHub-Webooks (empfohlen)“ und „AWS CodePipeline“. Wir wählen GitHub-Webhooks. Dies erlaubt das Auslösen der Pipeline, sobald Code-Änderungen im Repository vorgenommen werden. Nach dem Klick auf „Weiter“ ist es im dritten Schritt „Build-Stufe hinzufügen“ möglich, den gewünschten Build-Anbieter auszuwählen.
Der „Provider“ der Bereitstellung, hier „Elastic Beanstalk“.
(Bild: Drilling / AWS)
Hier wählen wir zunächst „Build-Stufe überspringen“, gefolgt von „Weiter“, um zum nächsten Schritt „Bereitstellungsstufe hinzufügen“ zu gelangen. Hier suchen wir im Listenfeld „Anbieter für Bereitstellung“ den Eintrag „AWS Elastic Beanstalk“ und ergänzen die passende Auswahl für „Anwendungsname“ und „Umgebungsname“.
Das Prüfen aller Angaben vor dem Bereitstellen der Pipeline.
(Bild: Drilling / AWS)
Es folgt der letzte Schritt „Prüfen“, bei dem es sich empfiehlt, die Zusammenfassung der getätigten Eingaben genau zu prüfen, bevor wir auf „Pipeline erstellen“ klicken.
Erfolgreiches (manuelles) Ausführen einer Pipeline.
(Bild: Drilling / AWS)
In der Pipeline-Ansicht sollte dann nach kurzer Zeit die Erfolgsmeldung angezeigt werden und der Build-Vorgang wird fortgesetzt, bis er abgeschlossen ist. Anschließend schauen wir im CodePipeline-Dashboard“ im Abschnitt „Pipeline“ unter „Pipelines / Pipeline“ den Verlauf der Ausführung ihren CICD-Workflows an.
Nimmt nun ein Developer Änderungen an seinem Code vor und überträgt diese in das zugehörige Repository, erkennt die konfigurierte Pipeline die Änderungen und startet die Ausführung. Diese Pipeline-Ausführung lässt sich entweder manuell auslösen, indem die Pipeline gestartet wird, oder sie kann auch automatisch ausgeführt werden.