Sichere Website auf AWS mit Minimalaufwand (TEIL 1)
Website auf AWS Lightsail mit Let’s Encrypt-Zertifikaten absichern – Teil 1 Lightsail einrichten
Trotz eines Portfolios von weit mehr als 150 Services der Service-Modelle IaaS und PaaS nutzen die meisten Kunden AWS in erster Linie zur Bereitstellung von Websites und Web-Anwendungen. Die mit Abstand preiswerteste Option dies zu tun, ist AWS Lightsail. Möchte man eine Lightsail-Website bei minimalen Kostenaufwand mit einem SSL-Zertifikat versehen, klappt das z. B. mit Let´s Encrypt, wie dieser zweiteilige Workshop demonstriert.
Es gibt zahlreiche Möglichkeiten Websites und Web-Anwendungen jeder Größe mit mehr oder weniger Verwaltungsaufwand und Kontrolle auf AWS bereitzustellen. Die für viele Nutzer naheliegendste Möglichkeit ist der Betrieb eines virtuellen Servers (EC2) auf dem man dann selbst seine Anwendung z. B. in Form eines Ruby- oder LAMP-Stacks installiert. Das Gleiche kann man auch tun, ohne sich um die Infrastruktur (virtuelle Maschinen) kümmern zu müssen, indem man AWS OpsWorks Stack oder AWS Beanstalk verwendet, sofern es sich um klassische Lösungs- oder Anwendungs-Stacks handelt wie z. B. LAMP, Rails oder konkret WordPress. Dazu kommen serverlose Anwendungsdesigns mit Lambda, API-Gateway, S3 oder DynamoDB. In jedem Fall zahlt man wie bei Public Cloud Angeboten üblich nur den Verbrauch.
Etwas außerhalb der klassischen Cloud-Provider-Service-Modelle steht hingegen AWS Lightsail. Hier bekommt der Endanwender vorkonfigurierte Anwendungs-Stacks als Festpreis-Pakete, z. B. zu einem Einstiegspreis von 3,50 $ / Monat für einen eigenen WordPress-Server mit 512 MB RAM, 1 vCPU, 20 GB SSD und 1TB Datenübertragung.
Der Nutzer muss nur das gewünschte Abbild auswählen (ein bestehendes AWS Konto vorausgesetzt) und dann auf “Instance erstellen” klicken. Das Konzept, fertige Anwendungs-Stacks aus bestehenden Abbildern zu erstellen, basiert auf einer Kooperation von AWS mit https://bitnami.com/ Bitnami. Das Konstrukt dahinter hört AWS-seitig auf dem Namen “Virtual Private Server” (VPS). Solche VPS tauchen nicht in der EC2-Konsole auf, sondern werden nur innerhalb von Lightsail als eigene Service-Entitäten behandelt.
Bitnami-Nutzer könnten zwar auch im https://bitnami.com/stacks Community Application Catalog von Bitnami z. B. WordPress auswählen, brauchen dann aber einen “Ort” zur Bereitstellung. Bitnami unterstützt Public Cloud Anbieter (Google, AWS, Azure), Docker, Kubernetes, Physische PCs (Windows, Mac, Linux) und virtuelle Maschinen.
Da du aber für die Bereitstellung in der Cloud z. B. bei AWS ohnehin ein AWS-Konto benötigst, kannst du auch gleich auf Lightsail zurückgreifen, denn hier hat der AWS Nutzer komfortabel die Möglichkeit, seinen Virtual Private Server mit DNS, Netzwerk, Datenbanken, Lightsail-Blockspeicher oder Lightsail-Loadbalancern zu integrieren. Trotzdem besteht jederzeit die Möglichkeit, das Feature “Upgrade to EC2” zu verwenden, um auf einen echten virtuellen Server in Amazon EC2 zu wechseln.
Das Bereitstellen einer Lightsail-Instance ist selbst für Endanwender sehr einfach und muss daher an dieser Stelle nicht erläutert werden. Nach dem Launch kannst du dich direkt in der Lightsail-Console mit Hilfe der “Connect”-Schaltfläche direkt mit der eingebetteten Console des unterliegenden Linux-Host verbinden. Im Unterschied zu klassischen Linux-Servern finden sich bei Bitnami die einzelnen Webspaces samt Konfiguration unterhalb eines einzigen Verzeichnisses unter /opt/bitnami/apache2/. Amazon Lightsail ist somit die unter AWS einfachste Möglichkeit für Entwickler, kleine Unternehmen oder Auszubildende/Studenten einen Anwendungsserver auf AWS zu betreiben.
Lightsail-Website mit SSL-Zertifikaten
Auf dem ersten Blick problematisch wird es allerdings, wenn du einen Lightsail Server mit SSL-Zertifikaten ausrüsten möchtest. Dies geht zwar und ist in der https://lightsail.aws.amazon.com/ls/docs/de_de/articles/understanding-tls-ssl-certificates-in-lightsail-https Lightsail-Dokumentation ausführlich erläutert, allerdings benötigst du dazu ein Multi-Site-Setup mit mindestens zwei Lightsail-Instancen und einem Lightsail-Loadbalancer auf dem die direkt in Lightsail generierbaren SSL-Zertifikate bereitgestellt werden können. Allerdings sprengen die laufenden Kosten für den Loadbalancer und die zweite Instance in der Regel den Kostenrahmen, weswegen sich gerade Klein-Anwender in der Regel für Lightsail/Bitnami entschieden haben.
Entwickler, welche dieses Kosten scheuen, können ihre sichere Website auf Lightsail aber auch mit Let’s Encrypt-Zertifikaten betreiben. Voraussetzung dazu ist, dass du in Besitz eine registrierten DNS-Domain bist und diese mit dem Lightsail-Server (VPS) verknüpft ist. Standardmäßig erhält jeder Lightsail-Server nur eine fixe öffentliche IP-Adresse. Um diese im öffentlichen DNS zu registrieren kann der Nutzer entweder ein A-Record in einer zugehörigen gehosteten Zone in Amazon Route 53 anlegen oder direkt in der Lightsail-Console mit Hilfe des gleichnamigen Button eine “DNS-Zone erstellen”.
Ersteres ist allerdings ein Problem im Zusammenhang mit dem folgenden Workaround mit Let´s Encrypt. Daher ist es besser, die DNS-Zone für den VPS direkt auf jeden Fall auf Lightsail zu betreiben.
In der Lightsail-DNS-Domäne verknüpfst du dann ein A-Record mit der öffentlichen IP-Adresse der Lightsail-Instanz. Da sich diese aber nach einem Neustart der Instanz ändern kann, klicke zuvor im Abschnitt “Netzwerk” auf “Statische IP erstellen” und verknüpfe dann die statische IP-Adresse im A-Record-Set.
Wer seinen Domain-Namen allerdings schon auf Route 53 registriert hat, muss lediglich dessen Nameserver-Einträge mit denen des Lightsail-DNS ersetzen. Das gelingt in der Route 53-Console unter “Registered domains” mit einem Klick auf “Add or edit name servers” im Bereich “Name server”: Gleiches gilt natürlich bei einem externen Registar.
Kontakt
„*“ zeigt erforderliche Felder an