Sichere Website auf AWS mit Minimalaufwand, Teil 1 AWS Lightsail für „Let’s Encrypt“-Zertifikate einrichten

AWS Lightsail ist eine gangbare Option zur Bereitstellung von Websites und Web Apps. Möchte man eine solche Lightsail-Website mit einem SSL-Zertifikat versehen, klappt das z. B. mit Let´s Encrypt, wie dieser zweiteilige Workshop demonstriert.

Amazon Web Services bietet zahlreiche Möglichkeiten, Websites und Webanwendungen jeder Größe mit mehr oder weniger Verwaltungsaufwand und Kontrolle 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-Service-Provider-Modelle steht hingegen AWS Lightsail. Hier bekommt der Endanwender vorkonfigurierte Anwendungs-Stacks als Festpreis-Pakete, z. B. zu einem Einstiegspreis von 3,50 US-Dollar pro Monat für einen eigenen WordPress-Server mit 512 Megabyte RAM, einer virtuellen CPU (vCPU), 20 Gigabyte SSD und einem Terabyte Datenübertragung.

Der Nutzer muss (ein bestehendes AWS Konto vorausgesetzt) nur das gewünschte Abbild auswählen und dann auf „Instance erstellen“ klicken. Das Konzept, fertige Anwendungs-Stacks aus bestehenden Abbildern zu erstellen, basiert auf einer Kooperation von AWS mit 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.

Vorkonfigurierte Abbilder erlauben unter AWS Lightsail die automatisierte Zusammenstellung des benötigten Solution Stack. (Bild: Drilling / AWS)

Ein Bitnami-Nutzer könnte zwar auch im 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, MS Azure), DockerKubernetes, physische PCs (Windows, Mac, Linux) und virtuelle Maschinen.

Über den Community Application Catalog von Bitnami lässt sich WordPress auch aufsetzen, wir beschreiten aber den Weg über Lightsail. (Bild: Drilling / AWS)

Da man aber für die Bereitstellung in der Cloud z. B. bei AWS ohnehin ein AWS-Konto benötigt, kann man auch gleich auf Lightsail zurückgreifen. Hier hat der AWS Nutzer zudem komfortabel die Möglichkeit, seinen Virtual Private Server mit DNS, Netzwerk, Datenbanken, Lightsail-Blockspeicher oder Lightsail-Load-Balancern 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-Instanz ist selbst für Endanwender sehr einfach und wird daher an dieser Stelle nicht erläutert. Nach dem Launch kann man sich 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 und Studierende, einen Anwendungs-Server auf AWS zu betreiben.

Lightsail-Website mit SSL-Zertifikaten

Auf den ersten Blick problematisch wird es allerdings, wenn man einen Lightsail Server mit SSL-Zertifikaten ausrüsten möchte. Dies geht zwar und ist auch in der Lightsail-Dokumentation ausführlich erläutert, allerdings benötigt man dazu ein Multi-Site-Setup mit mindestens zwei Lightsail-Instanzen und einem Lightsail-Load-Balancer auf dem die direkt in Lightsail generierbaren SSL-Zertifikate bereitgestellt werden können.

Die laufenden Kosten für den Load Balancer und die zweite Instanz sprengen allerdings in der Regel den Kostenrahmen. Gerade deshalb entscheiden sich Klein-Anwender in der Regel für Lightsail/Bitnami. Entwickler, die diese Kosten scheuen, können ihre sichere Website auf Lightsail aber auch mit Let’s-Encrypt-Zertifikaten betreiben. Voraussetzung hierfür ist, dass man in Besitz einer registrierten DNS-Domain ist und diese mit dem Lightsail-Server (VPS) verknüpft ist.

Standardmäßig erhält jeder Lightsail-Server nur eine fixe öffentliche IP-Adresse.

Öffentliche statische IP-Adresse unserer Lightsail-Instanz. ( Bild: Drilling / AWS )

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 eigene „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.

Verknüpfung des A-Datensatzes mit unserer statischen IP. (Bild: Drilling / AWS)

In der Lightsail-DNS-Domäne verknüpft man dann ein A-Record mit der öffentlichen IP-Adresse der Lightsail-Instanz. Da sich diese aber nach einem Neustart der Instanz ändern kann, klickt man zuvor im Abschnitt „Netzwerk“ auf „Statische IP erstellen“ und verknüpft 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-Konsole unter „Registered domains“ mit einem Klick auf „Add or edit name servers“ im Bereich „Name server“. Gleiches gilt natürlich bei einem externen Registrar.

Hier weiterlesen

Schreibe einen Kommentar

Deine E-Mail-Adresse wird nicht veröffentlicht.

Diese Website verwendet Akismet, um Spam zu reduzieren. Erfahre mehr darüber, wie deine Kommentardaten verarbeitet werden.