© Liashko/Shutterstock.com
Entwicklung und stetige Auslieferung einer Angular-App in der AWS Cloud

Angular-App via AWS Cloud


Lokal ein neues Angular-Projekt aufzusetzen funktioniert dank Angular CLI im Handumdrehen. Doch um eine App professionell zu entwickeln und zu warten, bedarf es neben einem guten Entwicklungsprozess auch einer guten Entwicklungsumgebung. Oft ist eine Webanwendung die Schnittstelle eines Systems mit dem Backend in einer Cloud – es ist also auch sinnvoll, die Webanwendung in der Cloud zu entwickeln und abzulegen.

Wir wollen agil arbeiten, wollen also neue Anforderungen in kurzen Iterationen ausliefern, um möglichst schnell Feedback zu bekommen. Dazu ist es wichtig, dass wir auch innerhalb der Entwicklungszyklen schnell Feedback bekommen. Um das zu erreichen, muss der aktuelle Entwicklungsstand der App stetig integriert und zur Verfügung gestellt werden. Es ergeben sich einige Fragen: Wo verwalten wir unseren Code? Wie und wo können wir die Anwendung stetig integrieren und bauen? Wie bekommen wir zeitnah Feedback aus unseren Tests? Und wie können wir den derzeitigen Stand unserer App auf verschiedenen Stages automatisiert ausliefern, um auch fortlaufend fachliches Feedback zu bekommen? Für dieses Szenario gibt es etliche Lösungen mit verschiedenen Stärken und Schwächen. Meist stellt die Webanwendung die Schnittstelle eines mehr oder weniger komplexen Systems dar, dessen Backend immer häufiger in einer Cloud liegt. Dadurch macht es Sinn, auch die Webanwendung in der Cloud zu entwickeln und abzulegen. In diesem Tutorial realisieren wir dieses Szenario durch eine Angular SPA, die wir innerhalb der AWS Cloud (Abb. 1) entwickeln und auch dort hosten.

maier_angular_aws_1.tif_fmt1.jpgAbb. 1: Übersicht

Die Infrastruktur verwalten

Sobald wir einen AWS-Account angelegt haben [1], können wir uns in die AWS-Konsole einloggen. Die Konsole stellt die grafische Schnittstelle zur Verwaltung sämtlicher Ressourcen und Services der AWS Cloud dar. Je nach Vorlieben und Bedarf bietet Amazon ein mächtiges AWS CLI sowie diverse SDKs und Toolkits zur Verwaltung unserer Cloud. Hier verwenden wir die Konsole, für komplexere Systeme empfehle ich jedoch, die Infrastruktur als Code zu verwalten (Kasten „Infrastructure as Code“).

Infrastructure as Code

Als Infrastructure as Code (IaC) wird das Konzept bezeichnet, IT-Infrastrukturen in Form von Code zu definieren, zu verwalten und darüber automatisiert bereitstellen zu können. Amazon hat dieses Konzept im proprietären AWS CloudFormation umgesetzt. Es gibt jedoch auch sehr gute herstellerunabhängige Lösungen wie Terraform.

Zugriffssteuerung mit AWS IAM

IAM steht für Identity and Access Management, mit dessen Hilfe die Zugriffe auf die Ressourcen verwaltet werden. Wir erreichen den IAM Service in der Konsole über das Services-Menü. Er befindet sich in der Kategorie Security, Identity and Compliance. Es hat sich als gute Praxis herausgestellt, nicht mit dem Root-Account eines Systems zu arbeiten. Dementsprechend erstellen wir uns zuerst einen Admin-Account, mit dem wir zukünftig weiterarbeiten.

Via Users | Add User erstellen wir uns einen neuen Admin-Benutzer, dem wir sowohl programmatischen Zugriff als auch Zugriff auf die AWS-Management-Konsole gewähren. Das Konsolenpasswort lässt sich dabei automatisch generieren oder auch individuell vergeben. Die Option Require Passwort Reset deaktivieren wir. Einen Schritt weiter weisen wir dem neuen User via Attach existing policies directly Administratoraccess zu. Sobald wir den Admin-Benutzer angelegt haben, laden wir uns die Zugangsdaten als CSV-Datei herunter. Diese enthalten einen Anmeldelink sowie die Zugangsdaten des neu erstellten Admin-Accounts.

Nachdem wir uns angemeldet haben, erstellen wir noch einen operativen Benutzer, etwa developer1, um im nächsten Schritt auf die Codeverwaltung zuzugreifen. Wie gehabt legen wir uns einen neuen Benutzer an, diesmal allerdings nur mit programmatischen Zugriffsrechten, dem wir via Attach existing policies directly AWSCodeCommitFullAccess gewähren. Wir öffnen nun nochmal den Administrationsbereich dieses Users und erstellen unter Security Credentials | HTTPS Git credentials for AWS CodeCommit | Generate neue Zugangsdaten für den Git-Zugriff. Diese speichern wir uns im CSV-Format.

Quellcodeverwaltung in AWS CodeCommit

Der von Amazon bereitgestellte, proprietäre Web Service zum Verwalten von Quellcodes nennt sich AWS CodeCommit und hostet Git Repositories. Eine Integration von Bitbucke...

Neugierig geworden? Wir haben diese Angebote für dich:

Angebote für Gewinner-Teams

Wir bieten Lizenz-Lösungen für Teams jeder Größe: Finden Sie heraus, welche Lösung am besten zu Ihnen passt.

Das Library-Modell:
IP-Zugang

Das Company-Modell:
Domain-Zugang