Amazon Web Services für Entwickler, Teil 1 AWS CodeStar einrichten
Amazon Web Services baut kontinuierlich sein Portfolio an Cloud-Diensten aus. Einige davon richten sich explizit an Software-Entwickler, darunter AWS CodeStar, CodeCommit, CodeBuild, CodeDeploy und CodePipeline. Genau solche Dienste schauen wir uns in dieser Reihe an.
Anbieter zum Thema

Stand Anfang 2018 konnte der Cloud-affine Kunde in Amazon Web Services (AWS) rund 140 Dienste on demand buchen – und es werden immer mehr. So nimmt auch die Zahl der Services zu, die sich speziell an Entwickler richten. In diesem Workshop befassen wir uns mit der Einrichtung entsprechender Dienste.
Was ist AWS CodeStar?
AWS CodeStar wurde erstmals im April 2017 präsentiert. Der Cloud-Service soll Entwicklern das Erstellen, Bereitstellen, Verwalten und Bearbeiten von Software-Entwicklungsprojekten auf AWS ermöglichen bzw. erleichtern.
Jedes CodeStar-Projekt erstellt und integriert AWS-Services für die persönliche Projektentwicklungs-Toolchain. Welche das sind, hängt von der gewählten Projektvorlage ab. Dazu gehören z. B. Dinge wie Quellenkontrolle, Entwicklung, Bereitstellung, virtuelle Server oder serverlose Ressourcen und mehr.
AWS CodeStar verwaltet darüber hinaus aber auch alle notwendigen Berechtigungen für die (als „Teammitglieder“ bezeichneten) Projektmitarbeiter. Fügt man z. B. einen Benutzer als Teammitglied hinzu, können Projekteigentümer ihm eine Rolle zuweisen, die den jeweiligen Zugriff auf das Projekt nebst zugehöriger Ressourcen gewährt.
Use-Cases für CodeStar
Selbstverständlich können AWS-Kunden auch ohne CodeStar ihre Anwendungsentwicklung in der Cloud betreiben. Dies ist schließlich eine der wichtigsten Anwendungsfälle von Cloud Computing im Allgemeinen und AWS im Besonderen. Mit CodeStar können einzelne Entwickler eines Unternehmens oder gar das ganze Unternehmen ihre Entwicklung aber komfortabel über ein einzelnes, zentrales Dashboard steuern.
Neue Softwareprojekte lassen sich beispielsweise binnen Minuten mithilfe von Vorlagen für Web-Anwendungen, Web-Services usw. bereitstellen, verschiedene Projektarten und Programmiersprachen werden dabei berücksichtigt. Das ginge zwar auch von Hand, weil CodeStar aber die komplette Einrichtung übernimmt, passen sämtliche Projektressourcen immer perfekt zusammen und sind jeweils so konfiguriert, dass sie optimal zusammenarbeiten.
AWS CodeStar verwaltet auch den Projektzugriff ganzer Teams. Hierfür steht eine zentrale Konsole zur Verfügung, mit deren Hilfe Projektverantwortliche den Teammitgliedern bestimmte Tools und Ressourcen abhängig von ihren Rollen zuweisen können. Alle erforderlichen Berechtigungen werden automatisch auf sämtliche im Projekt verwendeten AWS-Services angewendet, so dass Teamleiter oder Entwickler nicht eigenhändig ggf. komplexe IAM-Richtlinien erstellen und verwalten müssen.
Das Projekt-Dashboard ermöglicht das Zusammenarbeiten an sämtlichen Projekten an einem zentralen Ort und bietet z. B. einen Überblick über das Projekt, die Toolchain und alle wichtigen Events. Ferner können Teammitglieder Aktivitäten wie Code-Commits überwachen oder den Status von Code-Änderungen, Build-Ergebnisse und Bereitstellungen verfolgen.
Zudem enthält AWS CodeStar eine individuelle Entwicklungs-Toolchain für jedes Projekt. So übertragen Teammitglieder z. B. Code, wonach Änderungen automatisch bereitgestellt werden. Dank der Integration mit dem Issue Tracker erkennen Teammitglieder unter anderem, welche Aufgaben als Nächstes auszuführen sind.
Im folgenden Beispiel nutzen wir AWS CodeStar zum Erstellen einer Web-Anwendung. Das Projekt soll aus einem Quell-Repository bestehen, das einen Beispiel-Code enthält, sowie aus einer kontinuierlichen Toolchain für die Bereitstellung und dem obligatorischen Projekt-Dashboard.
Vorbereitung
Bevor man ein Projekt erstellen kann, ist es erforderlich, AWS CodeStar grundlegend einzurichten und eine entsprechende Service-Rolle zuzuweisen. Das Teammitglied, dem diese Aufgabe zuteil wird, muss zwingend ein administrativer Nutzer in IAM sein. Ist ein solcher Zugriff noch nicht vorhanden, gilt es zunächst, einen neuen IAM-Nutzer anzulegen und für ihn ein neues EC2-RSA-Schlüsselpaar für AWS-CodeStar-Projekte zu generieren. Dies geschieht im EC2-Dashboard unter „Network & Security / Key Pairs“.
Nun geht es daran, an der CodeStar-Konsole die erwähnte Service-Rolle für AWS CodeStar zu erstellen. Dazu klickt man auf „Start Project“ und dann im Dialogfeld „Create Service Role“ auf „Yes, create role“. Dies könnte man zwar auch in erster Instanz veranlassen, aber spätestens jetzt sollte man ohnehin über einen IAM-Nutzer verfügen.
Der Grund hierfür ist, dass AWS CodeStar keine verbundenen Benutzer (Federation User) unterstützt, von der Bedienung über ein AWS-Stammkonto ist aber aus Sicherheitsgründen dringend abzuraten. Erstellt man später Projekte in AWS CodeStar, wendet man im IAM-Dashboard die verwaltete Richtlinie „AWSCodeStarFullAccess“ auf den betreffenden IAM-Benutzer an.
Projekt erstellen
Jetzt ist es möglich, ein neues Projekt auf Basis einer Vorlage zu erstellen. Für unser Beispiel-Szenario wählen wir links oben aus dem Bereich „Application category“ den Eintrag „Web application“, dann direkt darunter aus der Kategorie „Programming language“ den Eintrag „Node.js“ und bei „AWS Service“ den Eintrag „EC2“. Dadurch reduziert sich das „Angebot“ im Hauptfenster angezeigter Vorlagen auf zwei Wahlmöglichkeiten.
Wir entscheiden uns für das Node.js-Template und legen dann im Schritt „Project details“ den Projektnamen und die Projekt-ID fest. Die Projekt-ID bildet die Basis für sämtliche Namen aller weiteren Ressourcen, die mit dem Projekt verbunden sind. So nutzt AWS CodeStar z. B. die Projekt-ID als Teil der URL für ihr Code-Repository oder als Namen für die zugehörigen Rollen und Policies in IAM. Daher lässt sich die Projekt-ID nach dem Erstellen des Projektes auch nicht mehr ändern. „Vor“ dem Erstellen des ersten Projekts ist es möglich, die Projekt-ID mithilfe der Option „Edit“ bearbeiten. Als Code-Repository wählen wir AWS CodeCommit; zur Wahl stünde aber auch GitHub.
Bei AWS CodeCommit als Code-Repository kann man den von CodeStar vorgeschlagenen Standardnamen für das CodeCommit-Repository übernehmen oder einen eigenen vergeben. Bei GitHub benötigt man verständlicherweise ein GitHub-Konto und gibt auf der Seite „Sign in to GitHub“ seinen Benutzernamen nebst Password ein und wählt „Sign in“. Auf der Seite „ Authorize AWS CodeStar“ wählt man dann die Option „Authorize“, um die Verbindung zwischen den beiden Diensten herzustellen. Nun übernimmt man entweder den von CodeStar vorgeschlagenen Standardnamen des GitHub-Repositories oder gibt einen selbstgewählten ein.
Ferner kann man das GitHub-Repository mit „Public repository“ oder „Private repository“ als öffentlich oder privat kennzeichnen. Allerdings kann das Einrichten eines privaten Repositories je nach Art des GitHub-Kontos sein nicht erlaubt sein. Nach einem Klick auf „Next“ hat der Nutzer auf der Seite „Review project details“ die Möglichkeit, die Ressourcen und Konfigurationsdetails zu prüfen. Soll das Projekt wie in unserem Beispiel für EC2-Instanzen bereitgestellt werden, erlaubt ein Klick auf den Link „Edit Amazon EC2 Configuration“, ggf. Änderungen vornehmen, etwa den Instance-Typ oder die Ziel-VPC zu ändern.
Mit einem Klick auf „Create“ wird das Projekt dann erstellt, wozu die Auswahl des zu verwendenden Key-Pairs für den SSH-Access zu bestätigen ist.
Nutzerprofil
Ist dies das erste in CodeStar erstellte Projekt, wird man anschließend dazu aufgefordert, einen Display-Namen und eine E-Mail-Adresse für den gewählten IAM-User anzugeben. Beide werden fortan im zugehörigen Benutzerprofil verwendet. Soll das Projekt allerdings auch mit Ressourcen „außerhalb“ von AWS arbeiten, wie etwa mit dem erwähnten GitHub-Repository, kann es sein, dass der jeweilige Ressourcenanbieter eigene Benutzerprofile verwendet.
Im nächsten Schritt „Setup tools“ kann der Nutzer für die zu verwendende Toolchain zwischen Command-Line-Tools, Eclipse und VisualStudio wählen. Da dieser Schritt für die jeweils zu verwendende Toolchain erweiterte Konfigurationsschritte erfordert, die man mit einem Klick auf „See instructions“ in Erfahrung bringt und auch jederzeit später vom Dashboard aus vornehmen kann, empfiehlt es sich, diesen Punkt zunächst mit einem Klick auf „Skip“ zu überspringen, um die Projekt-Erstellung vorerst abzuschließen und zum Dashboard zu gelangen.
Im nächsten Teil der Workshop-Reihe wollen wir die gewünschte Toolchain konfigurieren und uns das Dashboard näher ansehen.
(ID:45229314)