Erstellen Sie mit einem einzigen AWS CloudFormation-Skript eine einfache, kostengünstige, CDN-gestützte, statische Website. Perfekt für Websites, die mit statischen Site-Generatoren erstellt wurden, z. B. Gatsby, Hugo, 11ty; zustandslose React-Apps; oder einfach nur alte HTML-, CSS- und Bilddateien.
Registrieren Sie hier eine Domäne in AWS
Für diese Domäne wurde in Route53 eine gehostete Zone erstellt
Erstellen Sie einen neuen CloudFormation-Stack mit der Vorlage simple-static-website.yaml
. Aufgrund von Einschränkungen bei CloudFront MUSS dies in us-east-1
erfolgen.
Geben Sie die Parameter an:
Stellen Sie den CloudFormation-Stack über die Konsole oder mit awscli bereit:
aws cloudformation deploy
--stack-name foo
--template-file simple-static-website.yaml
--parameter-overrides
DomainName=example.com
HostedZoneId=ABCDEFGHIJK0123456789
WebsiteName=www
Fügen Sie eine einfache index.html-Datei in den neu erstellten S3-Bucket ein. Überprüfen Sie die CloudFormation-Ausgabe des Stacks auf einen Beispielbefehl für awscli.
Besuchen Sie Ihre neue Website unter der von Ihnen angegebenen Domain. Die URL finden Sie in den CloudFormation-Ausgaben.
Denken Sie daran, dass das CloudFront-CDN Ihre Website an mehreren Standorten auf der ganzen Welt zwischenspeichert. Wenn Sie Ihre Website ändern, müssen Sie den Cache ungültig machen. Es fallen zwar Gebühren an, aber im Großen und Ganzen handelt es sich um ein äußerst günstiges Setup, da keine Server laufen.
Dieses Skript wurde von Alain Sengs hervorragendem Blogbeitrag sowie der Ausgabe meiner bestehenden manuell bereitgestellten Websites inspiriert, die über die inzwischen nicht mehr existierende CloudFormer-Vorlage von Amazon laufen. CloudFormer ist ein hervorragendes Tool, wurde jedoch von Amazon unter den Teppich gekehrt, da die Lösung den Benutzern immer mehr CVEs offen ließ. Hier gibt es einen guten Artikel von Karimelmel dazu. Vielen Dank an eisenhowerj für die Verbesserung meines CloudFormation-Skripts und das Hinzufügen neuer Funktionen.