Amazon Web Services, eine der größten Cloud-Plattformen, hat 2017 einen neuen Service namens AWS Amplify eingeführt. AWS Amplify ist eine Reihe von Tools und Services, die es Entwicklern erleichtern sollen, Apps in AWS zu erstellen und zu starten. Dazu gehören Code-Bibliotheken, gebrauchsfertige Komponenten und eine integrierte CLI. Mit Amplify können Sie App-Backends konfigurieren und Ihre App in Minutenschnelle verbinden, statische Web-Apps mit wenigen Klicks bereitstellen und App-Inhalte problemlos außerhalb der AWS-Konsole verwalten. Amplify verwaltet die gesamte Anwendung in 3 Teilen
- Frontend: UX
- Backend: Autorisierung, Geschäftslogik, Daten, Analytik
- CI/CD

Vorteile von AWS Amplify:
- Backends schnell konfigurieren
Nutzen Sie die intuitive Benutzeroberfläche von Amplify und die intuitiven Workflows der CLI, um skalierbare AWS-Backends mit Authentifizierung, Speicher, Daten und anderen gängigen Anwendungsfällen einzurichten.
- Nahtlose Verbindung von Frontends
Verwenden Sie die Amplify-Bibliotheken in Ihren Web-, Android- und iOS-Apps, um mit nur wenigen Zeilen Code eine Verbindung zu neuen und bestehenden AWS-Ressourcen herzustellen.
- Mit wenigen Klicks einsatzbereit
Verwenden Sie die Amplify-Konsole, um statische Websites und Single-Page-Webanwendungen mit einem Git-basierten Workflow zu hosten, indem Sie einfach das Repository Ihrer Anwendung verbinden.
- Einfaches Verwalten von Inhalten
Verwenden Sie die Amplify Admin UI, um Nicht-Entwicklern einen administrativen Zugang zur Verwaltung von App-Benutzern und App-Inhalten ohne AWS-Konto zu ermöglichen.

AWS Amplify hat Komponenten für:
- Datenspeicherung
- Synchronisieren Sie Ihre App-Daten mit der Cloud, verwalten Sie Ihre verteilten Daten und kümmern Sie sich um Abonnements und Messaging.
- Analytik
- Verfolgen Sie Benutzersitzungen und berichten Sie über deren Verhalten. Richten Sie benutzerdefinierte Attribute ein und analysieren Sie Conversion Funnels.
- Push-Benachrichtigungen
- Verwalten Sie Ihre Kampagnen ganz einfach und senden Sie Ihren Nutzern Nachrichten über mehrere Kanäle, einschließlich Text, E-Mail und Push.
- Authentifizierung
- Greifen Sie auf gebrauchsfertige Workflows für MFA, Single Sign-On, Passwort vergessen usw. zu.
Was verstehen wir unter serverlos:
- Keine Server, die bereitgestellt oder verwaltet werden müssen
- Skaliert mit der Nutzung
- Zahlen Sie nie für Leerlauf
- Eingebaute Verfügbarkeit und Fehlertoleranz:
Die Bedeutung von Amplifying für den serverlosen Technologie-Stack:
Der herkömmliche grundlegende Technologiestapel umfasst Benutzer, die über API-Server auf die APIs zugreifen, ein für diese APIs konfiguriertes Backend und die zugrunde liegenden Datenspeichersysteme und Datenbanken. Um eine robuste, vollwertige Architektur zu implementieren, ziehen wir Failover, Load Balancer, Web-/Applikationsserver, Nachrichtenbusse, Worker usw. in Betracht.
Mit einem serverlosen Technologie-Stack müssen wir uns nicht um die Bereitstellungsaspekte kümmern, d.h. Failover, Load Balancer, Web-App-Server und all das wird erledigt. Das heißt, der gesamte Code, den Sie jemals schreiben werden, ist nur die Geschäftslogik.
Erstellen Sie eine einfache serverlose Anwendung:
Eine sehr grundlegende und einfache serverlose Architektur kann mit AWS Lambda, Amazon API Gateway, Amazon DynamoDB, Amazon Cognito und AWS Amplify Console entworfen werden. Amplify Console sorgt für die kontinuierliche Bereitstellung und das Hosting der statischen Webressourcen, einschließlich HTML, CSS, JavaScript und Bilddateien, die in den Browser des Benutzers geladen werden. Das im Browser ausgeführte JavaScript sendet und empfängt Daten von einer öffentlichen Backend-API, die mit Lambda und API Gateway erstellt wurde. Amazon Cognito bietet Benutzerverwaltungs- und Authentifizierungsfunktionen zur Sicherung der Backend-API. Schließlich bietet DynamoDB eine Persistenzschicht, in der die Daten von der Lambda-Funktion der API gespeichert werden können.
Abgesehen davon ist AWS Amplify sehr nützlich für den Aufbau einer modernen, produktionsreifen Webanwendung, die viele grundlegende und doch anspruchsvolle Anforderungen mit sich bringt, darunter (aber nicht nur) Authentifizierung, Analytik, eine API-Ebene, Speicher, Caching, Offline-Funktionalität, CICD und automatisierte Infrastrukturbereitstellung.
Beispiel für ein serverloses Backend auf AWS:

Meine Erfahrung mit Aws amplify:
Vor kurzem hatte ich die Gelegenheit, in einem der Projekte zum Aufbau einer benutzerdefinierten Datenplattform für Dateningenieure, Datenwissenschaftler und Datenadministratoren unter Verwendung von AWS-Diensten an AWS amplify zu arbeiten. Diese Plattform war für die flexible Datenanalyse unter Verwendung von AWS-Diensten wie Lambda, Glue, SageMaker, ECS usw. gedacht. All dies wird über eine vollständig angepasste Benutzeroberfläche zur Nutzung von AWS-Diensten, Drag & Drop-Funktionen zur Verwendung vorgefertigter Module usw. verfügen. In der Architektur des Projekts spielte AWS Amplify eine wichtige Rolle bei der automatisierten Bereitstellung von Frontend, Backend, Cloud-Services, automatisierter CICD, Datenspeicherung usw.
Abschließende Überlegungen:
AWS Amplify ist noch nicht sehr robust. Bei der Arbeit schien es jedoch nützlich zu sein, um eine moderne, produktionsreife Webanwendung zu erstellen, die viele grundlegende und doch anspruchsvolle Anforderungen mit sich bringt, einschließlich (aber nicht beschränkt auf Authentifizierung) Analytik, eine API-Schicht, Speicher, Caching, Offline-Funktionalität, CICD und automatisierte Infrastrukturbereitstellungen.
Referenzen:
- https://aws.amazon.com/amplify/
- https://aws.amazon.com/getting-started/hands-on/build-serverless-web-app-lambda-apigateway-s3-dynamodb-cognito/
- https://serverless-stack.com/chapters/configure-aws-amplify.html
- https://d1.awsstatic.com/events/reinvent/2019/Amplifying_fullstack_serverless_apps_with_AWS_AppSync_and_the_Amplify_Framework_MOB306-P.pdf
Contact
