Zusammenfassung & Definiton AWS Amplify
Genau das habe ich mich auch gefragt, nachdem ich diverse Marketingtexte darüber gelesen habe - deswegen will ich das hier mal runterbrechen, immer vor dem Hintergrund: Das ist meine persönliche Erfahrung mit dem System: Alle genannten Vor- und Nachteile sind meine persönliche Meinung -egal ob positiv oder negativ- und stellen nicht die Meinung des Unternehmens dar und die Aufstellung hat keinen Anspruch auf Vollständigkeit und stellt den Stand zum Zeitpunkt der Artikelerstellung dar.
KURZ GESAGT - AMPLIFY IST:
- 1. Webserver, der statischen Content ausliefern kann, z.B. vergleichbar mit Apache oder nginx. Vermutete oder bekannte AWS-Services im Hintergrund: S3 für Dateistorage
- 2. ContentDeliveryNetwork (CDN) über AWS CloudFront
- 3.Deployment-Pipeline, die Daten aus einem git-Repository zieht, z.B. vergleichbar mit Jenkins oder GitLab CI/CD. Hierbei ist zu beachten, dass Amplify nicht auf jeden beliebigen GIT-Server zugreifen kann. Das geht nur von fest definierten Repository-Anbietern wie z.B. AWS eigenes Projekt CodeCommit, GitHub oder GitLab. Explizit nicht enthalten sind selbstgehostete z.B. GitLab-Systeme etc. Vermutete oder bekannte AWS-Services im Hintergrund: CodeDeploy für die Pipeline, ECS/Container für die Pipeline-Ausführung
- 4. Domain Name Server (DNS) - vergleichbar mit bind oder dnsmasq: Er routed automatisch Subdomain-Einträge auf verschiedene Deploy-Branches. Vermutete oder bekannte AWS-Services im Hintergrund: Route53 DNS-Server
- 5. Zertifikatsvergabestelle, vergleichbar mit Let’s Encrypt / ACME. Es werden automatisch TLS-Zertifikate für die verwendeten URLs vergeben. Vermutete oder bekannte AWS-Services im Hintergrund: AWS Certifictae Manager
“Amplify ist optimal, um beliebig skalierbare SinglePageApplications zu betreiben”
AMPLIFY FRONTEND, BACKEND UND FAZIT
Amplify ist primär darauf ausgelegt Single Page Applications (SPA) zu deployen auf Basis von z.B. React, Angular, Vue etc., die als beliebig horizontal skalierbares FrontEnd dienen und da dürfte auch die absolute Stärke des Amplify-Systems liegen: Wer diesen Anwendungsfall abdecken muss und bereit ist, sich fast vollständig in der AWS-Welt zu bewegen und die Code-Verwaltung auf die unterstützten Anbieter einschränkt, der hat ein wirklich geniales Tool an der Hand, das es ermöglicht mit wenig Aufwand und Kosten für Infrastruktur-Setup eine fast beliebig skalierbare Web-Präsenz aufzubauen.
Gleichzeitig wurde von AWS aber auch an das BackEnd gedacht: Es besteht die Möglichkeit ein GraphQL-BackEnd zu deployen, das dann seinerseits an verschiedene weitere Endpunkte angedockt werden kann. Ob diese dann wiederum genauso gut skalieren ist freilich außerhalb des Amplify-Scopes.
Je genauer die Anforderung auf den sehr präzise umrissenen Feature-Scope von AWS Amplify passen, umso überproportional besser. Das wird bei vielen Projekten zwar nicht der Fall sein, aber wer einfach eine FrontEnd-Applikation -möglicherweise ohne jegliches BackEnd- braucht, die z.B. bei Lastspitzen kurzfristig extrem skalieren kann und gleichzeitig Entwicklungs- und Deploymentprozesse hat, die mit Amplify gut abgedeckt werden können, ist hier sehr gut bedient.